2016-07-31 38 views
1

Ich verwende den Befehl aplaymidi, um ein Hardwaregerät über einen USB-MIDI-Adapter zu betreiben. Zum größten Teil funktioniert es gut, aber Stoppen der Wiedergabe mit Steuerelement - c Blätter stecken Notizen. Bisher war die einzige Möglichkeit, die festgefahrenen Noten zu veröffentlichen, eine MIDI-Datei mit einer 127-Noten-Farbskala. Das ist langsam und das Hören der Skala ist unerwünscht.Anhalten von aplaymidi macht festgefahrene Notizen

Gibt es einfach eine Möglichkeit, jeden "note off" Befehl auszugeben, wenn eine Dateiwiedergabe abgebrochen wird?

Antwort

0

Wrap aplaymidi in ein Skript, das den Exit-Status zu erkennen Strg + C überprüft:

#!/bin/bash 
aplaymidi "$*" 
test $? == 130 && aplaymidi .../AllNotesOff.mid 

Die "All Notes Off" -Meldung ist Controller 123; Sende es einfach auf allen Kanälen gleichzeitig.

Alternativ verwenden amidi eine Reset-Nachricht senden:

... && amidi -p hw:X -S F07E7F0901F7 

wo X die Kartennummer ist; Eine Liste der Ports finden Sie unter amidi -l.

+0

Wo würde ich finden oder wie würde ich eine MIDI-Datei erstellen, die diesen Befehl sendet? – Rachie

+0

Jeder Sequenzer könnte eine solche Datei erstellen. –

+0

Ich konnte keinen Sequenzer finden, der dies tun kann. Könnten Sie auch die rohen hex-MIDI-Befehle erklären? Ich kann keine gute Dokumentation darüber finden, was "0xF0" anders ist als "systemexklusiv". – Rachie