understanding poly~


    Jun 07 2009 | 4:50 pm
    Hi,
    I've been scratching my head over this for a while now. I'm interested in using the poly~ object to create voice allocation for the playing back of samples from a buffer. I know that I am not using poly~'s full capabilities in terms of midi messages (velocity, note numbers etc) however I am stuck on how to implement the simple voice allocation function using the note $1 message (see attached patch below).
    My problem might in part lie in the use of the target 0 command to stop all instances playing... as I stop the line object I also send a message to the thispoly~ object to free all voices... however now it seems that the problem is right from the beginning.
    Am I not understanding something here? I have experimented with using a counter to change the instance manually using target each time I send a bang to play however this hasn't seemed to work either. I'm very confused!
    Thanks in advance for any help or explanations you can give me..
    Ben

    • Jun 07 2009 | 6:24 pm
      As ever, the tutorials are your friend. In your specific case, MSP tutorial 21 should show you the way - the sample tutorial uses an oscillator, but the material described starting with the section "The poly~ object" will tell you what you need to know - in your case you'd replace the oscillator with a play~ object and some logic to calculate the playback rate for a given pitch, but using the message "mute 0, 1" and mute 0, 1" messages and the "note" message to the poly~ object will do what you need.
    • Jun 07 2009 | 7:50 pm
      Thanks Gregory... I'd been going through that very tutorial but seemed to have missed something. After starting the patch again from scratch I think I've worked it out now using the mute messagez as you suggested... thanks for the help!
    • Jun 08 2009 | 5:55 pm
      maybe very simple , but maybe can help you !
    • Jun 08 2009 | 7:02 pm
      emeidos wrote on Sun, 07 June 2009 18:50 I have experimented with using a counter to change the instance manually using target each time I send a bang to play however this hasn't seemed to work either. I'm very confused!
      this is what i do on a regular basis, because i hate the automatic stuff.
      try my abstractions as one working example.
      110.alloc requires an argument for number of voices, (up to 32): [110.alloc 16]
      alloc-slave can be hooked up to alloc - or be given voices numbers from any other source - to send next input to a specific voice.
      -110
      .
    • Jun 08 2009 | 9:28 pm
      Thanks Roman... these abstractions are really useful I'll definitely make use of them... will check out that video too ongo.. cheers!
    • Jun 09 2009 | 1:17 am
      forgot this.
      for things like "note-off" - in case thats how you build your synth - you might want to use multiple alloc.
      the principle of voice rotation has that limit built in.
      see here
      -110
    • Jun 09 2009 | 10:10 pm
      thanks roman..