Part Two: External Devices and Sound Sources

Sunday 31 January 2010, 1:43pm GMT

This is the second in a series of articles that aim to provide some guidance on how to get started making use of the Professional Audio tools and capabilities of a Fedora system. This article starts by extending the first article to cover using an external MIDI controller keyboard and an external sound module to create sounds. The second part of the article introduces the Planet CCRMA repositories and provides an overview of a number of different sound synthesis applications.

Connecting and Using External Devices

In the previous article I described how to connect a virtual midi keyboard to the ZynAddSubFX software synthesiser and make some noise. If you are anything like me you will soon tire of clicking keys with the mouse or using your computer keyboard to play notes. You may also discover that your computer is not powerful enough to run all of the sound sources you want. Finally it may be the case that you already have a number of hardware MIDI devices that you want to use with the audio applications available on Fedora. The following sections describe how to connect and use an external MIDI controller keyboard and a General MIDI sound source with Fedora.

MIDI Controllers

In general there are two ways in which you can connect external MIDI devices to your computer: through a dedicated MIDI port on your sound card or using a MIDI USB device. Many older sound cards, such as the Creative Labs Sound Blaster, or higher end sound cards provided a MIDI ports in addition to the audio ports. If you have such a card you should already see the MIDI port in the MIDI connections tab in Qjackctl. If you connect the MIDI out port of your controller to the MIDI in port of your sound card and then use Qjackctl to connect your sound cards MIDI source to the MIDI sink of ZynAddSubFX you should be able to play notes.

Most modern MIDI controller keyboards, in addition to the standard MIDI in and out ports, will have a USB port to connect to your computer. When you connect such a device to your computer, assuming it follows the USB MIDI device standard, it will create a number of virtual MIDI ports. For example I have an M-Audio Axiom 61 contoller keyboard, when I connect it to my keyboard using USB it shows up in Qjackctl as:

Qjackctl MIDI connections tab

Qjackctl MIDI connections tab showing the external MIDI controller keyboard.

As you can see there are three new MIDI ports created. Readable MIDI port 1 supplies MIDI data from pressing keys and moving sliders on the keyboard, readable MIDI port 2 supplies MIDI data from devices that are connected to the MIDI in port on the keyboard. Writeable MIDI port 1 can be one of two things depending on how the keyboard is configured, it can either be the destination for MIDI data to be sent to the keyboard itself or it can be the destination for MIDI data to be sent to the MIDI out port on the keyboard. To connect the keyboard to ZynAddSubFX I use Qjackdtl to connect readable MIDI port 1 to the ZynAddSubFX MIDI port as shown in the following screenshot:

Qjackctl MIDI connections tab

An external MIDI controller keyboard connected to ZynAddSubFX.

At this point, assuming the JACK audio connections for ZynAddSubFX have be made, I can play notes by pressing keys on my keyboard.

MIDI Sound Modules

In the olden days, well the 1980s and early 1990s, desktop computers were not powerful enough to run software synthesis applications such as those described below so musicians used dedicated hardware synthesis applications or sound modules. Sound modules are synthesisers without a keyboard attached, to play notes you need to connect these devices to a keyboard or sequencer. This is the reason that the MIDI standard was first developed. In recent years the popularity of sound modules has waned now that desktop computers have sufficient power to run multiple software synthesisers. The upside of this is that you can pick up older units from online auction sites such as eBay quite cheaply.

I recently obtained a Roland Sound Canvas SC-55ST which is a version of the SC-55 that has no physical user interface, all control is using the MIDI interface. Adding this device to my setup was as simple as using Qjackctl to connect the MIDI source of the keyboard controller to the MIDI output port on the keyboard.

Qjackctl MIDI connections tab

An external MIDI keyboard connected to an external MIDI sound module.

One final comment on external sound sources, unlike software sound sources the audio created by these devices is external to your computer so you need to use you sound cards capture devices to import the sound into the digital world. Recording sound like this is a big topic, and I hope to dedicate a later article to this topic.

Planet CCRMA

Planet CCRMA is a collection of packages for the Red Hat and Fedora Linux distributions. The packages focus on applications and infrastructure required for audio and other media production. The packaging product started out to provide a resource for the researchers working at the Stanford University Center for Computer Research in Music and Acoustics but has evolved to become the de-facto resource for audio application packages for Red Hat and Fedora.

