5
smnp.audio.mic
Bartłomiej Przemysław Pluta edited this page 2020-04-02 09:21:56 +02:00

The smnp.audio.mic module is equivalent of Listening module of Python-based SMNP implementation and it provides some fundamental functions that allows you handle the microphone input.

Functions

wait

wait(noiseThreshold: int, silenceThreshold: int)

Suspends the script execution and waits for incoming sound through connected microphone. When the function detects sound with level greater than noiseThreshold, it waits until the level of the sound is less than silenceThreshold. After that it resumes the script execution.

The algorithm can be described using following model of finite states machine:

schemas/wait_fsm.svg

Example

This function could be useful in some ear-training scenarios, when you need to i.e. play some notes and then wait for a user to repeat them and then do the same in another key, like:

noiseThreshold = 30;
silenceThreshold = 10;
keys = range(@c, @c5);
melody = $ 4/4 @c @e @g @e | @c @f @a @f | @c @e @g @e | @c:2 2 ||;

keys as key ^ {
   synth(transposeTo(key, melody));
   wait(noiseThreshold, silenceThreshold);
}

micLevel

micLevel()

Prints the current level of microphone in real time. It allows you to estimate and adjust correct thresholds for smnp.audio.mic#wait function.