265 lines
8.6 KiB
HTML
265 lines
8.6 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>The Linux MIDI-HOWTO : Configuring MIDI devices.</TITLE>
|
|
<LINK HREF="MIDI-HOWTO-8.html" REL=next>
|
|
<LINK HREF="MIDI-HOWTO-6.html" REL=previous>
|
|
<LINK HREF="MIDI-HOWTO.html#toc7" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="MIDI-HOWTO-8.html">Next</A>
|
|
<A HREF="MIDI-HOWTO-6.html">Previous</A>
|
|
<A HREF="MIDI-HOWTO.html#toc7">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s7">7. Configuring MIDI devices.</A></H2>
|
|
|
|
<P>
|
|
<P>MIDI devices can be integrated into the soundcard or be a separate device. External MIDI interfaces may be attached to either the serial or USB port.
|
|
<P>The first *and most important* thing you should do is check if your card is supported!
|
|
<P>
|
|
<A HREF="http://www.alsa-project.org/soundcards.php3">http://www.alsa-project.org/soundcards.php3</A><P>
|
|
<A HREF="http://www.4front-tech.com/osshw.html">http://www.4front-tech.com/osshw.html</A><P>Configuring MIDI devices varies with Linux distributions. A well supported card may be configured when you install the OS.
|
|
<P>The Linux kernel includes the OSS drivers and in the 2.5 kernel the ALSA drivers. Most distributions provide a configuration tool (mostly for soundcards), but if you are using the MIDI port of a sound card it should be configured. Under RedHat you would use sndconfig, under SuSE yast, and Mandrake, DrakConf.
|
|
<P>If none of the above tools will configure your MIDI interface, or you are experiencing problems, the following steps should be taken:
|
|
<P>Does lsmod show any MIDI related modules? Here's a typical output from an OSS based system.
|
|
<HR>
|
|
<PRE>
|
|
[root@beatbox]# lsmod
|
|
Module Size Used by
|
|
lockd 32208 1 (autoclean)
|
|
sunrpc 54640 1 (autoclean) [lockd]
|
|
autofs 9456 2 (autoclean)
|
|
usb-ohci 12624 0 (unused)
|
|
usbcore 43632 1 [usb-ohci]
|
|
hisax 470096 0 (autoclean) (unused)
|
|
isdn 104208 0 (autoclean) [hisax]
|
|
slhc 4544 0 (autoclean) [isdn]
|
|
eepro100 16144 1 (autoclean)
|
|
|
|
#---- Soundcard modules
|
|
opl3 11376 2
|
|
mad16 7968 1
|
|
ad1848 16848 1 [mad16]
|
|
sb 34752 1 [mad16]
|
|
uart401 6384 1 [mad16 sb]
|
|
sound 58368 0 [opl3 mad16 ad1848 sb uart401]
|
|
|
|
soundlow 464 0 [sound]
|
|
soundcore 2800 6 [sb sound]
|
|
nls_cp437 3952 2 (autoclean)
|
|
vfat 9408 1 (autoclean)
|
|
fat 30432 1 (autoclean) [vfat]
|
|
ide-scsi 7664 0
|
|
</PRE>
|
|
<HR>
|
|
<P>Look for mpu401, olp3, uart401 and oss.
|
|
<P>If you are using USB devices don't forget to check if the USB modules are there.
|
|
<P>
|
|
<P>To check the config cat the sndstat file:
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
[root@beatbox]# cat /dev/sndstat
|
|
OSS/Free:3.8s2++-971130
|
|
Load type: Driver loaded as a module
|
|
Kernel: Linux mega 2.2.17-21mdk #1 Thu Oct 5 13:16:08 CEST 2000 i686
|
|
Config options: 0
|
|
|
|
Installed drivers:
|
|
|
|
Card config:
|
|
|
|
Audio devices:
|
|
0: MAD16 WSS (82C930) (DUPLEX)
|
|
|
|
Synth devices:
|
|
0: Yamaha OPL3
|
|
|
|
Midi devices:
|
|
0: Mad16/Mozart
|
|
|
|
Timers:
|
|
0: System clock
|
|
|
|
Mixers:
|
|
0: MAD16 WSS (82C930)
|
|
</PRE>
|
|
<HR>
|
|
<P>We see here that the MIDI device is a mad16 and this is listed in the lsmod output above.
|
|
<P>
|
|
<P>If you see nothing related to MIDI check the contents of your /etc/modules.conf file.
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
[root@beatbox]# cat /etc/modules.conf
|
|
alias net-pf-4 ipx
|
|
pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start
|
|
alias usb-interface usb-ohci
|
|
alias parport_lowlevel parport_pc
|
|
alias block-major-11 scsi_hostadapter
|
|
pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq
|
|
alias scsi_hostadapter ide-scsi
|
|
alias eth0 eepro100
|
|
alias eth1 hisax
|
|
|
|
#---- Soundcard
|
|
alias sound-slot-0 mad16
|
|
options sound dmabuf=1
|
|
alias midi opl3
|
|
options opl3 io=0x388
|
|
options sb support=1
|
|
options mad16 io=0x530 irq=5 dma=0 dma16=1 mpu_io=0x300 mpu_irq=7 joystick=1
|
|
</PRE>
|
|
<HR>
|
|
<P>Here's the output of /proc/modules to check to see if the MIDI modules are loaded into the Kernel.
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
[root@mega /proc]# cat modules
|
|
0000-001f : dma1
|
|
0020-003f : pic1
|
|
0040-005f : timer
|
|
0060-006f : keyboard
|
|
0070-007f : rtc
|
|
0080-008f : dma page reg
|
|
00a0-00bf : pic2
|
|
00c0-00df : dma2
|
|
00f0-00ff : fpu
|
|
0170-0177 : ide1
|
|
01f0-01f7 : ide0
|
|
02f8-02ff : serial(auto)
|
|
|
|
#---- MIDI device
|
|
0300-0303 : MPU-401 UART
|
|
|
|
0376-0376 : ide1
|
|
0388-038b : Yamaha OPL3
|
|
03c0-03df : vga+
|
|
03f6-03f6 : ide0
|
|
03f8-03ff : serial(auto)
|
|
0530-0533 : MAD16 WSS config
|
|
0534-0537 : MAD16 WSS
|
|
de00-de1f : Intel Speedo3 Ethernet
|
|
f000-f007 : ide0
|
|
f008-f00f : ide1
|
|
</PRE>
|
|
<HR>
|
|
|
|
<P>You should see something similar to the above. If not you'll need to install MIDI drivers.
|
|
<P>If you are going to be using ALSA 0.5x divers, which you shouldn't do, I suggest a good read of Valentijn Sessink's Alsa-sound-mini-HOWTO which can be found at the link below:
|
|
<P>
|
|
<A HREF="http://www.linuxdoc.org/HOWTO/mini/Alsa-sound.html">http://www.linuxdoc.org/HOWTO/mini/Alsa-sound.html</A><P>You are strongly recommended to use ALSA greater than version 0.9. For ALSA drivers later than 0.9x you should have a good read of the ALSA-HOWTO by Madhu Maddy.
|
|
<P>
|
|
<A HREF="http://www.alsa-project.org/alsa-doc/alsa-howto/">http://www.alsa-project.org/alsa-doc/alsa-howto/</A><P>
|
|
<H2><A NAME="ss7.1">7.1 ALSA 0.9 quick install</A>
|
|
</H2>
|
|
|
|
<P>Below is a very quick install run-though for installing the ALSA 0.9 drivers and libs which is a required configuration for most MIDI apps.
|
|
<P>
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
[root@beatbox] # tar jxvf alsa-driver....tar.bz2
|
|
[root@beatbox] # cd alsa-driver.....
|
|
[root@beatbox] # ./configure
|
|
|
|
messages - no errors
|
|
|
|
[root@beatbox] # make
|
|
|
|
messages - no errors
|
|
|
|
[root@beatbox] # make install
|
|
|
|
messages - no errors
|
|
|
|
[root@beatbox] # ./snddevices
|
|
</PRE>
|
|
<HR>
|
|
<P>Now you will need to edit /etc/modules.conf, or the ALSA file in your modules directory on some distributions. There may be entries for other, non-MIDI, devices, so be careful when you are editing the file.
|
|
<P>A typical system may have old ALSA or OSS configurations in the file, you will need to remove, or better still comment them out.
|
|
<P>Below is a typical modules.conf file showing the ALSA config with OSS.
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
alias char-major-116 snd
|
|
alias char-major-14 soundcore
|
|
|
|
alias snd-card-0 (MIDI/Sound card)
|
|
alias sound-slot-0 snd-card-0
|
|
|
|
alias sound-service-0-0 snd-mixer-oss
|
|
alias sound-service-0-1 snd-seq-oss
|
|
alias sound-service-0-3 snd-pcm-oss
|
|
alias sound-service-0-12 snd-pcm-oss
|
|
</PRE>
|
|
<HR>
|
|
<P>Change the (MIDI/Sound card) entry to that of your card. This information can normally be found on the ALSA website.
|
|
<P>With the ALSA drivers installed, now you will need to install the header library files needed by ALSA based programs. This is what is contained in the alsa-libs package.
|
|
<P>Make sure you have a matching pair of alsa-drivers and alsa-libs!
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
[root@beatbox] # tar jxvf alsa-libs....tar.bz2
|
|
[root@beatbox] # cd alsa-libs.....
|
|
[root@beatbox] # ./configure
|
|
|
|
messages - no errors
|
|
|
|
[root@beatbox] # make
|
|
|
|
messages - no errors
|
|
|
|
[root@beatbox] # make install
|
|
</PRE>
|
|
<HR>
|
|
|
|
<P>Your system should now be configured :)
|
|
<P>You can check this with a simple C program, if it compiles and can be executed then your system should be ok.
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
// Compile this test program like so: gcc alsatest.c -o alsatest -lasound
|
|
|
|
#include <stdio.h>
|
|
#include <alsa/asoundlib.h>
|
|
|
|
int main (int argc, char *argv[])
|
|
{
|
|
snd_seq_t *seq_handle;
|
|
|
|
if (snd_seq_open(&seq_handle, "hw", SND_SEQ_OPEN_DUPLEX, 0) < 0) {
|
|
fprintf(stderr, "Error opening ALSA sequencer.\n");
|
|
exit(1);
|
|
}
|
|
|
|
printf("The ALSA libraries are installed.\n");
|
|
return 0;
|
|
}
|
|
|
|
</PRE>
|
|
<HR>
|
|
<P>
|
|
<P>
|
|
<P>
|
|
<H2><A NAME="ss7.2">7.2 Latency</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>MIDI is a real-time protocol and latency issues are a serious problem.
|
|
<P>There are now several developers working on improving the latency times and improvements in the kernel are making Linux a fine platform for MIDI.
|
|
<P>Although stock Linux distributions may run fine, pro set-ups should apply low-latency patches. More information can be found here:
|
|
<P>
|
|
<A HREF="http://www.gardena.net/benno/linux/audio/">http://www.gardena.net/benno/linux/audio/</A><P>
|
|
<A HREF="http://www.linuxdj.com/audio/lad/resourceslatency.php3">http://www.linuxdj.com/audio/lad/resourceslatency.php3</A><P>
|
|
<P>Low Latency Mini Howto
|
|
<P>
|
|
<A HREF="http://www.boosthardware.com/LAU/guide/Low_latency-Mini-HOWTO.html">http://www.boosthardware.com/LAU/guide/Low_latency-Mini-HOWTO.html</A><P>
|
|
<HR>
|
|
<A HREF="MIDI-HOWTO-8.html">Next</A>
|
|
<A HREF="MIDI-HOWTO-6.html">Previous</A>
|
|
<A HREF="MIDI-HOWTO.html#toc7">Contents</A>
|
|
</BODY>
|
|
</HTML>
|