Tutorials/MIDI on Linux
A MIDI synthesizer converts MIDI events into sound. The synthesizer can be an external hardware device, or integrated into a sound card. It may also be a software synthesizer, i.e. a program.
There are MIDI files with the .MID extension, containing music in MIDI data format. One way to explain it is in culinary terms. Listening to music on a Compact Disc is similar to eating in a restaurant, and MP3 would be comparable to fast food. In addition, a MIDI file is like a recipe: you have to get the proper ingredients and use cooking utensils. Instead of oven, pots and pans you will be using MIDI synthesizers. Like any good geek and Linux user, you will want to change the recipe and ingredients. Then do it! In KMid you can open the "channels" window and switch the piano for a guitar or whatever you prefer.
External MIDI Synthesizers
These are musical instruments that can be connected to the computer, or to other instruments through MIDI cables. To do this, your computer must have a MIDI interface. There are sound cards with MIDI interfaces, and also USB adapters supported by ALSA with the corresponding kernel module. There are even MIDI instruments that can be connected directly to your computer via USB. In any case, you should check that the MIDI interface model is supported by ALSA at the ALSA project site
In summary, this option will need:
- MIDI Interface
- ALSA Driver for the MIDI interface
- MIDI Cables
Hardware Synthesizer Sound Cards
Some sound cards, such as the ones manufactured by Creative Labs (SB AWE, Sound Blaster Live! and Audigy) have a MIDI synthesizer using wave-table sound samples as a synthesis method. These samples are being loaded into the sound card before using MIDI software, preferably at system boot. If you own one of these cards:
- In addition to ALSA, also install the software package awesfx which includes the sound samples loader, ALSA scripts and udev rules to automatically load on system boot.
- Install SoundFont files provided by the manufacturer or other alternative SF2 files in /usr/share/sounds/sf2.
- Edit the configuration file /etc/sysconfig/sound. On the value for the key , provide the name of one or several SF2 files that must be loaded on system startup. The file names and locations may vary from one distribution to another, these instructions apply to openSUSE.
SoundFont filescan also be loaded manually. Read the manual of asfxload for more information.
The classic software synthesizer for Linux is TiMidity++, but the latest release is from 2004. It requires sound samples in GUS or SF2 format. It can be used independently as a player, but if you want to use it in conjunction with other ALSA sequencer compatible programs, you must provide the "-iA" option, for example:
Another software synthesizer, with modern and modular design and active maintenance is FluidSynth. It uses sound samples in SF2 format, and has a friendly graphic interface called QSynth. You can also run it from the command line, for example:
fluidsynth -a alsa /usr/share/sound/sf2/soundfont.sf2
fluidsynth -a pulseaudio /usr/share/sound/sf2/soundfont.sf2
These files represent the fish, meat and vegetables in your MIDI recipe. Here are some recommendations.