|MIDI is a set of technologies related to musical data description and transmission, but not a digital audio format. To use most MIDI software on Linux, like on any other operating system, a MIDI synthesizer is required.|
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.
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:
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:
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.