It is possible to record
the output of the Java Sound (Gervill) Synthesizer on Linux, without
any special wires (connections), just by using the PulseAudio Volume
Control, and the Audacity application.
Note: I don't know if Audacity is accessible to people using screen-readers.
In the example here, I was using Lubuntu, using pavucontrol (Pulse Audio Volume Control). There are probably similar ways of using the mixer of each of the Ubuntu variants for accomplishing the same thing.
First, fire-up the KeyMusician Keyboard, using “Gervill=Software MIDI Synthesizer” as the MIDI output device.
Second, fire-up the “Audacity” application, which is what we'll use for recording. Its window should appear, looking something like the following (with colors unlike my customized colors):
The device selection drop-boxes should appear as in the picture above, with “pulse: Line:0” selected as the input device where the cursor is pointed. You might need to change these drop-boxes to specify the above values.
Then, (from the application menu, under “Sound And Video”, choose “PulseAudio Volume Control”. In the window that appears, click on (or tab-to and activate) the “Recording” tab. Even though the Audacity application is running, it will show no applications currently recording, as in the following screenshot:
But this is no problem, because Audacity is not actually recording yet. To make that happen, in the Audacity window, click on (or tab-to and activate) the drop-button to the right of the microphone icon, and select “Start Monitoring” as in the screenshot below:
After doing that, go to the PulseAudio Volume Control window, and its “Recording” tab's pane will no longer be blank, as shown below:
Click on (or tab-to and activate) its “ALSA Capture from” drop-box, and select “Monitor of Built-in Audio Analog Stereo” entry (as shown above), where “Built-in Audio” may be different on your system, and needs to be the name of the soundcard your amplifier/speakers are connected-to.
If you instead choose the name of the soundcard, you will have to connect an audio input plug into the soundcard's line-in jack, and use that. When you choose the “Monitor of” version, it routes whatever you hear on your speakers to the input-line to be recorded.
When you do that, you will start to see activity on the “L” and “R” meters above the microphone icon, as shown in the screenshot below, where I was monitoring the output of the integrated MIDI player/recorder, playing one of the KMK exercise pieces using “Gervill=Software MIDI Synthesizer” as the player's output device:
You can verify that the monitoring works (without using the MIDI player), by clicking on (or selecting) the main KeyMusician Keyboard Window, and playing a few notes. You should see activity on the input level meters similar to what is shown above (assuming there is room on your screen to view both windows at the same time).
Now that monitoring is working, you're ready to start recording. To do that, click on (or tab-to and activate) the “Record” button of the Audacity window, as shown in the screenshot below:
Then, click on (or select) the main KeyMusician Keyboard application window (to give it keyboard-focus), and start playing. It will record what you play.
When you're through playing, click on (or tab-to and activate) the “Stop” button of the Audacity window to stop the recording process, as shown in the screenshot below:
This method of recording works for recording the Java Sound (Gervill) Synthesizer, but it actually works for recording anything you can hear on your speakers while you are using PulseAudio, which includes using the hardware synthesizers of a Soundblaster Live soundcard. This could also include audio input from a microphone.
This method will also work for recording from Qsynth when Qsynth is configured to use PulseAudio (rather than JACK).
HOWEVER, keep in mind that the PulseAudio sound server, and the JACK sound server are like mortal enemies, and can't be used together. Audacity (and YouTube videos as well) fall into the PulseAudio camp, and can't be used while using JACK (Qjackctl).
There is a different method for recording when you are using JACK.
Back to Index