[cycle~] and phase…

May 15, 2010 at 2:57pm

[cycle~] and phase…

Hello!

In first, sorry for my english, I’m french…

I recently started MaxMSP via live, building a small synthesizer and I block the use of the object [cycle ~]…

If I understand correctly, [cycle ~] generates a continuous signal. Then, it works with the envelope, ADSR for example, via a midi signal to control the attack and the duration of the audio.

What I want is the phase of the signal generated by [cycle ~] resets, or rather parte exactly 0, each trigger a midi note, so as to have an identical signal attack on each note.

And if possible I would like to address this attack: 0, 0.25, 0.50, ect … to 1.

Thank you in advance for your help!

#50376
May 15, 2010 at 5:39pm

as the help file says, the phase of the cycle~ object can be set with a signal or a floating point value in the right inlet. If you want it to start at zero, use a trigger object to send the value 0. to the right inlet of the cycle~ object whenever you trigger the note.

#180759
May 15, 2010 at 6:15pm

Thank you for your reply.

I started with MaxMSP, and I can not apply what you suggest.
I send you my patch. If you can help me, it would be really nice.

– Pasted Max Patch, click to expand. –

[attachment=132523,551]

Attachments:
  1. Sans_titre-4.jpg
#180760
May 15, 2010 at 6:17pm

Je t’envoie également un schéma de mon problème, pour mieux comprendre.

#180761
May 15, 2010 at 6:18pm

I send also a diagram of my problem for better understanding.

#180762
May 15, 2010 at 7:15pm

bad bad jazz indeed, i spent a while staring intently at almost exactly the same pictures thinking fuck! what is going on?

I made a thread about it here http://cycling74.com/forums/topic.php?id=12884

#180763
May 15, 2010 at 7:16pm

yes this is a silly confusing thing that is not explained in the docs (and works differently to pd’s osc~ object). When using a float in the right hand inlet of cycle~ it sets a phase offset, but it cannot be used to reset the phase of the oscillator. If you want to reset the phase you can do so like this (i think):

– Pasted Max Patch, click to expand. –
#180764
May 15, 2010 at 8:12pm

Thank you very much for your answers, specially at Oli Larkin, for his patch!
It works! Now the attack signal is regular.

But how to control this attack, 0-1?
If you can help me again, it would be great!
I send you another diagram explaining power.

My project is to create a small FM synth to make micro percussion, with precision, so the control of the attack signal is important.

[attachment=132533,553]

Attachments:
  1. explication-02.jpg
#180765
May 15, 2010 at 8:31pm

There is an easier way to do all this :) Unlike cycle~, phasor~ does update immediately to a new phase offset.

– Pasted Max Patch, click to expand. –
#180766
May 15, 2010 at 9:13pm

Thanks for you reply

But i’m not very gifted with maxmsp, and i don’t know how to connect your patch on this patch :

– Pasted Max Patch, click to expand. –

sorry, i’m really a newbie…

#180767
May 15, 2010 at 9:21pm

Don’t worry about being a newbie :P everyone starts there. I recommend going through all of the tutorials if you haven’t already. I need to finish doing that as well!

– Pasted Max Patch, click to expand. –
#180768
May 15, 2010 at 9:47pm

Thank you very much!
It’s really nice.

I try to move to the FM synthesis now, to modulate the signal with the same regularity…
Surely I’ll post my new problem(s)a few days …

Thank you

#180769
May 17, 2010 at 3:25pm

the usual way is to “play” the cycle obejct from a [phasor~] – which accepts signal for the phase.

#180770
May 17, 2010 at 8:16pm

Hello

Again I ask you some questions …

So my plan is to make a small FM synthesizer with ADSR envelope on the first frequency and often one on the modulating frequency, and a control signal for the attack (phase, 0-1)on each of two frequency.

Thanks to Tim Lloyd, I managed to control the attack signal (phase, 0-1 …) with the [phasor ~] box. The signal then resets each time I play a midi note.
But now, how to control pitch independently of the midi note played (+1,
+12, -5, etc. …)?
Because if I plug a box number on the left inlet of the [cycle ~] box, (frequency), I lose the control of the attack signal (0-1).

And, of course, the siganl is not modulated in the same way with the right inlet (phase) with the left input (frequency). How to modulate the signal with the frequency without losing control of the attack signal?

If you can help me (again), it would be nice!
I send you my patch for better understanding.
Thank you!

