cut-off zero crossing

akee-rf's icon

Hi all,
Does somebody knows how to cut the zero crossing points of a signal input in real time?
i try to get a signal without zerocrossing point and didn't found anything on that subject.. this is actually something i quickly seen on supercollider, and i'm sure its possible to do it on max too.

thanks

freeka

kjg's icon

i'm not sure what you are after, but if it's a way of cutting a signal off at a zero crossing instead of at an arbitrary point (causing a click), sah~ is a suitable candidate.

Max Patch
Copy patch and select New From Clipboard in Max.

akee-rf's icon

hello,
thanks for your reply

Sorry i think my explications are not really good, i'm trying to get my signal looking like on that picture..

Any idea????

zank you
[img]index.php?t=getfile&id=1207&private=0[/img]

Emmanuel Jourdan's icon
akee-rf's icon

hey thanks & merci Emmanuel
actually its not really what i'm trying to get,
i tried to move your float object between 0 and 1, and it was sounding more like a heavy waveshaping for me, when i look on the scope~ i still got the zero crossing points ( or maybe its the scope~ who show it like that.. i dunno)

what i seen on supercollider was a signal with nothing in the middle of the sinusoidal signal (exactly like on second schema of the pict i joined on my other message) and what i heard was really sounding different than a waveshaping or a distortion,the input was a voice and it was more sounding like a digital kazoo at the end :)

i totally dunno supercollider but does the supercollider patch can help????

thanks
freeka

akee-rf's icon

if its talking to somebody...

(
Synth.scope({
var in, fx;

in = AudioIn.ar(1, 2);

fx = Pan2.ar(Pulse.ar(ZeroCrossing.ar(in), MouseY.kr(0.001, 0.99),
Amplitude.kr(in)),-0.5);

[in, in,fx.at(0), fx.at(1)]

})

)

kjg's icon

Quote: freeka wrote on Tue, 19 February 2008 16:43
----------------------------------------------------
> if its talking to somebody...
>
>
> (
> Synth.scope({
> var in, fx;
>
> in = AudioIn.ar(1, 2);
>
> fx = Pan2.ar(Pulse.ar(ZeroCrossing.ar(in), MouseY.kr(0.001, 0.99),
> Amplitude.kr(in)),-0.5);
>
> [in, in,fx.at(0), fx.at(1)]
>
> })
>
> )

this is a pitch tracker based on zero-crossings, controlling the frequency of a pulse wave. The pulse width of the pulse wave is controlled by the mouse y.

use a pitchtracker such as fiddle or pitch to control the freq of rect~ and set the mouse up to control the width.

good luck,
kjg

Stefan Tiedje's icon

freeka schrieb:
> hello, thanks for your reply
>
> Sorry i think my explications are not really good, i'm trying to get
> my signal looking like on that picture..

That picture doesn't make sense to me, there is always some signal
value, even if its zero. If you go from plus to minus there is a zero
crossing, you can't avoid it even not with supercollider. But maybe you
are after zerox~? that at least will count you the zero crossings...

And if its about pitch tracking, as your sc code suggests, that would
only work with pretty simple waveforms, but might be sufficiant for you...

Stefan

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

akee-rf's icon

hey thanks everybody!

i'm not really a dsp boss so maybe i missunderstanding the first explication i had .
anyway what is important for me is how that supercollider patch was sounding good..

Maybe its only a pitch tracking thing, in that case
does somebody have an example patch??
i tried to do something with the fiddle and rect~ as somebody advised me but it wasn't sounding close of what i heared maybe i made it wrong..

danke you