Python kullanarak bir sentezleyiciye temel bir MIDI mesajı göndermeye çalışıyorum.Python kullanarak MIDI mesajlarını gönderme (Ubuntu'da)
PC-Synthesizer bağlantısının işlevsel olduğunu biliyorum çünkü Rosegarden uygulaması MIDI çıktılarını 'DigitalKBD 20: 0' olarak ayarlandığında cihazda MIDI dosyalarını çalmak üzere yapılandırılabilir.
Bu Python kitaplığını (MIDO) keşfettim ve yükledim. İyi haber, harici MIDI cihazının port listesinde tanınması ve mevcut olmasıdır. Ne yazık ki, basit bir notlandırma testi cihazda herhangi bir ses tetiklemiyor.
>>> import mido
>>> output = mido.open_output('DigitalKBD MIDI 1')
>>> output.send(mido.Message('note_on', note=60, velocity=64))
RtMidi Kullanılması:
PortMidi kullanma(bu MIDO için varsayılan): İşte çalıştı kodudur Her iki durumda da
>>> 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))
, gelen ses yok ne olursa olsun sentezleyici.
Lütfen, aletin mesajları doğru şekilde alması ve yorumlaması için kodu (veya kurulumu) nasıl düzelteceğimize dair tavsiye alabilir miyim?
'aseqdump' işlevini çalıştırın, bu bağlantı noktasına gidin ve bir şey olup olmadığını kontrol edin. –
mido farklı bir MIDI kanalı üzerinden gönderiyor olabilir. Sentezleyicinin hangi MIDI kanalını notları dinlediğini doğrulayın ve buna göre 'mido.Message' kanalını açık bir şekilde ayarlamayı deneyin. – h7r
Bu, python diline özgü bir soru olmadığı için sorunuzun konusu olmayabilir. Bu bir API, kurulum, kütüphane uyumluluk veya çevre sorunudur. Kütüphanenin belgelerini incelediniz mi? –