lab 13 - implement the flute instrument from STK.
I implemented more of the STK library but his time as a straight forward translation to a limbo module. Much of the protected classes and filters are in dsp.b as ADTs. They all share a similar interface that includes functions mk for building the object and tick for processing the next sample.
The instruments are generally larger to implement but follow the same interface. They can be plugged into a signal module and then read and controlled from within signalfs.
I've included a few simple modules that can be used to start a new instrument. I also tried to implement the more complicated Flute. It's close, but still doesn't sound right. It all needs a lot more debugging.
To test the flute,
% signalfs -a /mnt/dsp % echo add flute.dis flute > /mnt/dsp/ctl % sequencer /mnt/dsp/flute < bach.ski > /dev/audio
Sequencer has some small improvements to handle more voices and open them as needed. The number of voices does not need to be limited but it gets bogged down with four.
Still more work to be done, but I'm almost at the point where I can start building a base set of hopefully interesting instruments.