Здравствуйте!
Есть такая простая задачка - написать программу (C/C++), которая бы на указанный midi девайс отправила ноту До, и ее было бы слышно в динамиках. (Когда пойму как это делать, дальше прогать MIDI интерфейс будет делом техники).
В рунете нет вообще ни одной статьи по теме. У буржуев нашел вот такую хорошую описаловку
Introduction to MIDI programming in Linux http://ccrma-www.stanford.edu/~craig/articles/linuxmidi/
делаю по ней, но ничего не работает (нет звука).
Пример исходника http://paste.org.ru/?ktiqtu (110 строк)
Насколько я понял, видимо в описаловке информация устарела. Ныне миди-девайсы каким-то образом регистрятся в системе, получают свои номера вида XXX:X, и их можно увидеть, например, через команду
pmidi -l
или
aconnect -i -o
незарегистрированная как девайс программа, видимо, не может работать с MIDI устройствами. И вот не могу найти инфы, как же делать так, чтоб программа создала MIDI-устройство, через которое ее можно соединить (через aconnect) с другим MIDI-устройством (например, синтезатором amSynth).
Или все-таки, можно просто обращаться к MIDI-устройству? Но как? Я не понял, какой номер надо использовать. В моем коде по описаловке есть просто один номер int, а не номер вида XXX:X.
Вот что у меня показывает pmidi
# pmidi -l
клиент 0: 'System' [тип=ядро]
0 'Timer '
1 'Announce '
клиент 14: 'Midi Through' [тип=ядро]
0 'Midi Through Port-0'
клиент 16: 'SB Live 5.1' [тип=ядро]
0 'EMU10K1 MPU-401 (UART)'
клиент 17: 'Emu10k1 WaveTable' [тип=ядро]
0 'Emu10k1 Port 0 '
1 'Emu10k1 Port 1 '
2 'Emu10k1 Port 2 '
3 'Emu10k1 Port 3 '
клиент 128: 'amSynth' [тип=пользователь]
0 'amSynth MIDI IN '
1 'amSynth MIDI OUT'
клиент 129: 'Virtual Keyboard' [тип=пользователь]
0 'Virtual Keyboard'
А вот что показывает моя программа
There are: 7 MIDI external output devices available
0: Device 0 Name Midi Through Port-0
1: Device 1 Name EMU10K1 MPU-401 (UART)
2: Device 2 Name Emu10k1 Port 0
3: Device 3 Name Emu10k1 Port 1
4: Device 4 Name Emu10k1 Port 2
5: Device 5 Name Emu10k1 Port 3
6: Device 6 Name Virtual Keyboard
There are: 1 MIDI internal output devices available
0: Device 0 Name Emu10k1
Видно, что самодельная прога виртуального синтезатора amSynth вообще не видит.
Пробовал соединяться по номерам 0-7, 14, 16, 17, 128, 129, ни на одном устройстве звука не было. (Хотя amSynth играет звук по командам от Virtual Keyboard, но я их соединил через aconnect 129:0 128:0).
Кто что может сказать по вопросу?
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous2
Ответ на:
комментарий
от anonymous2
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум midi+SBLive+alsa (2006)
- Форум Помогите со ЗВУКОМ!!!!!!!!!! (2004)
- Форум mpu-401 uart (2006)
- Форум Шел 2016 год. Я когда-нибудь услышу MIDI в LINUX? (2016)
- Форум timidity молчит (2006)
- Форум помогите с настройкой alsa (2014)
- Форум ALSA находит карту, но звук не проигрывает (2003)
- Форум как услышать Audigy в SuSE (2006)
- Форум Калибровка тачскрина (2019)
- Форум Arduino_GIGA_R1_WiFi на stm32 (2023)