Hi Stéphane,
How could I have missed that, BufferLength is defined in the dsp!
:/
For me the CPU cost was around 13% but it took 4GB of RAM.
And it still doesn't output a pitch here... :(
Any ideas?
Cheers,
Bart.
Stéphane Letz <[email protected]> writes:
With BufferLength = 300 the generated C++ code and the CPU costs
become huge… so it seems the underlying algorithm is not suited
to Faust kind of coding ?
Stéphane
Le 7 mai 2020 à 23:35, Bart Brouns <[email protected]> a
écrit :
Hi Nicolas,
Great to hear it's GPL! Thank you!
Do you mean the soundcard buffer setting?
I have that set to 3*4096.
The jackqt program says:
"The buffer size is now 512/sec"
on the CLI though.
Either way, the bargraph shows up empty, and I tried an
oscillator at all audio frequencies.
I'd be grateful for any help!
Have you heard of Specially Normalized AutoCorrelation ?
http://miracle.otago.ac.nz/tartini/papers/Philip_McLeod_PhD.pdf
It's supposed to be an improvement on AutoCorrelation, and I've
been using http://www.katjaas.nl/helmholtz/helmholtz.html with
great results.
I'd love to see it implemented in faust, but I can't make heads
nor tails of the explanation.
Maybe something for the future?
Cheers,
Bart.
Nicolas Gravillon <[email protected]> writes:
Hi Bart,
Glad you like it. I guess this is something quite expected as
it gives access to so many applications. Let’s distribute it
under the terms of GNU General Public License, as published by
the FSF, v2 or any later version.
I will give it some more time to test the accuracy. Consider
this code as a POC and try to increase the BufferLength to
something over 300 if possible. It depends on ur lowest
frequency and SR actually.
Nicolas
On 7 May 2020, at 15:48, Bart Brouns <[email protected]>
wrote:
Hi all,
This is very exciting to me, since I've been looking for a
way to integrate the pitchtracker of
https://magnetophon.github.io/VoiceOfFaust/ into the binary,
instead of using an external pd patch.
So many thanks to Nicolas for writing it!
Is it open source? What license?
Julius's solution didn't work for me, but this at least
compiles and runs:
i = +(1) ~_ :min(1e9):max(0);
Unfortunately it doesn't track the pitch here.
I connected an oscillator but the bargraph stays at 0.
Also, I don't understand any of the algorithm, but shouldn't
"i" get reset at some point, so it doesn't run into the min
clause?
That would happen after 1e9/48000/60/60 = almost 6 hours at
48k SR, right?
Cheers,
Bart
Julius Smith <[email protected]> writes:
Hi Nicolas,
It looks like you are asking for unbounded correlation lags.
Try limiting
it with something like i = min(1e8,+(1)) ~_ ;
- Julius
On Tue, May 5, 2020 at 11:56 PM Nicolas Gravillon
<[email protected]>
wrote:
Hi everyone,
First of all, thank you all for your amazing achievement
with Faust. I am
delighted to use it and amazed by all this work. Regarding
my problem, I
try for some time now to implement a pitch tracker
implementing
autocorrelation, for a more reliable metering than the zero
crossing
method. I ended with the following version, strongly
inspired from Tiziano
Bole work :
import("stdfaust.lib");
BufferLength=4;
pitch(x) = ma.SR / max(M, 1) - ma.SR * (M == 0)
with {
AC(x, k) = sum(j, BufferLength, (x@(j))*(x@(j+k))) /
(BufferLength) ;
// Correlating two signals, on the buffer length, ideally
over 600 samples
with actual SR
i = +(1) ~_ ;
U = AC(x,i) > AC(x,0)/2; // Detection of a
good
correlation, AC(x,0) being the highest possible value, so
its half becomes
the detection threshold
V = AC(x,i) <= AC(x,i+1);
W = AC(x,i+1) > AC(x,i+2);
Y = U: *(V) : *(W);
N = (+(1) : *(1 - Y)) ~ _;
M = (N' + 1) : ba.sAndH(Y);
};
process = pitch : hbargraph(“Frequency", 50, 2000);
The problem seems to be located in the Autocorrelation
function : AC(x,
k) = sum(j, BufferLength, (x@(j))*(x@(j+k))) /
(BufferLength) since the
error says “can’t compute the min and max values of […]
used in delay
expression […] (probably a recursive signal).
Any chance to get it working? I do not see actually how to
fix boundaries
for the delay lines, or get rid of the recursive guess from
the compiler.
Thanks for reading this,
Nicolas
_______________________________________________
Faudiostream-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users
_______________________________________________
Faudiostream-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users
_______________________________________________
Faudiostream-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users