How to get a list of midi devices on Linux?


#1

Hi, how do I get MidiOutput::getDevices() to returl a list of Midi output devices on Linux? I can list them in the terminal:

-bash-3.00$ aplaymidi -l
Port Client name Port name
62:0 Midi Through Midi Through Port-0
64:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)
65:0 Emu10k1 WaveTable Emu10k1 Port 0
65:1 Emu10k1 WaveTable Emu10k1 Port 1
65:2 Emu10k1 WaveTable Emu10k1 Port 2
65:3 Emu10k1 WaveTable Emu10k1 Port 3

but when I call

StringArray midiouts = MidiOutput::getDevices();

then nothing is returned. I am linking against the alsa sound lib (libasound) – is there a midilib that I need to add?

g++ -o build/grace build/Buffer.o build/Console.o build/Editor.o build/Grace.o build/Layer.o build/Resources.o build/Plotter.o build/Points.o build/Syntab.o build/Syntax.o build/Scheme.o build/ChickenBridge.o build/Midi.o build/Toolbox.o -L/usr/X11R6/lib -L/usr/local/src/juce-1.44/bin -lfreetype -lGLU -lGL -lasound -lchicken -ljuce


#2

Works ok for me… Have you traced in to see what happens in there?


#3

im sorry but what do you mean by ‘traced in’ ? Im linking with the juce release lib, ill try to build the debug version and link against that. i thought perhaps i want including some midi alsa lib or something.
the getDevices() is working fine for me on osx.

best, rick


#4

Yes, I meant have you tried debugging it. I’d have thought that without the right libs, it wouldn’t even get as far as building. (You have got JUCE_ALSA enabled, right?)


#5

(You have got JUCE_ALSA enabled, right?)

oh man…blush, looks like i commented it out when i built the lib last sept!
sorry!


#6

This is why I’d recommend “debug first, ask questions later”…


#7