sebshader / pdnext

Color-themed Pure data with different inlets & outlets for messages and signals
Other
45 stars 3 forks source link

MIDI API selection in Media menu is missing from pdnext #20

Closed jamshark70 closed 1 year ago

jamshark70 commented 1 year ago

I found to my surprise this afternoon, in a class, that I couldn't open a MIDI port. (New machine, I had only installed pdnext, not pure-data.)

I could have sworn that the Media menu in pd vanilla has a switch for the MIDI API, but I couldn't find it in pdnext.

So I just downloaded and built pd vanilla (which I don't plan to use anyway, but...). ... And there's "OSS MIDI" and "ALSA MIDI" right there in the Media menu.

AFAICS, then, the only way to configure MIDI in pdnext is to install pd vanilla, configure it there, and then pdnext will pick it up from the .pdsettings file.

EDIT: I spoke too soon... pdnext says "opened 0 MIDI input device(s) and 0 MIDI output device(s)" and there seems to be no way to fix it. That's unfortunate. The color themes were saving my eyes but I sometimes need to use MIDI in class.

sebshader commented 1 year ago

@jamshark70 I have only ever been able to compile pd without oss midi support personally. (that includes pd vanilla, not just pd-next).. What flags did you build vanilla with? you can try compiling with my flags (after installing the alsa & jack header/dev packages, and running make clean once): ./configure --enable-jack CFLAGS="" sometimes it seems like these are all necessary: ./configure --enable-alsa --enable-jack --enable-portaudio --enable-portmidi --disable-oss CFLAGS="" for me that doesn't seem to supply any selection of midi api in the media menu though, only audio apis. It just opens alsa midi window if I select "midi preferences". However alsa midi usually works perfectly well. sometimes the preferences have gotten corrupted before in which case it gets fixed when I start pd with the -alsamidi flag (but I have never seen any option for OSS MIDI..)

sebshader commented 1 year ago

@jamshark70 so if I configure with just ./configure --enable-alsa --enable-jack CFLAGS="" (or without --disable-oss at least) and then start pd with the -ossmidi flag once the option shows up from then on. idk why it doesn't show up by default for pdnext but does with vanilla for you (but not for me..). maybe some difference in how the computer reports midi..

but I think at this point ALSA is far more recommended over OSS anyways.. edit: from what you said it seems like you ONLY had OSS running.. odd. (for me it was just alsa.) in that case you probably just need to start pd with -alsamidi actually. Of course, make sure to have the equivalent of the libasound2-dev package installed when configuring/building, and that "ALSA" is in the MIDI API list at the end of configure..

jamshark70 commented 1 year ago

edit: from what you said it seems like you ONLY had OSS running

No, I've never used OSS MIDI and I never will. Zero interest in that. I only said that pd vanilla includes an OSS MIDI and ALSA MIDI menu option -- I mentioned OSS first because it appears higher in the menu.

ALSA MIDI. I need interoperability with other ALSA MIDI apps (or connectivity to a2jmidid).

-alsamidi does not help.

    audio APIs:           PortAudio JACK ALSA OSS 
    midi APIs:            ALSA OSS 

libasound2-dev is installed -- should be known because I was able to build pd-vanilla from source and get the correct behavior.

I can only ever get opened 0 MIDI input device(s) and 0 MIDI output device(s)..

sebshader commented 1 year ago

@jamshark70 so what do you see when you open "Media>MIDI Settings.."? edit: when I start pd I see "opened alsa MIDI client 128 in:1 out:1" in the console but I think I may have put in "1" for the number of each of the ports in midi settings

jamshark70 commented 1 year ago

Pd-vanilla:

pd-vanilla-media

pd-vanilla-midi

Pdnext:

pdnext-media

pdnext-midi

I'm quite baffled.

sebshader commented 1 year ago

@jamshark70 yes it seems like somehow pdnext isn't getting compiled with alsa.. it isn't in the audio device list either..

because that is the screen I get when I select "OSS" for midi, the top is for alsa (which I do have in pd-next)

jamshark70 commented 1 year ago

OK then... so how do I switch the configure flags? I do ./configure --enable-jack CFLAGS="" and nothing gets rebuilt.

Have to make clean or something? Not well documented (the vanilla readme's fault there).

sebshader commented 1 year ago

sometimes doing autoreconf can work before reconfiguring, and sudo make clean or even sudo make distclean after reconfiguring but before doing make

jamshark70 commented 1 year ago

OK that was it, stupid sticky configure options where you changed it but it doesn't mark files for recompilation. (I'm not used to this; SuperCollider uses cmake which is much more aggressive about canceling build products for any configuration change.)

Thanks for your patience!

sebshader commented 1 year ago

ok I'll convert this to a discussion because you aren't the 1st person to have issues with needing to make clean to fix build configuration for midi on linux