fedora 17 and midi files
01. Sound Settings can be a source of problems if you have
more than one audio card. In my case I have a video card
with hdmi audio, and a sound chip on the motherboard.
first check your sound settings.
select your userid from the top right corner and
then select System Settings.
Select Sound, Check the settings on each of the 5 tabs.
Output Tab:
check the volume setting
check Choose a device for sound output
if more than one device is present see the
hardware tab
check the Connector at the bottom mine says Analog Speakers
Input Tab:
check the input volume - in case you want to do some
recording later, I use a small mixer so unamplified
is fine.
check Connector may have both front and back microphones
as options
check Choose a device for sound input
Hardware Tab:
here you may see more than one device.
check the Output volume
check Choose a device to configure:
Since I do not want to use the hdmi/video I select that
device and then at the bottom change the Settings for the
selected device to Off. Actually I am not certain this
is even necessary but it helped while I was fiddling
around to get midi working.
select the audio device that you will be using from
the Choose a device to configure: area and then
select the Test Speaker button. Make sure you can hear
the test voice from your speaker.
Sound Effects Tab:
here you can test your sound settings again.
move the Alert volume slider about half scale.
Then click any of the alert sounds.
Applications Tab:
ignore for now
02. lsmod | grep snd-seq-midi
I have to run this command on fc17, f18 as the module is not automatically loaded
modprobe snd-seq-midi
03. install some prerequisite applications for midi
alsa-utils
jack-audio-connection-kit
timidity++
qjackctl
fluidsynth
fluidsynth-dssi
qsynth
I have left out all other midi applications like
rosegarden, musescore as this document only covers
the basic midi setups.
04. get some sample midi files from www
05. play a midi file with timidity
timidity -in midifile.midi
If no sound recheck the sound settings in System Settings.
Still nothing? It seems to me that earlier versions of
fedora had some problems with volume settings with the finger
pointing directly at pulseaudio. There are a couple of
pulseaudio clients you might want to install.
yum list pavucontrol, pavumeter -- not found?
yum install pavucontrol, pavumeter
I had some issues with pulseaudio while trying to record
pcm audio as the wrong mic jack was configured, probably
wont affect midi.
06. second test with timidity and jack via qjackctl
start qjackctl from the applications menu
after the application starts , select the
Setup button , and then select the Settings tab.
Check the field Sample Rate and choose 44100 if
different. Note it seems that 48000 is the default
which is a standard for dat, but 44100 is the
standard for cd and if you plan on burning your
music/midi files to cd you should use 44100.
07. Now select the Start button in qjackctl
Note: Once you start running jack, other applications
that use pulseaudio may stop working. Examples are
mplayer, smplayer, etc.
There is a module that might fix this problem but I
haven't tested it out.
pulseaudio-module-jack
08. Now we test timidity with jack
timidity -in -Oj midifile.midi
No sound - review settings in jack
09. ok we assume timidity and jack are working so now we move
on to fluidsynth. Pretty much the same as timidity but
a few details on the setup.
check for soundfonts in /usr/share/soundfonts/
/usr/bin/fluidsynth -v -ni -a jack /usr/share/soundfonts/FluidR3_GM.sf2 midfile.midi
Fluidsynth can be run as a daemon or in the background with a specified soundfont
/usr/bin/fluidsynth -is -a pulseaudio -m alsa_seq -r44100 "/usr/share/soundfonts/FluidR3_GM.sf2" &
then if you have installed alsa-utils you can use aplaymidi
aconnect -o shows what port fluidsynth is connected to -- in my case port 128
aconnect -o
aconnect -o
client 14: 'Midi Through' [type=kernel]
0 'Midi Through Port-0'
client 128: 'FLUID Synth (5459)' [type=user]
0 'Synth input port (5459:0)'
aplaymidi -p 128:0 midifile.midi
10. start qsynth -- here we assume qjackctl is already running
select the Setup button
there are 4 tabs midi, audio, soundfonts, and settings
MIDI tab -- check Enable MIDI Input
MIDI Channels shows 16
Audio tab -- verify Sample Rate is set to 44100
if this is out of sync with qjackctl you
probably wont hear any sound.
Soundfonts tab -- the fedora default works
/usr/share/soundfonts/default.sf2
Settings tab -- I used to have to change something here
but everything just works now.
11. aplaymidi -l
Port Client name Port name
14:0 Midi Through Midi Through Port-0
129:0 FLUID Synth (2375) Synth input port (2375:0)
aplaymidi -p 129:0 midifile.midi
hopefully you heard your midi file, if aplaymidi is
not found you missed installing alsa-utils
12. This completes the basic midi setup
At this point we are ready for some midi applications
which is not covered in this document.
Hydrogen -- drum pattern sequencer
Muse -- midi sequencer
seq24 -- midi sequencer
Rosegarden -- midi sequencer
vmpk -- virtual keyboard
zynaddsubfx -- virtual keyboard
MuseScore -- midi sequencer, music notation composer
Lilypond -- music notation composer
Not midi but useful:
ecasound -- my choice for audio recording and playback
Audacity -- sound recording, generation and editing