[LAD] More midi related questions

gene heskett gheskett at wdtv.com
Wed Dec 14 15:58:41 UTC 2011


On Wednesday, December 14, 2011 10:32:48 AM Paul Davis did opine:

> On Wed, Dec 14, 2011 at 8:18 AM, gene heskett <gheskett at wdtv.com> wrote:
> > The .jar reports a very lengthy list, 69 total, of potential places it
> > can send this rawmidi data, one of which I believe is equ to 14:0
> > above, listed as choice "#68 realtime synth" in its pulldown, and
> > which java somehow expands most of into the "hw0:0" through "hw0:3"
> > style.
> 
> This is a mistake on the part of Java or the Java app you are using,
> which is hardly suprising since I've never met a Java app that did
> audio/MIDI and played by the rules of the platform it was on. it
> should be using sequencer ports and showing only the client name
> almost all the time.

Rotsa ruck with that :)

Its a long list, but this is what that .jar spits out:
=========
DriveWire MIDI status:

Devices:
[0] Audigy2 [hw:0,0] (MidiInDevice)
    SB Audigy 2 Value [SB0400], Audigy MPU-401 (UART), Audigy MPU-401 (UART), ALSA (http://www.alsa-project.org) 1.0.23
[1] Audigy2 [hw:0,1] (MidiInDevice)
    SB Audigy 2 Value [SB0400], Audigy MPU-401 #2, Audigy MPU-401 #2, ALSA (http://www.alsa-project.org) 1.0.23
[2] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[3] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[4] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[5] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[6] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[7] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[8] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[9] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[10] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[11] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[12] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[13] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[14] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[15] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[16] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[17] Audigy2 [hw:0,2] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[18] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[19] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[20] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[21] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[22] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[23] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[24] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[25] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[26] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[27] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[28] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[29] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[30] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[31] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[32] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[33] Audigy2 [hw:0,3] (MidiInDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[34] Audigy2 [hw:0,0] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], Audigy MPU-401 (UART), Audigy MPU-401 (UART), ALSA (http://www.alsa-project.org) 1.0.23
[35] Audigy2 [hw:0,1] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], Audigy MPU-401 #2, Audigy MPU-401 #2, ALSA (http://www.alsa-project.org) 1.0.23
[36] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[37] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[38] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[39] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[40] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[41] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[42] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[43] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[44] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[45] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[46] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[47] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[48] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[49] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[50] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[51] Audigy2 [hw:0,2] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[52] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[53] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[54] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[55] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[56] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[57] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[58] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[59] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[60] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[61] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[62] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[63] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[64] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[65] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[66] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[67] Audigy2 [hw:0,3] (MidiOutDevice)
    SB Audigy 2 Value [SB0400], VirMidi, Emu10k1 Synth MIDI, ALSA (http://www.alsa-project.org) 1.0.23
[68] Real Time Sequencer (RealTimeSequencer)
    Software sequencer, Sun Microsystems Version 1.0
[69] Java Sound Synthesizer (MixerSynth)
    Software wavetable synthesizer and receiver, Sun Microsystems Version 1.0

Current MIDI output device: Java Sound Synthesizer
========
And it looks like I need to retest the #36 and #52 entries again.
 
> ALSA sequencer ports are not directly related to hardware in any
> particular way. They can represent many different things, including
> single pieces of hardware, multiple pieces of hardware or no pieces of
> hardware.
 
Just Absolutely Loverly...

> > only the internal java synth makes noise, and I believe the error is
> > the lack of coupling between the 14:0 port shown above, and one of
> > the 4 ports at 17:0 through 17:3, none of which show in an "ls -l
> > /dev".
> > 
> > But:
> > 
> > [root at coyote johnny_cash]# ls -l /dev|grep 14,
> 
> the "14" in the naming of the ALSA sequencer port has absolutely
> nothing to do with major device numbers.
> 
> ALSA sequencer ports do not exist  in the same namespace as devices,
> since, as mentioned above, they are not restricted to devices. The way
> ALSA numbers sequencer ports has always bothered me: it is arbitrary,
> capricious and I've never met anyone who has seen it and not been a
> bit confused by it. But ... its absolutely not related to major device
> numbers.
> 
> In addition, the numbering of hw:N,m also has absolutely nothing to do
> with major device numbers. If you want to know how it does map:
> 
> PCM:   hw:N,m  => playback: /dev/snd/pcmC{N}D{m}pl
>                                capture:  /dev/snd/pcmC{N}D{m}c
> 
> read the device names as "pcm Card N Device M direction".
> 
> same for MIDI: hw:N,m => /dev/snd/midiC{N}D{m} etc

Thank you!

Which here, after a reboot, shows:

[gene at coyote ~]$ ls -l /dev/snd/
total 0
drwxr-xr-x  2 root root       60 Dec 14 08:40 by-path/
crw-rw----+ 1 root audio 116, 11 Dec 14 08:40 controlC0
crw-rw----+ 1 root audio 116,  2 Dec 14 08:40 hwC0D0
crw-rw----+ 1 root audio 116, 12 Dec 14 08:41 hwC0D2
crw-rw----+ 1 root audio 116,  4 Dec 14 08:40 midiC0D0
crw-rw----+ 1 root audio 116,  3 Dec 14 08:40 midiC0D1
crw-rw----+ 1 root audio 116, 13 Dec 14 08:41 midiC0D2
crw-rw----+ 1 root audio 116, 14 Dec 14 08:41 midiC0D3
crw-rw----+ 1 root audio 116, 10 Dec 14 08:40 pcmC0D0c
crw-rw----+ 1 root audio 116,  9 Dec 14 10:32 pcmC0D0p
crw-rw----+ 1 root audio 116,  8 Dec 14 08:40 pcmC0D1c
crw-rw----+ 1 root audio 116,  7 Dec 14 08:40 pcmC0D2c
crw-rw----+ 1 root audio 116,  6 Dec 14 08:40 pcmC0D2p
crw-rw----+ 1 root audio 116,  5 Dec 14 08:40 pcmC0D3p
crw-rw----+ 1 root audio 116,  1 Dec 14 08:40 seq
crw-rw----+ 1 root audio 116, 33 Dec 14 08:40 timer

So, to which of these should java be sending the actual bytes exactly 
as they would go down the midi cable to a midi capable keyboard?

And, is there a utility available that I can use to test send a file
to one of those midiC0Dn devices?  My tests with cat just resulted
in a powerdown reboot to recover.

Thanks Paul.  Maybe we (actually Aaron Wolfe, DriveWire4 author, as I 
don't know enough java to even be dangerous) can sort this now.

Cheers, Gene
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
My web page: <http://coyoteden.dyndns-free.com:85/gene>
Debug is human, de-fix divine.



More information about the Linux-audio-dev mailing list