Folks,
[Please, I beg of you, respond to this email, even if you have no idea what I'm babbling about. (If you have no idea what I'm babbling about, it probably means you're not using the closed-loop features of WaveSurfer, which is very useful information.]
I'd like to do an informal survey of how many people out there are using WaveSurfer for closed-loop experiments. By "closed-loop", I mean experiments where you write a user class that monitors a set of inputs continuously, and then sets one or more outputs during the ongoing trace, based on the recent history of the data. Such experiments will almost always use the user class method "samplesAcquired()" to monitor the inputs and to set the outputs. A simple example might be to monitor the membrane potential of a neuron, and turn on a TTL whenever that potential is above a threshold (and turn it off when the potential is below the threshold). WaveSurfer currently supports doing this kind of thing with latencies < 10 ms.
Again, please, if you get this email, let me know whether you are doing these kind of experiments. WaveSurfer's closed-loop capabilities are very powerful, but my impression is that they are not actually used by very many users. Dropping this feature would allow for considerable simplification of the code base, and would therefore reduce maintenance costs and the costs of future improvements. So, I'm thinking about it, but first I'm trying to figure out if I'll be hunted down and killed by my (former) users if I do this.
Thank you all,
Adam