pantherb / setBfree

DSP tonewheel organ
http://setbfree.org
GNU General Public License v2.0
194 stars 35 forks source link

ALSA tab #28

Closed shdawson closed 9 years ago

shdawson commented 10 years ago

Hi,

I have a new MIDI controller, a KORG nanoKEY2. The controller works fine with ZynAddSubFX. The controller does not show up in the QjackCtl ALSA tab with setBfree.

I dragged the setBfree icon to my text editor. I see the following information:

[Desktop Entry] Type=Application Name=setBfree GenericName=DSP tonewheel organ Comment=MIDI-controlled, software synthesizer using JACK Icon=setBfree Exec=setBfree-start Terminal=false Categories=AudioVideo;Audio;

I am guessing the setBfree icon I am clicking on is not firing up setBfree with the necessary parameters, to see the nanoKEY2 on the ALSA tab in QjackCtl. Is this hypothesis correct? If so, can you please provide the syntax I need to run from the command line, so setBfree can see the nanoKEY2, so I can use the nanoKEY2 to play setBfree? setBfree --help from the command line certainly provides loads of information, but it is not clear to me what syntax I need to run.

Thank You, SHD

x42 commented 10 years ago

setBfree-start.sh midi.driver=alsa

By default setBfree uses jack midi and will show up in the "midi" tab of qjackctl.

You can bridge between JACK and ALSA midi (but really you'll eventually want to just use jack midi, the vast majority of applications - incl zyn - are moving away from ALSA sqeuencer). See also http://manual.ardour.org/setting-up-your-system/setting-up-midi/midi-on-linux/

shdawson commented 10 years ago

I tried to run: setBfree-start.sh midi.driver=alsa

Command not found.

I edited the shortcut, without the .sh part. setBfree fires up and I see the nanoKEY2 in the Alsa tab. I connect nanoKEY2 to setBfree, the nanoKEY2 plays setBfree. HOORAY!

Now, this MIDI controller needs a Windows or Mac utility to edit it. I have neither Windows nor Mac. The controller transmits on MIDI channel 1. I would prefer to play the lower manual, which I guess is MIDI channel 2. I guess the bottom manual is MIDI channel 3. Can the syntax you provided be edited to have the nanoKEY work on MIDI channel 2? Or, some other innovative answer to meet this need?

Finally, I see nothing in the MIDI tab of QjackCtl.

Thanks, SHD

x42 commented 10 years ago

setBfree-start midi.driver=alsa midi.upper.channel=2 midi.lower.upper=1

swaps the channels. (NB. setbfree starts counting midi channel at 1, range 1..16 -- not 0..15). In any case you may want to try the plugin version of setBfree which has a GUI to map MIDICCs. Easiest way to do so is using a DAW with LV2 support (Ardour, Qtractor,..) or jack LV2-host:

jalv.gtk http://gareus.org/oss/lv2/b_synth

Finally, I see nothing in the MIDI tab of QjackCtl. That sounds backwards. Ideally you'll have everything in the MIDI tab :)

shdawson commented 10 years ago

Thank you.

Attached are snips of the MIDI and ALSA tabs.

I tired the syntax in different combinations. The version you sent works. However, it plays the small manual on the bottom and the middle manual with the virtual keyboard, but not with the nanoKEY2. Also, the top keyboard does not play, either with the virtual keyboard or the nanoKEY2.

I would try this with a DAW, but the box I am using is rather old and does not have enough capability to run a DAW with plug'ins. I get static and various errors. I guess I need to stay with a stand alone version of setBfree. manuals alsa midi

x42 commented 10 years ago

Duh. I made a typo: It should be

midi.driver=alsa midi.upper.channel=2 midi.lower.channel=1 (not midi.lower.upper).

x42 commented 10 years ago

did you try running it in jalv? jalv.gtk http://gareus.org/oss/lv2/b_synth

setBfree does not need much resources, nor does this [new] openGL GUI. Both work fine on an 8 year old Intel 1GHz machine (AVLinux provides binaries, easy to use) as well as a RaspBerry Pi ARM.

There may be other issues: it needs a recent (summer 2013) version of LV2. but it's been over a year since then and most distros have picked it up.

That old tcl/tk GUI should was intended only for initial development (quick check) and should not have be part of any distribution. It does not recognize any of these channel mapping options nor visualizes feeback from the synth engine or controllers... That being said, it still kinda helps to get people started, but not much beyond that. If you plan to only use a MIDI-controller. just run setBfree [options] (not setBfree-start [options]) to launch it without UI.

shdawson commented 10 years ago

I have not tired jalv.

I tried you syntax edit. The nanoKEY2 still plays the upper most manual of setBfree. I tried to edit your syntax. No changes.

Suggestions?

-SHD

x42 commented 10 years ago

the easiest would be to change the keyboard to just send data to channel 2 instead.

From what I heard, the Korg control editor utility works fine under wine on GNU/Linux.

shdawson commented 10 years ago

OK. I will look into editing the keyboard settings.

Thanks for everything.

Kindly, SHD

x42 commented 10 years ago

please double check. I just tested it and it's just the old GUI that's confused when swapping the manuals.

midi.upper.channel=2 midi.lower.channel=1 works but that old GUI also swaps the drawbars: the "Lower Drawbars" in the GUI control the upper manual in that case.

But you hear a difference with percussion and vibrato. Playing on the lower keyboard in the GUI has a onset which is otherwise only available for the upper manual...

shdawson commented 10 years ago

Hmmm...

I edited to: Exec=setBfree-start midi.driver=alsa midi.upper.channel=2 midi.lower.channel=1

No change.

Now, if I fire up setBfree from the CLI, how can I change to different voices without the GUI. It seems like I need a GUI.

Is there another stand alone version I should install?

x42 commented 10 years ago

You can use a midi-controller to change all settings (that's also what the GUI does: it just sends midi CC messages). Most players that I know don't use a GUI at all.

shdawson commented 10 years ago

OK, But how does one change the voices through MIDI CC messages?

x42 commented 10 years ago

'voices' are midi programs, you send MIDI-PGM (program select) messages.

x42 commented 9 years ago

For future reference: The new GUI is either LV2-plugin or jack-only.

As for setting up jack (and jack midi) please see the excellent tutorial at: http://libremusicproduction.com/articles/demystifying-jack-%E2%80%93-beginners-guide-getting-started-jack or http://manual.ardour.org/setting-up-your-system/setting-up-midi/midi-on-linux/

alsa-midi support is still available in the headless commandline app (and will not go away), but migrating to jack-midi is highly recommended.