That was the shortest three weeeks ever
Wed, 15 May 2002 09:43:36 +0000
That was the shortest three weeeks ever. The iMic arrived yesterday and is even smaller than I was expecting it to be.
- It does work in full-duplex mode. This is good, because it would be useless for me otherwise
- Plugging it in spewed vast amounts of autodetection and debugging messages into syslog, then created /dev/dsp1 and a pair of mixers. gmix can find the mixers
- Using read() and write(), latency is inaudibly little provided I set the fragment size down to 256 bytes or so. I may also have needed to recompile drivers/usb/audio.c without AUDIO_DEBUG to get this: I did that at some point anyway, but can't remember exactly what caused what any more.
- I messed around with mmap() for while, but trying to get it working without burning out my guitar amp by sending it evil nasty sounding random digital data is more effort than I suspect it's really worth. This is a USB device after all, it's not really DMAable.
- Simple time-domain effects (tremelo, delay etc) are dead simple. Silly twiddly stuff through a multitap delay sounds very Brian May-esque.
- SBCL is going about fast enough to keep up. I don't use read-sequence and write-sequence: they want to call select() at times that the audio device isn't expecting. Instead, I use array-data-address (from db-sockets or the CMUCL manual) to get the actual address to write data into, then call unix-read and unix-write directly
- Some frequency domain effects next, I think
Yes, that is an Irn-bru can. I like the stuff, OK?