
See You In The Shadows…
IX Split doesn't send MIDI, it sends notes as if they were input from the pattern. It's a subtle difference but it may be the source of the problem, so I suggest trying without Split to see if it works properly like that.
We can only do what we can, IX. And you do a lot for Buzz & the Buzz community. Don't beat yourself up
I'd love to help out. But, Buzz isn't coded in Basic10 Print "Candle loves to Rok with Buzz!"
20 Goto 10
Not to hijack the thread but Magic will do that too. PeerCtrl Event with note param = "Pass", velocity param = "V". You could then monkey about with delaying/ignoring note-offs. It can do the same note/velocity range splitting that IX Split does but it's not so easy to set up and of course the more complexity you add, the harder it is to figure out what's gone wrong when it doesn't work.
The algorithm needs some audio data before it detects the note. That introduces latency.HerrFornit wrote: ↑Wed May 20, 2020 8:12 pm Also a very nice machine !!
I always get a latency between note sending machine and the receiving machine, getting notes by note send. It in the range of ca. 100-200 ms or so.
Why is this?
OK, I see. It is a matter of DSP then. You need a certain minimum window? The shorter the window the less secure is detection? Could be a kind of speed parameter of NotDetector ?. I tried to have a live second voice, that would need max delay of 20 ms or so?
According to that it should give out at least with 10 ms delay. Hard to hear. Perhaps its also a matter of audio buffer?"The description says the algorithm can detect up to 3000 times per second. However, looking at the source code, the PitchRecordsPerSecond property seems to be capped at 100.
Thread #644743 | Message #1443664 | 2015-09-08"
The number of samples is derived from the sampling frequency and the minimum detection frequency. If you look at PitchTracker.Setup, you will see a formula that is used there to calculate m_pitchBufSize. In addition, there is also a m_detectOverlapSamples value that is also calculated in that method. That value is added to m_pitchBufSize. For 44100 samplerate and the default 50Hz min frequency, these values correspond to 1780 and 220, so the minimum required samples is 2000.
It should be easy to add a property like PitchTracker.MinRequiredSamples that simply returns m_pitchBufSize + m_detectOverlapSamples. There is already one called PitchTracker.DetectSamplesOffset that will return half that value, which is used to calculate the offset from the input signal to the detected value (which can be used to sync up the detected pitch with the passed in waveform). If you don't want to add a new property, then PitchTracker.DetectSampleOffset multiplied by 2 will give you the minimum number of required samples.
2. You can clear the buffer by calling PitchTracker.Reset(). You can't disable the feature, since it is an integral part of how PitchTracker works. If you are always going to pass in one large buffer, then one can certainly modify the code such that it doesn't use the intermediate circular buffer. But this will require a lot of changes and I don't think a lot of people would really need that. If this is something you absolutely require, then you would probably need to make the changes on your end.
3. No, the data is filtered and copied into the intermediate circular buffers. The data in the original buffer is untouched.
Thread #349823 | Message #815017 | 2012-03-24
Not to hijack the thread again but have you tried setting the relevant Magic Events to ignore note-offs? If that doesn't work then the notes are probably being cut by voice stealing, in which case you could try adding more tracks to the VST machine, or try limiting the range of target tracks used by individual Events to avoid clashes. PM me if you have any questions.