Annotation of hatari/doc/alsa-midi.txt, revision 1.1

1.1     ! root        1: 
        !             2: Getting (Linux) ALSA midi support to work with Hatari
        !             3: =====================================================
        !             4: 
        !             5: If you don't have a real MIDI sequencer, use a software synthetizer.
        !             6: For links to software referenced in this text, see end of the text.
        !             7: Most of the distros should have in their repositories packages at
        !             8: least for some of them though.
        !             9: 
        !            10: There are also some notes about midi networking.
        !            11: 
        !            12: 
        !            13: Making MIDI soft-synthetizer to work with ALSA
        !            14: -----------------------------------------------
        !            15: 
        !            16: Make Timidity into an ALSA output device with:
        !            17:   timidity -Os -iA
        !            18: (-O: output=alsa, -i: interface=alsa)
        !            19: 
        !            20: To make it use less CPU and be more responsive, use:
        !            21:   timidity -Os -iA -B2,8 -EFreverb=0 -EFchorus=0
        !            22: (-B: 2,8=set small buffers, -EFx=0: disable effects)
        !            23: 
        !            24: Make vkeybd (virtual midi keyboard app) into an ALSA input device with:
        !            25:   vkeybd
        !            26: 
        !            27: View the resulting (software) ALSA input and output devices:
        !            28:   aconnect -i -o
        !            29: 
        !            30: Then connect the vkeybd input to timidity output with:
        !            31:   kaconnect
        !            32: or if you don't have this UI program, just use 'aconnect' directly:
        !            33:   aconnect <sender port> <receiver port>
        !            34: 
        !            35: Now you can use the virtual midi keyboard for testing the sound
        !            36: synthesis.
        !            37: 
        !            38: 
        !            39: Finally You can test how well midi files are played.
        !            40: Check which ALSA port Timidity provides:
        !            41:   aplaymidi -l
        !            42: 
        !            43: And use that port for playing a midi file:
        !            44:   aplaymidi -p <port, e.g. 129:0> test.mid
        !            45: (or use 'pmidi')
        !            46: 
        !            47: Note: Remember that you need to re-connect the (virtual) device
        !            48: ports each time you restart them.
        !            49: 
        !            50: 
        !            51: Using FluidSynth instead of Timidity
        !            52: ------------------------------------
        !            53: 
        !            54: Instead of Timidity, you also use other soft-synthetizers,
        !            55: like FluidSynth:
        !            56:   fluidsynth --audio-driver=alsa --midi-driver=alsa_seq soundfont.sf2
        !            57: 
        !            58: You could play a bit with other options to get more performance,
        !            59: sound volume etc:
        !            60:   --reverb=no --chorus=no -o synth.polyphony=16 --gain=0.6
        !            61: 
        !            62: And if you don't like the FluidSynth shell, use:
        !            63:   --no-shell --server
        !            64: 
        !            65: FYI: Current (v1.0.7a) FluidSynth has buffer overruns, but they
        !            66: will  be fixed in the next release (hopefully coming soon).
        !            67: 
        !            68: 
        !            69: Making it all to work with Hatari
        !            70: ---------------------------------
        !            71: 
        !            72: Hatari requires midi hardware devices to work, it doesn't support
        !            73: ALSA directly.  To get the software synth ALSA devices to appear
        !            74: as HW midi devices, run following as *root*:
        !            75:   modprobe snd-virmidi
        !            76: 
        !            77: When you you list your ALSA output devices with:
        !            78:   aconnect -o
        !            79: You should see in addition to Timidity also 4 virtual hardware
        !            80: devices.
        !            81: 
        !            82: Then connect (either with aconnect or kaconnect) the first virtual
        !            83: HW port to the same Timidity port where you connected the virtual
        !            84: midi keyboard.
        !            85: 
        !            86: Now check which number your new virtual midi card got from ALSA:
        !            87:   cat /proc/asound/cards
        !            88: 
        !            89: And give to Hatari the corresponding ALSA midi device.  In my case
        !            90: VirMidi was Card 1 and as the port used above was first one, I give
        !            91: Hatari the following midi device:
        !            92:   hatari --midi /dev/snd/midiC1D0
        !            93: 
        !            94: Note: I also needed --nosound option because Hatari wanted exclusive
        !            95: access to the PCM (sound) device and Timidity was already connected
        !            96: to it.  This may not be the case if you've compiled Hatari with another
        !            97: / newer SDL_mixer library versions.
        !            98: 
        !            99: 
        !           100: Sending the midi data over network
        !           101: ----------------------------------
        !           102: 
        !           103: If you direct the data to stdout, you can use e.g. ssh to pipe
        !           104: it over network:
        !           105:   hatari --midi /dev/stdout --log /dev/stderr |\
        !           106:     ssh [email protected] "cat>/dev/snd/midiC1D0"
        !           107: 
        !           108: Note that logging is re-directed to stderr so that it doesn't
        !           109: mess the midi output.
        !           110: 
        !           111: Same can be done with socat so that the connections are bi-directional.
        !           112: Once Hatari supports midi input, you can use socat like this to do
        !           113: midi-networking between (emulated) Ataris:
        !           114:   @remote.site:
        !           115:     socat PIPE:redirect.pipe TCP4-LISTEN:www
        !           116:     hatari --midi redirect.pipe --log stderr
        !           117:   @local.site:
        !           118:     socat PIPE:redirect.pipe TCP4:remote.site:www
        !           119:     hatari --midi redirect.pipe --log stderr
        !           120: 
        !           121: 
        !           122: Links
        !           123: -----
        !           124: 
        !           125: Software:
        !           126: 
        !           127: Vkeybd:
        !           128:   http://alsa.opensrc.org/Vkeybd
        !           129: 
        !           130: Patch (ALSA connecting) utilities:
        !           131:   http://alsa.opensrc.org/AlsaMidiPatchbays    
        !           132: 
        !           133: FluidSynth:
        !           134:   http://www.iiwu.org/fluidsynth/
        !           135: 
        !           136: Soundfonts:
        !           137:   http://alsa.opensrc.org/SoundFontHandling
        !           138: 
        !           139: List of some soft-synthetizers:
        !           140:   http://alsa.opensrc.org/SoftSynths
        !           141: 
        !           142: socat:
        !           143:   http://www.dest-unreach.org/socat/
        !           144: 
        !           145: MidiMaze:
        !           146:   http://en.wikipedia.org/wiki/MIDI_Maze
        !           147: 
        !           148: 
        !           149: Overviews:
        !           150: 
        !           151: ALSA midi overview:
        !           152:   http://alsa.opensrc.org/AlsaMidiOverview
        !           153: 
        !           154: Virtual midi hardware setup:
        !           155:   http://www.tldp.org/HOWTO/MIDI-HOWTO-10.html
        !           156: 
        !           157: Timidity Howto:
        !           158:   http://lau.linuxaudio.org/TiMidity-howto.html
        !           159: 
        !           160: Midi with ALSA (old):
        !           161:   http://www.linuxfocus.org/English/September2002/article259.shtml
        !           162: 
        !           163: Midi on Linux:
        !           164:   http://www.linuxjournal.com/article/7773

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.