MIDI mit PC-Speaker abspielen

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

MIDI mit PC-Speaker abspielen

Beitrag von MoonKid » 15.04.2017 18:12:27

Auf einem Desktop-Debian (mit "Soundkarte") kann ich mit Debiantimidity ein MIDI-File auf der Bash abspielen.

Aber wie mache ich das auf einem Server der keine Soundkarte, aber dafür einen PC-Speaker hat? Theoretisch müsste das doch einfach möglich sein, oder?
Ich kenne zwar ein Script, das einem MIDIs in Debianbeep-Aufrufe umwandelt - aber das ist nicth "einfach". ;)

Nebenfrage: Wie spiele ich unter X ein midi ab? VLC, SMPlayer, Audacious melden Fehler.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: MIDI mit PC-Speaker abspielen

Beitrag von smutbert » 15.04.2017 20:20:24

Das sollte ganz ohne irgendwelche Tricks gehen. Den einfachen PC-Speakertreiber entladen, dafür den von Alsa laden

Code: Alles auswählen

# rmmod pcspkr
# modprobe snd_pcsp
dann sollte es eine neue Soundkarte geben, die sogar über einen eigenen Lautstärkeregler verfügt

Code: Alles auswählen

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
[…]
card x: pcsp [pcsp], device 0: pcspeaker [pcsp]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
$ alsamixer -D hw:pcsp
und den PC-Speaker verwenden als wäre er eine Soundkarte, erst nur testen

Code: Alles auswählen

$ aplay -D plughw:pcsp /usr/share/sounds/alsa/Front_Left.wav
dann mit Debiantimidity die gewünschte midi-Datei abspielen, das würde ich mangels besserer Kenntnis der Optionen von timidity einfach so probieren

Code: Alles auswählen

$ timidity meine_Mididatei.mid -o - | aplay -D plughw:pcsp
Damit es dauerhaft (auch nach einem Reboot) funktioniert musst du pcspkr blacklisten und gegebenenfalls snd_pcsp in /etc/modules eintragen.

MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: MIDI mit PC-Speaker abspielen

Beitrag von MoonKid » 16.04.2017 08:24:30

smutbert hat geschrieben:

Code: Alles auswählen

$ aplay -D plughw:pcsp /usr/share/sounds/alsa/Front_Left.wav
Es kommt kein Fehler, aber auch kein Ton.

Code: Alles auswählen

$ sudo aplay -D plughw:pcsp IntroGoldenboy.wav
Wiedergabe: WAVE 'IntroGoldenboy.wav' : Signed 16 bit Little Endian, Rate: 44100 Hz, stereo
Wäre es tatsächlich möglich, auch WAV-Dateien auf den PC-Speaker zu hören? Wie kommt der String plughw:pcsp zustande?
smutbert hat geschrieben:

Code: Alles auswählen

$ timidity meine_Mididatei.mid -o - | aplay -D plughw:pcsp
Habs mal vereinfach probiert (und vorher Debianalsaplayer-jack noch installiert).

Code: Alles auswählen

$ timidity ALF.MID
jack_client_new: deprecated
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
Couldn't open output device
Also Debiansudo ist die Ausgabe auch so.

Nebenbei gefragt: Was genau passiert da? Was macht Debiantimidity mit der MIDI-Datei und warum muss das noch nach Debianaplay umgeleitet werden?

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: MIDI mit PC-Speaker abspielen

Beitrag von smutbert » 16.04.2017 11:23:05

Ob es funktioniert kann ich momentan mangels System mit PC-Lautsprecher nicht testen, aber eigentlich sollte es schon funktionieren und ja man kann dann beliebige wav-Dateien abspielen. timidity macht aus midi-Dateien wav-Dateien und kann sie grundsätzlich auch abspielen, aber ich habe das Ergebnis im obigen Befehl nach aplay weitergeleitet, weil ich nicht weiß wie man bei timidity das zu verwendende Alsagerät angeben kann.

pcsp ist der Name der logischen Soundkarte, die den PC-Lautsprecher repräsentiert. hw:pcsp wäre in Alsa also eine Bezeichnung für das zu verwendende Gerät. Das zusätzlich plug sorgt noch dafür, dass das Format nötigenfalls so konvertiert wird, dass der Soundkartentreiber des PC-Lautsprechers auch damit umgehen kann.

Ich werd es auch ausprobieren, wenn ich einen Computer mit PC-Lautsprecher zu fassen bekomme...

Antworten