Roy Pluschke said: > On February 9, 2004 04:42 pm, Rick Macdonald wrote:
>> timidity is installed and works but I need true midi now. > > I don't understand the above statement. Timidity is/has true midi. To run > timidity as a alsa synth start up timidity like this: > > timidity -Os -iA -B2,8 & > Its best to have timidity suid root so that it can use the real time > scheduler/clock or whatever it is called. Yes, this works fine! So far I just tried "pmidi -p 128:0". Now what I really need to do is get the test program working (code is below), so I need to know an actual device name, but I can't get it working. I straced pmidi: [EMAIL PROTECTED]:~/SRC$ strace -f pmidi -p 128:0 ~/Rainbow4.mid 2>&1 | grep /dev open("/dev/snd/seq", O_RDWR) = 3 and it seems that it uses /dev/snd/seq, but playmidi doesn't like this: [EMAIL PROTECTED]:~/SRC$ playmidi -D /dev/snd/seq ~/Rainbow4.mid Playmidi 2.4 Copyright (C) 1994-1997 Nathan I. Laredo, AWE32 by Takashi Iwai playmidi: No playback device found. However, telling playmidi to use "external midi" does work: [EMAIL PROTECTED]:~/SRC$ strace -f playmidi -e ~/Rainbow4.mid 2>&1 |grep seq open("/dev/sequencer", O_WRONLY) = 3 Requested buffer size 2048, fragment size 1024 ALSA pcm 'default' set buffer size 2048, period size 1024 bytes But putting "-D /dev/sequencer" on the playmidi command line does _not_ work. I've tried all these device names in the code below and none work. Any idea how to get the test program to work? (I tried adding a sleep(3) before the close in case it was cutting off the note, but it didn't help). [EMAIL PROTECTED]:~/SRC$ playmidi --help Playmidi 2.4 Copyright (C) 1994-1997 Nathan I. Laredo, AWE32 by Takashi Iwai This is free software with ABSOLUTELY NO WARRANTY. For details please see the file COPYING. usage: playmidi [-options] file1 [file2 ...] -v verbosity (additive) -i x ignore channels set in bitmask x (hex) -c x play only channels set in bitmask x (hex) -x x exclude channel x from playable bitmask -p [c,]x play program x on channel c (all if no c) -V [c,]x play channel c with volume x (all if no c) -t x skew tempo by x (float) -d don't play any percussion -P x play percussion on channel x -e output to external midi -D x output to midi device x -f output to fm (sb patches) -4 output to 4-op fm (opl/3 patches) -a output to awe32 wave synth -h x skip to header x in large archive -g output to gravis ultrasound -E x play channels in bitmask x external -F x play channels in bitmask x on fm -G x play channels in bitmask x on gus -A x play channels in bitmask x on awe32 -z ignore channel of all events -8 force 8-bit samples on GUS -M enable MT-32 to GM translation mode -I show list of all GM programs (see -p) -R x set initial reverb to x (0-127) -C x set initial chorus to x (0-127) -r real-time playback graphics I couldn't seem to get "amidi" to work either: [EMAIL PROTECTED]:~$ amidi -p hw:128,0 -S "90 40 ef" cannot open port "hw:128,0": No such device [EMAIL PROTECTED]:~/SRC$ pmidi -l Port Client name Port name 64:0 Rawmidi 0 - EMU10K1 MPU-401 (U EMU10K1 MPU-401 (UART) 65:0 Emu10k1 WaveTable Emu10k1 Port 0 65:1 Emu10k1 WaveTable Emu10k1 Port 1 65:2 Emu10k1 WaveTable Emu10k1 Port 2 65:3 Emu10k1 WaveTable Emu10k1 Port 3 128:0 Client-128 TiMidity port 0 128:1 Client-128 TiMidity port 1 [EMAIL PROTECTED]:~/SRC$ amidi -l Device Name hw:0,0 EMU10K1 MPU-401 (UART) hw:0,1 Emu10k1 Synth MIDI (16 subdevices) hw:0,2 Emu10k1 Synth MIDI (16 subdevices) My midi test program: // // Programmer: Craig Stuart Sapp [EMAIL PROTECTED] // Creation Date: Mon Dec 21 18:00:42 PST 1998 // Last Modified: Mon Dec 21 18:00:42 PST 1998 // Filename: ...linuxmidi/output/method1.c // Syntax: C // $Smake: gcc -O -o devmidiout devmidiout.c && strip devmidiout // #include <linux/soundcard.h> #include <unistd.h> #include <fcntl.h> #include <stdio.h> int main(void) { // char* device = "/dev/midi" ; char* device = "/dev/sequencer" ; unsigned char data[3] = {0x90, 60, 127}; // step 1: open the OSS device for writing int fd = open(device, O_WRONLY, 0); if (fd < 0) { printf("Error: cannot open %s\n", device); exit(1); } // step 2: write the MIDI information to the OSS device write(fd, data, sizeof(data)); // step 3: (optional) close the OSS device close(fd); return 0; } ...RickM... -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]