for a commercial job I’ve found a very interesting Soundfingerprinting Library (like Shazam - you give it a piece of audio, it tells you from which track it is). Of course like many other opensource libs out there, this one has a very thin documentation. What can be patched very easily is working with the files, but when it comes to the live realtime data, the documentation fails short. I’ve asked the Author of the lib on the Github about it and he answered immediately with a short and understandable example.
Now comes the first question:
is it possible to patch this example in VL or are there some features in VL that are missing to do so?
The second question:
How can I collect samples in this BlockingCollection?
My Idea is to collect samples from the microphone into a fixed length (about 2 sec) Queue and feed the whole queue (every second or so) into the lib to see if there will be a match. My question is not Audio-related, but how to patch such a queue in Async scenario (I can’t just use the Queue node, right?) and how to supply the samples from this queue into the BlockingCollection the lib needs.
For the realtime capture from the Microhone I’m patching directly with NAudio C# nuget. The samples (just float numbers) are arriving via an observable.
Here is an example from the Lib I want to patch:
And here is my question and the answer from the Author on the GitHub:
Of course, once the thing is working I’ll wrap the library for VL and upload it as a nuget. So hopefully I’ll open a WIP topic pretty soon.