There is a vast range of packages available from the repository covering all of the infrastructure and application needs for musicians using Fedora. These include a replacement realtime kernel, JACK, various synthesiser applications, and other applications such as Ardour and Rosegarden. You should be aware that some of the packages available from Planet CCRMA will replace those provided by the Fedora Project, for example the JACK packages in Planet CCRMA are more recent than those in Fedora.

In the first article in this series I noted that an effort was underway to move many of the packages from Planet CCRMA into the main Fedora Project. Shortly after the article was written this effort stalled. Recently Hans de Goede has started pushing this forward, if you have some spare time please consider getting involved.

Installing and Configuring

Planet CCRMA provide an RPM which you can download and install to configure your system to use their repositories. You can perform this operation with a single command as the root user:

[root@fedora ~]# rpm -ivh http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/7/i386/planetccrma-repo-1.0-3.fc7.ccrma.noarch.rpm

Note that if you are running a Fedora version other than 7 you will need to modify the URL and package name as appropriate. This package installs three files: a copy of the GPL, the GPG key used to sign the packages, and the YUM repository configuration file. You should now be able to install packages from Planet CCRMA using YUM.

Installing Packages

There are three meta-packages provided, these do not contain any applications instead they force YUM to download a sequence of packages that provide the actual functionality. To install the complete Planet CCRMA system, as root run the command:

[root@fedora ~]# yum install planetccrma-core planetccrma-apps planetccrma-apps-devel

Beware! This will cause a huge number of packages to be downloaded, depending on your network connection this could take a while. If you do intend to run this command please read the excellent instructions at Planet CCRMA.

Instead of installing everything I would recommend that you install the realtime kernel, the Planet CCMRA graphics and menus, and the updated JACK. As root, the command to do this is:

[root@fedora ~]# yum install planetccrma-artwork planetccrma-menus kernel-rt jack-audio-connection-kit qjackctl

Once these packages have installed you need to make sure you have granted permission for your user to run realtime applications and then you should reboot using your new kernel. Planet CCRMA provide lists of applications and core packages that you browse before deciding what to install. Lists are also provided in the documentation.

Finally, there are two mailing lists you might want to join: an announce list and a discussion list.

An Overview of Sound Sources

As mentioned previously software sound sources are rapidly eclipsing hardware sound modules. The following section provides a whirlwind tour of a number of the free software sound sources available for Fedora, either from the main Fedora repository or from Planet CCRMA. All of the applications can use JACK for their audio output and the ALSA MIDI sequencer for control by a MIDI keyboard controller or sequencer. In most cases the steps described in the previous article for using ZynAddSubFX can be easily adapted to getting these applications to work.

To get the best out of many of these applications I would recommend that you read the Wikipedia pages on Synthesisers to understand how these applications generate sounds.

Aeolus

Aeolus is a synthesised pipe organ. It is a phenomenal piece of work, the sounds created are incredibly realistic. The user interface may appear basic, but it hides a depth and complexity that will keep the pipe organ enthusiast engrossed for days if not weeks. Try listening to some of the example tracks available from the homepage and try and telling them apart from the real thing!

Aeolus screen shot

Aeolus.

Steve A has written a quickstart and a primer for Aeolus.

Summary

Repository Planet CCRMA
Install Command yum install aeolus
Homepage http://www.kokkinizita.net/linuxaudio/aeolus/index.html

Alsa Modular Synth

The Alsa Modular Synth is almost the exact opposite to Aeolus. It is so flexible that with a sufficiently powerful computer you should be able to create any sound imaginable. You start out with a blank canvas and build your own virtual synthesiser from scratch, unlike a hardware synthesiser this allows you to add as many of each type of component as you want. This level of flexibility can be daunting but there are some very good example patches available. These are normally installed in /use/share/ams/.

Alsa Modular Synth screen shot

Alsa Modular Synth.

There is excellent, if outdated, documentation available. Recently there seems to have been an upsurge in development activity around AMS which bodes well for the future.

Summary

Repository Planet CCRMA
Install Command yum install ams
Homepage http://alsamodular.sourceforge.net/

