I am still working on the Teensy Batdetector (original idea by Frank DD4WH). I have managed to get most of the things of the original setup working so its time to enhance the detector with new functionality.

One of the things I would like to be able to do is to listen to a live signal but with time-expansion (slow down replay). Time expansion for raw recorded signals was allready part of the setup of the initial batdetector and that works fine. The slowdown replay needs to be 10-20 times slower than the incoming samplerate ( 192 to 281 kbps ) to get the recorded signals into the normal audio frequencies. Time expansion calls reveal a lot more detail of the ultrasonic signal a bat "shouts" out.

So my idea was to let the detector react to an incoming high-frequency signal by starting a recording to memory and than replay this slowed down. The capture should be instantaneous (or continuous in a ringbuffer) as bat-calls are in general short in duration (often milliseconds). I studied the audio library and it looks as if the granular-effect could be a good option for this kind of feature. The granular-effect seems to work like a buffer that gets filled as soon as the user calls "beginPitchShift". When the buffer is full it will start replaying at a different speed using "setSpeed" and after the replay record again and play again etc etc. Ive implemented this setup and it does seem to work (using artificial bat calls).

But I wonder if this is the most optimal way to do this. Anybody with comments on this ?