poly~ without mtof

    May 13 2013 | 10:35 am
    Hi I´m trying to build a additive synth with poly~ like [07mAdditiveSynthesis] I do not want to work with the frequencies fixed by midi, but if i do not use [mtof] inside poly, it will not work polyphonic. Any idea ?
    Thank you gammon

    • May 13 2013 | 2:14 pm
      everything works polyphonic in a poly, as long as it works in max. (voltage wont, or physical weight, or a 128 bit number.)
      i would use a [t b f] instead of the [t i b], but everything else seems right.
    • May 13 2013 | 7:15 pm
      Hi Roman
      Thank you for your reply. I thought that "everything" is fine for poly~ Of course i know about the relation between voltage and poly~, but why not trying to build a powerplant within poly~ ;-)
      I tried [t b f] in another example, it was also one of my thoughts. But no polyphony In this case i changed to [t b f] and then changed f to cycle and b for mute, am i right?
      Did not work, only one instance is playing like a mono synth.
      What do i do wrong?
      Thank you gammon
    • May 13 2013 | 7:41 pm
    • May 13 2013 | 7:43 pm
      thats what i meant, you´d also change the order of the trigger of course.
      from looking at it i cannot tell whats wrong. but i think if you compare yours to the working original example you will find it.
    • May 13 2013 | 8:07 pm
      I looked at your patch, and it seems you need to use a "note" or "midinote" message if you want polyphony. The first number in the list (typically a MIDI pitch) can be the frequency.
    • May 13 2013 | 8:56 pm
      Hi Thanks Roman, Thanks Les
      @ Les, i knew the video, but it uses mtof. Thats what i do not want, because i have to work with a scale which is not in the well tempered piano tune.
      @ Roman, i tried to do a comparison in several examples and i could not figure out. If you are still willing to help, i can send you another, more complex Patch with the same monophonic result.
      I really would appreciate your help. Thank you Gammon
    • May 13 2013 | 11:34 pm
      In my video and in my second post, the important thing to note is the "note" message.
    • May 13 2013 | 11:36 pm
      ok, sorry. i still do not get it.
      Would you be so kind and implement it in my patch ?
      i go and see the video again ...
      Thank you gammon
    • May 13 2013 | 11:51 pm
      Eliminating the mtof object is not the problem. The problem is the lack of a "note" message.
      Between your patcher that generates random frequencies, and "poly~ ez-synth_no_mtof 6", insert a "prepend note" object.
    • May 14 2013 | 12:06 am
      Ohoo ... it works. :-))
      But Why ? Can you tell me ?
      Thank you very much. gammon
    • May 14 2013 | 2:19 pm
      The poly object simply needs the "note" message in order to know it is a note, so it can handle automatic voice allocation.
      btw.. servas gammon!
    • May 14 2013 | 2:57 pm
      Hello woyteg
      Nice to read from you ... :-) Next time out of topic physically ?
      Best gammon
    • May 14 2013 | 3:14 pm
      It doesn't look like this was mentioned:
      [mtof] happily accepts floating point values - it's only well-tempered if you send it straight ints.
      mtof isn't about "midi" as much as it is a, what is it, log2 converter? Math dudes? I keep forgetting.
    • May 14 2013 | 3:24 pm
      mtof should only accept floats when it has a float argument.
      btw, this thread is why i recommend people to forget that automatic "note" nonsense and use "target" instead.
    • May 14 2013 | 5:35 pm
    • May 14 2013 | 5:35 pm
      If you use the target message, you must explicitly manage voice allocation yourself. This can work well in the case of an additive synth, where each harmonic has its own poly~ voice and you never ask for more voices than poly~ has.
      When you don't know how many voices will be needed and voice-stealing might be needed, the note or midinote message are easier to work with.
      The difference is clearly seen in the example patch "stockhausen-studie-II.maxpat" located in the examples folder. If you unlock the patch and double-click on "StII-synthesis", you'll see a poly~ playing the notes of the score. Double-click the poly~ to see another poly~ inside creating the harmonics of the sounds, using the target message.
    • May 14 2013 | 6:07 pm
      Thanks to all of you. I´ll check these things out. Its nice that this question leads in a discussion.
      best gammon
    • May 14 2013 | 7:35 pm
      yes i was calling it nonsense. that you can send "note" to a custom patcher in order to turn on DSP in it seems weird to me.
      while some people may find the automatic voice management handy, i just feel it takes my freedom away controlling things in a custom way.
      i mean, if i want to run a wavetable through an adsr i wouldnt use maxmsp, right?
      doing it all outside the poly using "target" is somehow more predictable, BECAUSE you have to do everything on your own.
      i once started using "target" because i never understood the note stuff when looking at the helpfile.
    • May 14 2013 | 8:10 pm
      les why would you like to have voice stealing anyway.
    • May 14 2013 | 8:50 pm
      Voice stealing is useful when a synth receives more notes than it can process. Voice stealing ensures you hear the most recent notes, while killing the older notes. This strategy works well musically.
      Check out the granular example in the examples folder. The poly~ in rgrano.maxpat has 16 voices, but you could easily ask it to play too many grains if you shorten the metro time and/or extend the duration of the grains.
      A more typical case would be if you made a keyboard-controlled synth and played big clusters of notes with your arm. By killing older notes and letting the new ones play, you hear a more accurate representation of musical intent.
    • May 14 2013 | 10:45 pm
      one might call that a good compromise between processing power and what would be musically ideal (e.g. 88 voices for a piano sound) but the truth is that it has been invented to impose a synth having more voices than it actually has.
      of course you are right that you usually do not hear a missing release of a typical synthesizer voice under the condition, that it is only 1 note among a total 16 notes currently running. but try the same with a harp ...
      stealing might give you like 20% more felt voices, but sooner or later there _is an end, and you still have to care about how you play the virtual instrument when you want to avoid noticeable cuts, just a bit later.
      i believe using the "note" system of poly~ will not teach people what they need to know when they want to build a string instrument style (or "mute groups" style) voice stealing mode next time.
      regarding poly~, isn´t it pretty easy to implement voice stealing using the target message, too? what was first btw? did the object eventually had only the note thing in the beginning?
    • May 14 2013 | 10:55 pm
      and of course i disagree that it is the intent of laying your arms all over the keyboard and only hear the 8 voices of it which were touched last.
      it might be that this is our exspectation in this world full of limits and things beeing stolen from us, but it is definetly not the intention.
      you could use your hands only in order to play 8 notes at a time. :)
    • May 15 2013 | 1:58 am
      As I recall, a number of older analog synths had a variety of approaches to voice stealing. There are different strategies which might be appropriate depending on the musical context. High-note priority, for example, steals notes other than the highest pitch currently sounding - in some tonal contexts it makes more sense to preserve the top note as it would likely be the melody. Conversely, low-note priority preserves the bass note, assuming it is helping to establish the tonality.