AmSynth

AmSynth is more like a traditional analogue modeling synth, it has a fixed number of components such as oscillators, filters, and modulators. You can still create a wide range of sounds using this synth, and it is simpler for get to grips with than AMS.

AmSynth screen shot

AmSynth.

The software is stable and works well, but development seems to have stopped and as such there is no dedicated community to provide help for new users. Your best bet for help is one of the more general Linux Audio mailing lists.

Summary

Repository Planet CCRMA
Install Command yum install amsynth
Homepage http://amsynthe.sourceforge.net/amSynth/

Bristol

Bristol is more than just a synthesiser it is a project to emulate a number of different vintage synthesisers including the Juno shown below.

Bristol Juno screen shot

Bristol Juno.

When starting the Bristol engine you tell it which one of the 20 synths available you want to use. Bristol provides a GUI based on an accurate representation of the original synth. There is excellent documentation on the project web page, and the author, Nick Copeland, is often found on the Linux Audio Users mailing list.

Summary

Repository Planet CCRMA
Install Command yum install bristol\*
Homepage http://bristol.sourceforge.net/

Hexter

Hexter is a software synthesiser that emulates the sound of a Yamaha DX7. As well as being a standalone synthesiser controllable a via MIDI, Hexter also implements the Disposable Soft Synth Interface which allows the synthesiser to act as a plugin in other applications such as Rosegarden.

Hexter screen shot

Hexter.

Hexter does not provide much of a GUI, in fact to edit the patches you need to use MIDI System Exclusive commands! However it can load a wide range of DX7 patches so there are plenty of sounds available.

Summary

Repository Fedora
Install Command yum install hexter-dssi
Homepage http://dssi.sourceforge.net/hexter.html

Qsynth

Qsynth is a graphical front end for the FluidSynth software synthesiser. Fluidsynth is based on playing Soundfonts. Qsynth allows you to load multiple FluidSynth instances each with a different soundfont and seperate JACK audio connections and MIDI inputs.

Qsynth screen shot

Qsynth.

Qsynth is written by Rui Nuno Capela (and others). Rui is also responsible for Qjackctl, so the look and feel of the application should be immediately familiar.

Summary

Repository Fedora
Install Command yum install qsynth
Homepage http://qsynth.sourceforge.net

Specimen

From the web page, Specimen is a MIDI controllable audio sampler. The project has gone through a number of incarnations and different maintainers, but it seems to have come to life in the last few months with a push for a new release and the adding of some long standing feature requests.

Specimen screen shot

Specimen.

Unfortunately the documentation on the web doesn't work for me. If you need help you should try the mailing list.

Summary

Repository Planet CCRMA
Install Command yum install specimen
Homepage http://zhevny.com/specimen/

WhySynth

WhySynth is a flexible software synthesiser featuring 4 oscillators, 2 filters, 3 LFOs, and 5 envelope generators per voice. The synthesier was developed by Sean Bolton, who also wrote Hexter.

Whysynth screen shot

Whysynth.

WhySynth differs from Hexter in that as well as loading its own patches, and those created for Xsynth (an earlier software synthesiser create by Sean), it provides a graphical interface for editing the parameters of the oscillators, filters, LFOs, and envelope generators.

Summary

Repository Fedora
Install Command yum install whysynth-dssi
Homepage http://home.jps.net/~musound/whysynth.html

ZynAddSubFX

ZynAddSubFX is a polyphonic multitimberal synthesiser that has three different engines - an additive engine, a subtractive engine, and a PAD engine. The synthesiser also supports a number of effects such as reverb, equalisation, and distortion.

ZynAddSubFX screen shot

ZynAddSubFX.

Getting started with ZynAddSubFX is discussed in more detail in the first article in this series.

Summary

Repository Fedora
Install Command yum install zynaddsubfx
Homepage http://zynaddsubfx.sourceforge.net

Conclusion

Hopefully having made it this far you'll be in a position to use your Fedora system to create a wide variety of sounds. In the next article in the series I will cover how to use a sequencer with some of these synthesisers to start composing music.

Feedback on this, and other Fedora articles written by Keith Sharp, is always welcome. Please email any comments to <kms@passback.co.uk>.