– Pasted Max Patch, click to expand. –
#180771
May 17, 2010 at 8:31pm

I have a Simple_FM_Synth example on my Max Examples page: http://xfade.com/max/

#180772
May 17, 2010 at 8:39pm

Thanks!

I look that!

But I would like to realise my synth!
I want to learn!

If you have an idea…

#180773
May 17, 2010 at 8:50pm

If you simply need to have a variable midi pitch offset parameter to adjust the range of your midi input, then you need to add whatever value before the FM process, ie right before the [mtof ] object. It also looks like you need to go through the FM tutorial patch and Chris’s example so that you know what is actually going on when you start enveloping parameters.

#180774
May 17, 2010 at 9:07pm

Yes, I left the tutorial on the FM synthesizer.

But if I connect a number box before [mtof], it takes the value of the midi and is not controlable.
Finally, I lack this parameter to be able to make a basic syhnth fm. I think I can then build the knowledge envelloppes with the tutorials.

#180775
May 17, 2010 at 9:18pm

….whisper ….”tutorials”……… :P

The reason for the trigger object will become clear after some more tutorials…….

– Pasted Max Patch, click to expand. –
#180776
May 17, 2010 at 9:29pm

Thank you

few moments before you send me the patch, I came to the realization that simply use the [+] object… :)
and it’s better with the trigger object
thanks …

#180777
May 17, 2010 at 9:40pm

ok!

And for fm modulation the [+~] object is between the [t f b] and the [phasor~].
Thank you very much, Tim Lloyd!

#180778
May 17, 2010 at 9:53pm
– Pasted Max Patch, click to expand. –
#180779
May 17, 2010 at 9:56pm

I just wanted to do that.
Thanks you everyone!
I can go to sleep now…
Bye!

#180780
May 20, 2010 at 9:04am

 
btw, there is nothing wrong with doing FM with free running oscillators, try it out,
you might like the variance in notes with hard attacks.

-110

#180781
Nov 30, 2013 at 10:47am

I think I can clarify a couple things for you.

1) When an inlet is capable of accepting either a signal or a float, as in the case of the right inlet of a cycle~ object, and a signal patch cord is connected to that inlet (say, for example, coming from a phasor~), float messages are ignored. The signal and the float are not combined in any way. You can use one or the other but not both.

2) It is more correct to think of the value supplied in the right inlet of cycle~ not as the instantaneous phase, but rather as the phase OFFSET that is applied to the otherwise independent operation of the cycle~.

Some examples might help to make that last sentence clear.

a) A cycle~ object generates a cosine wave at the specified frequency and with the specified phase offset whenever MSP audio is on. A cycle~ object with no frequency specified as an argument and no frequency info coming in its inlet has a default frequency of 0 Hz. Likewise, its phase offset is 0 by default. Since its frequency is 0, it does not increment through the waveform at all. So, a cycle~ object with no arguments and nothing connected to its inlets will generate a constant output signal of 1 (the 0 phase position of a cosine function).

b) A 0 Hz cycle~ with a phasor~ connected to its right inlet will be totally controlled by the phasor~. Its frequency will be equal to that of the phasor~. Its instantaneous position within the cosine function will depend on the signal being supplied in its right inlet; when the phasor~ is at 0.5, for example, the cycle~ will be sending out -1 (1/2 cycle through the cosine function).

c) Each time MSP audio is turned on, cycle~ starts at 0 phase plus whatever phase offset is supplied in its right inlet. If a cycle~ is running at some nonzero frequency and you later send it a float phase offset of 0 hoping to set it back to its initial default phase, you will be disappointed because all you have done is change its phase offset (or not changed it at all if its phase offset was already 0) relative to where it was in its cycle at that instant; it will continue to run from wherever it was (offset by whatever phase offset has been specified for it).

d) A float message in the right inlet of a phasor~ object is different. It does reset the phasor~ to whatever phase you specify, at the moment that it receives a float in its right inlet. So let’s say you want to apply a sinusoidal vibrato to a note, and you want it always to begin on the center frequency of the vibrato. You would therefore want to ensure that your LFO is in sine phase at the moment the note is played. You could control your LFO with a phasor~, and set the phase of the phasor to 0.75 (specifying sine phase for the cosinusoidal cycle~ object) at the moment each note is played.

<code>

– Pasted Max Patch, click to expand. –

</code>

#274215
Jan 5, 2014 at 3:34pm

this is all very good information!

#277490

You must be logged in to reply to this topic.