File:  [NetBSD Developer Wiki] / wikisrc / tutorials / how_to_use_midi_devices_with_netbsd.mdwn
Revision 1.3: download - view: text, annotated - select for diffs
Mon Apr 8 22:28:58 2019 UTC (21 months, 1 week ago) by sevan
Branches: MAIN
CVS tags: HEAD
Link to manuals

**Contents**

[[!toc levels=2]]

#  Supported hardware 

##  Creative Music System 

Very old and rare synthesizer. 

See [[!template id=man name="cms" section="4"]].

##  PC speaker 

It has one-voice polyphony and sounds just awful. Useful only for testing MIDI input devices. 

See [[!template id=man name="pcppi" section="4"]].

##  Roland MPU-401 

MIDI interface by Roland. It became popular thanks to excessive cloning. 

Supported on many ISA cards, and following PCI cards: 

  * C-Media CMI8738 - [[!template id=man name="cmpci" section="4"]] - support broken in NetBSD 4.0? 
  * ESS Solo-1 - [[!template id=man name="eso" section="4"]]
  * ForteMedia FM801 - [[!template id=man name="fms" section="4"]]
  * Yamaha DS-1 - [[!template id=man name="yds" section="4"]]

Usually MPU interfaces are conncted to MIDI/Joystick port on sound cards. You won't be able to play/receive anything unless you connect some external MIDI device to such port. Though, in some rare cases MPU interface is connected to on-board/daughterboard WaveTable MIDI engine. 

See [[!template id=man name="mpu" section="4"]]

##  Simple MIDI interfaces 

Simple MIDI interfaces are supported on many ISA cards, and following PCI cards: 

  * Cirrus Logic CS4280 - [[!template id=man name="clcs" section="4"]]
  * Creative Labs SoundBlaster PCI (Ensoniq AudioPCI based) - [[!template id=man name="eap" section="4"]]
  * Trident 4DWAVE and compatibles - [[!template id=man name="autri" section="4"]]

Usually simple MIDI interfaces are connected to MIDI/Joystick port on sound cards. You won't be able to play/receive anything unless you connect some external MIDI device to such port. 

Note: MIDI port and synth on SoundBlaster Live! and newer cards by Creative is unsupported. 

##  USB MIDI devices 

Many USB MIDI devices are supported. Synth modules, keyboards and MIDI interfaces are handled well. 

See [[!template id=man name="umidi" section="4"]]

##  Yamaha OPL2 and OPL3 

Popular single-chip FM synthesizer. Almost all ISA cards come with such chip. 

Some of the newer cards have compatbile FM engine too. PCI cards based on following chipsets have it: 

  * C-Media CMI8738 - [[!template id=man name="cmpci" section="4"]] - opl support broken in NetBSD 4.0? 
  * ESS Solo-1 - [[!template id=man name="eso" section="4"]]
  * ForteMedia FM801 - [[!template id=man name="fms" section="4"]]
  * S3 SonicVibes - [[!template id=man name="sv" section="4"]]
  * Yamaha DS-1 - [[!template id=man name="yds" section="4"]]

NetBSD opl driver has built-in General MIDI instrument definitions, so your system is ready to play without additional configuration. 

Note: New PCI cards by Creative Labs do not have this chip. 

See [[!template id=man name="opl" section="4"]]

#  Identifying MIDI devices 

You can easily discover what kind of MIDI devices are available - try grepping dmesg: 
    
    dmesg | grep midi
    

Sample output: 
    
    midi0 at pcppi1: PC speaker (CPU-intensive output)
    midi1 at opl0: Yamaha OPL3 (CPU-intensive output)
    umidi0 at uhub1 port 2 configuration 1 interface 1
    umidi0: Evolution Electronics Ltd. USB Keystation 61es, rev 1.00/1.13, addr 2
    umidi0: (genuine USB-MIDI)
    umidi0: out=1, in=1
    midi2 at umidi0: <0 >0 on umidi0
    

In this case three MIDI devices are detected - PC speaker, Yamaha OPL3 and USB MIDI device (Keystation 61es keyboard in this case). 

#  Connecting MIDI devices 

Connecting MIDI devices is very simple. For example if you want to drive OPL3 using USB MIDI keyboard try: 
    
    cat /dev/rmidi2 > /dev/rmidi1
    

You can now play :). 

#  MIDI software for NetBSD 

Utility called [[!template id=man name="midiplay" section="1"]] comes with NetBSD. 


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb