-
Notifications
You must be signed in to change notification settings - Fork 224
Software Synth in Jamulus
We will elaborate the concept of playing a software synth on Linux as example and transfer that to other operating systems (e.g. Windows, MacOSX).
- (Hammond Organ Synth) As an example we talk open source software synth setBfree, which is a hammond organ emulator that outputs through JACK on Linux.
- (MIDI Keyboard) The MIDI keyboard is used to generate the key pressed events, that are transmitted through a USB-MIDI interface to Linux system and the Synthesizer setBfree generates the corresponding tone for the pressed key. In general the MIDI keyboard can also be replaced by a digital wind midi controller, that does the same but the tone is dependent on how the musician blows air into the digital wind controller.
- (Connector to Jamulus) You may hear the audio output of your Linux system on your speakers but the audio output may not be use as input for your Jamulus session. So another step is to connect the audio out to Jamulus client (with QJackCtl).
First of all we explain a few basic concepts on Linux to use MIDI and Audio together.
- ALSA is the basic to connection to the hardware, i.e. the soundcard and the midi controller for the keyboard.
- JACK is build on top of ALSA and uses ALSA for the audio output. It provides a adequat environment for music production on Linux.
- Synthesizer like the Hammond Organ emulator setBfree connect to JACK for audio output.
- Jamulus connects to JACK.
Now we look an the workflow to use the whole infrastructure in Jamulus.
- (Jamulus Installation and JACK) Use the install script for Jamulus on Linux or install Jamulus with the manual in the wiki. With this installation we have JACK and QJackCtl installed for Jamulus.
-
(ALSA to JACK - MIDI) Next we must create a connection from ALSA to JACK to route the MIDI input from the keyboard to the Hammond Emulator setBfree. The you can start JACK-Control (QJackCtl) from the command line by
qjackctl
and then launch the ALSA2JACK MIDI connector. This can be done with the shell command:a2jmidid -e
. As long as this connector runs thea2j
connection interface is visible inQJackCtl
. Start the Hammond Synthesizer too e.g. from the command line withsetBfree
. You will see thesetBfree
graphical user interface GUI (see http://setbfree.org/gui_3d). After starting the Hammond Emulator setBfree you will also see the Hammond Synth SetBFree also in QJackCtl. Connecta2j
as input to ´setBfreeas output. If you have speakers attached to your Linux Computer you would hear the emulated Hammond sound on your Linux PC for all the keys your press on your MIDI keyboard. If ALSA2JACK MIDI (
a2jmidid`) is not installed, install the a2j package for the MIDI connection between ALSA and MIDI.
sudo apt-get install a2jmidid
- (Synth to Jamulus - Audio) In the previous step we connected the MIDI signals from your keyboard to the MIDI input of JACK, which tell JACK which keys are pressed on the keyboard. Now create an audio connection in JACK (i.e. the generated Hammond sound of the synth). We connect the Hammond Emulator setBfree output to Jamulus. Therefore Jamulus must be started so that you see also Jamulus in the audio connection of QJackCtl. Now you can the audio output of the Hammond Emulator setBfree to the audio input of Jamulus in JACK.
In general QJackCtrl
is used similar operations like for plugging in instruments in mixer and the mixer into an amplifier and the amplifier again to the speakers. Have fun with your other OpenSource synths like QSynth, ZynAddSubFX than can be installed on your Linux system and/or used within LMMS.
Have fun playing your synth within Jamulus.
For Windows, Macintosh and Linux
-
Get detailed help with the Jamulus Help Manual
-
Got a question or problem not covered here? Have a feature request? Try the discussions forums
-
Found a bug? Please post these to Github Issues
If you have a couple of minutes, please fill out our anonymous survey!
This wiki is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.