Difference between revisions of "Timidity"
(→Freepats: Added external link to Freepats repository) |
m (→Freepats: Typo (should've previewed)) |
||
Line 13: | Line 13: | ||
===Freepats=== | ===Freepats=== | ||
− | The [http://freepats.zenvoid.org/ Freepats | + | The [http://freepats.zenvoid.org/ Freepats] project provides a set of instrument samples which are compatible with timidity++. It can be installed from the [[Pacman#Repositories|community repository]]: |
# pacman -S timidity-freepats | # pacman -S timidity-freepats | ||
Revision as of 15:41, 16 February 2010
Contents
Introduction
timidity++ is a MIDI to WAVE converter and player which is basically used to play MIDI files if your sound card does not support the MIDI protocol natively.
Installing timidity++
The first step is to install timidity++ itself. It can be installed via pacman from the extra repository:
# pacman -S timidity++
However, timidity++ will not produce any sound yet. This is because timidity++ does not include any instrument samples. To produce sound, instrument patches and/or soundfonts need to be installed and timidity++ configured so it knows where to find them. This guide shows two ways of getting sound samples: Freepats and soundfonts.
Setting up the sound samples
Freepats
The Freepats project provides a set of instrument samples which are compatible with timidity++. It can be installed from the community repository:
# pacman -S timidity-freepats
To use Freepats with timidity, add the following lines to /etc/timidity++/timidity.cfg:
dir /usr/share/timidity/freepats source /etc/timidity++/freepats/freepats.cfg
Then timidity++ is ready for use.
Soundfonts
There are many soundfonts available. This example will show how to isntall the fluidr3 soundfont, which is accessible via the AUR.
- Note: It will be assumed that you know how to build packages from the AUR. If you have never used the AUR before, please take a look at the AUR User Guidelines.
As sfarkxtc, a decompressor for soundfonts, is a make dependency of fluidr3, we install it first:
# pacman -S sfarkxtc
After sfarkxtc has been installed, we will be able to build fluidr3 which may take some time.
# wget http://aur.archlinux.org/packages/fluidr3/fluidr3/PKGBUILD # wget http://aur.archlinux.org/packages/fluidr3/fluidr3/fluidr3.install # wget http://aur.archlinux.org/packages/fluidr3/fluidr3/license # makepkg # pacman -U fluidr3-122501-6.pkg.tar.gz
If fluidr3 has been installed properly, we have to add it's path to the timidity++ configuration file. Just add this line to /etc/timidity++/timidity.cfg:
soundfont /usr/share/soundfonts/fluidr3/FluidR3GM.SF2
Then timidity++ is ready for use.
How to use timidity++
There are two ways to use timidity++. Either as MIDI player or as daemon adding MIDI support to ALSA.
Standalone mode
You can simply use timidity++ to play MIDI files:
$ timidity example.midi
Add option -in or -ig for a text mode/gtk+ interface. E.g. as a Xfce/GNOME user you may want to set MIDI files to open with the custom command `timidity -ig'. There are many other options to timidity; see manpage or use -h to get help.
Alsa daemon mode
If you want timidity to run as ALSA daemon, just use:
# /etc/rc.d/timidity++ start
If you want to have permanent MIDI support, add timidity to your daemon list in /etc/rc.conf:
DAEMONS=(... timidity++ ...)
Or if you just want to run timidity with ALSA support once, you can use the following command which will make console output viewable:
$ timidity -iA
This will give you four output software MIDI ports (in addition of hardware MIDI ports on your system, if any):
$ aconnect -o client 128: 'TiMidity' [type=user] 0 'TiMidity port 0 ' 1 'TiMidity port 1 ' 2 'TiMidity port 2 ' 3 'TiMidity port 3 '
An example usage for this is community/vkeybd, a virtual MIDI keyboard for X:
# pacman -S vkeybd ... $ vkeybd --addr 128:0
Option --addr 128:0 connects the input (readable) software MIDI port provided by vkeybd to the first output (writable) ALSA port provided by Timidity. Alternatively you can use aconnect(1), community/aconnectgui or AUR packages patchage, kaconnect. As a result when you play around with the keys on the vkeybd timidity plays the appropriate notes. See also USB Midi Keyboards.
Troubleshooting
timidity++ does not play MIDI files
It may be that your soundfile is not set up correctly. Just run:
$ timidity example.midi
If you find a line like this in the terminal output, your soundfile is not set up properly.
No instrument mapped to tone bank 0, program XX - \ this instrument will not be heard
Make sure you've installed some samples and your soundfile is added to /etc/timidity++/timidity.cfg. See Setting up the sound samples above for more details.
How to make DOSBox use Timidity++
The following method is tested in version DOSBox 0.72 (don't know if this works for OLDER or NEWER!).
First of all, you need to write a config file. Input the following in DOSBox to create a configuration file:
config -writeconf dosbox.conf
you can replace dosbox.conf by anyname that you want, add a dot in front of it if you want to hide it.
Make sure you statred Timidity++ as DAEMON as the instructions above, use the aconnect command.
Edit this configuration file with any editor, go to the section:
[midi] mpu401=intelligent device=default config=
put the ALSA connection port into the back of config=, in default:
config=128:0
Restart DOSBox within a terminal so you can see its debug messages, by no accident you should see a successful initiation on port 128:0.