Brix <brix82@xxxxxxxxx> writes: >> Prova ad eseguire questo comando: >> >> strace -o log pmidi -l > > le cose più interessanti che ottengo sono queste: (Dopo aver sfxload'ato, suppongo.) > > [...] > open("/dev/snd/seq", O_RDWR) = 3 Hai il supporto per devfs? ----[ tuo log ] ioctl(3, 0x80045300, 0xbffff7e4) = 0 ioctl(3, 0x80045301, 0xbffff7e0) = 0 brk(0) = 0x804ce60 brk(0x804de60) = 0x804de60 brk(0) = 0x804de60 brk(0x804e000) = 0x804e000 brk(0) = 0x804e000 brk(0x8051000) = 0x8051000 brk(0) = 0x8051000 brk(0x8052000) = 0x8052000 ioctl(3, 0xc0305302, 0xbffff840) = 0 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40012000 write(1, " Port Client name "..., 54) = 54 ioctl(3, 0xc0dc5310, 0xbffff93c) = -1 ENOTTY (Inappropriate ioctl for device) ioctl(3, 0xc0dc5310, 0xbffff93c) = -1 ENOTTY (Inappropriate ioctl for device) ... /* segue una sfilza di ioctl() a vuoto ... */ ... ioctl(3, 0xc0dc5310, 0xbffff93c) = -1 ENOTTY (Inappropriate ioctl for device) munmap(0x40012000, 4096) = 0 _exit(0) = ? ---- Uhm. Sembra che il problema sia a livello di scheda o di driver della scheda, insomma di chiunque decida che quello è un `inappropriate ioctl for device'. Cosa leggi in /proc/pci a proposito della tua scheda? Questo è quello che vedo io: Bus 0, device 11, function 0: Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 4). IRQ 10. Master Capable. Latency=32. Min Gnt=2.Max Lat=20. I/O at 0xe800 [0xe81f]. Bus 0, device 11, function 1: Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 1). Master Capable. Latency=32. I/O at 0xec00 [0xec07]. E questo è il mio log di `strace -olog pmidi -l', non so se ti è utile per cavarne fuori qualcosa. ----[ mio log ] open("/dev/snd/seq", O_RDWR) = 5 ioctl(5, 0x80045300, 0xbffff758) = 0 brk(0x805a000) = 0x805a000 brk(0x805e000) = 0x805e000 ioctl(5, 0x80045301, 0xbffff718) = 0 ioctl(5, 0x4040534e, 0xbffff96c) = 0 fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 write(1, " Port Client name "..., 54) = 54 ioctl(5, 0xc0bc5351, 0xbffff904) = 0 ioctl(5, 0xc0a45352, 0xbffff854) = 0 ioctl(5, 0xc0a45352, 0xbffff854) = 0 ioctl(5, 0xc0a45352, 0xbffff854) = -1 ENOENT (No such file or directory) ioctl(5, 0xc0bc5351, 0xbffff904) = 0 ioctl(5, 0xc0a45352, 0xbffff7a4) = 0 ioctl(5, 0xc0a45352, 0xbffff7a4) = -1 ENOENT (No such file or directory) ioctl(5, 0xc0bc5351, 0xbffff904) = 0 ioctl(5, 0xc0a45352, 0xbffff6f4) = 0 write(1, " 64:0 External MIDI 0 "..., 53) = 53 ioctl(5, 0xc0a45352, 0xbffff6f4) = -1 ENOENT (No such file or directory) ioctl(5, 0xc0bc5351, 0xbffff904) = 0 ioctl(5, 0xc0a45352, 0xbffff644) = 0 write(1, " 65:0 Emu10k1 WaveTable "..., 59) = 59 ioctl(5, 0xc0a45352, 0xbffff644) = 0 write(1, " 65:1 Emu10k1 WaveTable "..., 59) = 59 ioctl(5, 0xc0a45352, 0xbffff644) = 0 write(1, " 65:2 Emu10k1 WaveTable "..., 59) = 59 ioctl(5, 0xc0a45352, 0xbffff644) = 0 write(1, " 65:3 Emu10k1 WaveTable "..., 59) = 59 ioctl(5, 0xc0a45352, 0xbffff644) = -1 ENOENT (No such file or directory) ioctl(5, 0xc0bc5351, 0xbffff904) = 0 ioctl(5, 0xc0a45352, 0xbffff594) = -1 ENOENT (No such file or directory) ioctl(5, 0xc0bc5351, 0xbffff904) = -1 ENOENT (No such file or directory) munmap(0x40014000, 4096) = 0 _exit(0) = ? ---- > Vorrei realizzare un "ear trainer", Interessantissimo! Provai solfege, scritto in Python con la parte che gestisce il MIDI in C, ma non mi piacque. Cercavo degli esercizi per l'orecchio musicale relativo, vari in una stessa tonalità, piuttosto che intervalli a caso, insomma in do mobile, tipo i dettati melodici del Pasteris o gli esercizi proposti sul metodo di Goitre. (Uhm, direi che puoi considerarla la tua prima feature request. ;-)) > solo che non posso con OSS perchè serve la versione commerciale. Né ti conviene, visto che dal kernel 2.6 in poi è stato (finalmente) adottato ufficialmente ALSA, e OSS è solo in emulazione. > Opening /dev/sequencer ... > 1 synths available > 5 midi sequencers available > 0 bytes written to /dev/sequencer > Opening /dev/music ... > 6 synths available > 5 midi sequencers available > error writing packet to /dev/music : Invalid argument > Non ci ho capito nulla. Vorrei poter dire diversamente. :-\ Ma, vista anche la considerazione di sopra, non ti conviene a questo punto sfruttare le API di ALSA? > Tra l'altro ho provato ad installare rosegarden, e noto con > [dis]piacere che riesce a suonarmi i files midi su > /dev/sequencer. Boh! <clueless>, sorry. Ma ho visto di recente un thread su it.comp.os.linux.software in cui si parlava degli stessi sintomi, forse trovi qualcosa di utile lì. -- Tip | [DEBIAN] Replicare una installazione: of | # dpkg --get-selections > list.txt # Esporta la lista dei pacchetti the | # dpkg --set-selections < list.txt # Importa sulla nuova Debian day | # apt-get dselect-upgrade # Installa pacchetti nella lista 0024| (Il primo "#" rappresenta il prompt di root)