[LAD] More midi related questions

gene heskett gheskett at wdtv.com
Wed Dec 14 19:01:55 UTC 2011


On Wednesday, December 14, 2011 12:28:24 PM Paul Davis did opine:

> On Wed, Dec 14, 2011 at 10:58 AM, gene heskett <gheskett at wdtv.com>
> wrote:
> 
> a reboot, shows:
> > [gene at coyote ~]$ ls -l /dev/snd/
> 
>  [ ... ]
> 
> > 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
> 
> These are the only MIDI raw ports you have.
> 
> > 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?
> 
> I have no idea because precisely what devices 0 through 3 are is
> entirely device specific.
> 
> Here is my system:
> 
> crw-rw----+ 1 root audio 116, 10 Nov 17 12:15 /dev/snd/midiC1D0
> crw-rw----+ 1 root audio 116,  9 Nov 17 12:15 /dev/snd/midiC1D1
> 
> the first one is the MIDI labelled "MIDI 1" on my Digiface I/O box,
> the second one is the one labelled "MIDI 0" on the same box.

But those are the cable jacks, correct?  Not a hardware synth input such as 
this Audigy2 has once the proper drivers have been modprobe'd in and the 
soundfont loaded to the card by awsfxload.  So I should be using in my 
case, the midiC0D2 and midiC0D3 devices from the list above?  That of 
course is assuming (oh oh that word again) the first 2 are the non-existent 
5 pin din midi jacks...

> In your case, you will likely get a bit more insight by using:
 
These were in the last post IIRC.

>    aplaymidi -l
Port    Client name                      Port name
 14:0    Midi Through                     Midi Through Port-0
 16:0    SB Audigy 2 Value [SB0400]       Audigy MPU-401 (UART) <-your 
digiface jack 0?
 16:32   SB Audigy 2 Value [SB0400]       Audigy MPU-401 #2 <-your digiface 
jack 1?
 17:0    Emu10k1 WaveTable                Emu10k1 Port 0
 17:1    Emu10k1 WaveTable                Emu10k1 Port 1
 17:2    Emu10k1 WaveTable                Emu10k1 Port 2
 17:3    Emu10k1 WaveTable                Emu10k1 Port 3
> 
> and
> 
>   amidi -l
Dir Device    Name
IO  hw:0,0    Audigy MPU-401 (UART)
IO  hw:0,1    Audigy MPU-401 #2
IO  hw:0,2    Emu10k1 Synth MIDI (16 subdevices)
IO  hw:0,3    Emu10k1 Synth MIDI (16 subdevices)
> 
> to see what names ALSA has managed to dig up and associate with each
> port. the first command gives an ALSA sequencer view of things; the
> second gives the raw MIDI view of things.
> 
> > 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.
> 
> amidi will send stuff to a raw port.

But refuses to move a .mid file, telling me to use aplaymidi instead.

Now, I know that 
aplaymidi -p17:0 smas6984.mid
aplaymidi -p17:1 smas6984.mid
aplaymidi -p17:2 smas6984.mid
aplaymidi -p17:3 smas6984.mid
all work.  Flawlessly.  In fact I just used it to shut off a stuck note on,
it turns out that from that loooooong list of devices that java found, #36 
and #52 actually do work, not at all well but they do make noise, notes are 
off key, note off's are skipped, that sort of thing.  And compared to the 
aplaymidi sounds, the volume is down about 20db.

aplaymidi of course refuses to use the -phw0:2 style of finding its output 
path, no help at all.

Now I think we need to see where the rawmidi data might be getting 
scrambled. amidi says it has a "dump" option so I'll see if I can get 
usable data from that.  But no file to feed it exists on this box.

In the meantime, I had the old machine do a .mid output file from one of 
the songs in its .ume format, then shipped the file to this machine and 
played it.  The only errors in that playback are instrument translation 
errors because general midi hadn't arrived in any great force that far back 
up the log, the bass pickers part came out as the 16 and 32 foot pedals on 
a pipe organ for example.  Volume level was normal too.

So that tells me the data scrambling is someplace in java if my normal 
2+2=4 logic is still working.  We'll hope anyway. ;-)

Thanks a bunch, Paul.

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>
Possessions increase to fill the space available for their storage.
		-- Ryan



More information about the Linux-audio-dev mailing list