Sto cercando di inviare un messaggio MIDI di base a un sintetizzatore, usando Python.Invio di messaggi MIDI usando Python (su Ubuntu)
So che il collegamento PC-Synthesizer è funzionale perché l'applicazione Rosegarden può essere configurata per riprodurre file MIDI sul dispositivo, quando l'uscita MIDI è impostata su porta 'DigitalKBD 20: 0'.
Ho scoperto questa libreria Python (MIDO) e l'ho installata. La buona notizia è che il dispositivo MIDI esterno è riconosciuto e disponibile nell'elenco delle porte. Sfortunatamente il semplice appunto sul test non attiva alcun suono sul dispositivo. Ecco il codice che ho provato:
Utilizzando PortMidi (questo è il valore predefinito per MIDO):
>>> import mido
>>> output = mido.open_output('DigitalKBD MIDI 1')
>>> output.send(mido.Message('note_on', note=60, velocity=64))
Utilizzando RtMidi:
>>> import mido
>>> rtmidi = mido.Backend('mido.backends.rtmidi')
>>> output = rtmidi.open_output('DigitalKBD 20:0')
>>> output.send(mido.Message('note_on', note=60, velocity=64))
In entrambi i casi, non v'è alcun suono proveniente dal sintetizzatore qualunque.
Per favore, posso ricevere consigli su come correggere il codice (o l'impostazione) in modo che lo strumento riceva e interpreti correttamente i messaggi?
Esegui 'aseqdump', gioca su quella porta e controlla se qualcosa arriva. –
mido potrebbe inviare un canale MIDI diverso. Verifica quale canale MIDI il sintetizzatore sta ascoltando per le note e prova ad impostare esplicitamente su 'mido.Message' il campo' channel' di conseguenza. – h7r
Questo potrebbe non essere il forum per la tua domanda perché non è una domanda specifica per il linguaggio Python. È un problema di API, installazione, compatibilità di libreria o ambiente. Hai revisionato la documentazione per la biblioteca? –