Forums > MaxMSP

[cycle~] and phase…

May 15, 2010 | 2:57 pm

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!


May 15, 2010 | 5:39 pm

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.


May 15, 2010 | 6:15 pm

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

May 15, 2010 | 6:17 pm

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


May 15, 2010 | 6:18 pm

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


May 15, 2010 | 7:15 pm

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


May 15, 2010 | 7:16 pm

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. –

May 15, 2010 | 8:12 pm

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

May 15, 2010 | 8:31 pm

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. –

May 15, 2010 | 9:13 pm

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…


May 15, 2010 | 9:21 pm

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. –

May 15, 2010 | 9:47 pm

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


May 17, 2010 | 3:25 pm

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


May 17, 2010 | 8:16 pm

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. –

May 17, 2010 | 8:31 pm

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


May 17, 2010 | 8:39 pm

Thanks!

I look that!

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

If you have an idea…


May 17, 2010 | 8:50 pm

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.


May 17, 2010 | 9:07 pm

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.


May 17, 2010 | 9:18 pm

….whisper …."tutorials"……… :P

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

– Pasted Max Patch, click to expand. –

May 17, 2010 | 9:29 pm

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 …


May 17, 2010 | 9:40 pm

ok!

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


May 17, 2010 | 9:53 pm
– Pasted Max Patch, click to expand. –

May 17, 2010 | 9:56 pm

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


May 20, 2010 | 9:04 am

 
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


November 30, 2013 | 10:47 am

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>


January 5, 2014 | 3:34 pm

this is all very good information!


Viewing 26 posts - 1 through 26 (of 26 total)