Polyphony example?


#7

Custom voice allocation schemes: I can certainly see the use for that. I believe these things are better expressed in code than by a patch.

Poly~: Max uses control messages, Axoloti does not have this concept. Manipulating parameters of individual voices is a (currently unexposed) possibility.


#8

yes, the main difference being that on 'one control rate loop' you can actually send multiple messages in max/reaktor etc,
otherwise its pretty close. to having an voiceIdx inlet, i.e. it can work, but is not as flexible as max.

(i do understand that creating multiple paths , e.g. like the trigger object in max/pd would be quite difficult in axoloti)


#9

Maybe I'm doing something wrong...
I've followed the youtube demo, saved the patch as voice.axs, and created a new one, but when I start to type ./ to the browser, nothing shows up :frowning:
I'm sure that it must be a folder problem, I'm from Mac.
Is there a way to manually link the subpatch?


#10

Nope, tried several times, doesn't work for me.
Every time I start typing ./name, I get a demux object :frowning:


#11

You can use patcher object instead of subpatch. Copy/paste stuff from your subpatch into patcher object, then go to patcher settings and set everything like for subpatch and then push update button on patcher.


#12

Did you save the new patch you've created in the same directory?


#13

Did anyone get this working? I cant get it working either. I go to settings and set patch to be subpatch polyphonic.
I then save it. Named AAVoice in folder X
I then make a new patch named AASynth. Save that in folder X
I go into the AASynth pach and press space to get the browser. I type AAVoice and nothing happens.

EDIT: Got it working by using Kaustos suggestion

Thanks:)


#14

Meh. Thought i got it working, but I didnt. I dont see any option to change polyphony on the master patch. Weird. It worked earlier?!? Might just copy the poly patch from the examples project and work on that.


#15

Try these steps:

  1. create new patch
  2. create "patch/patcher" object
  3. click on the edit button in the "patch/patcher" object, new patch window opens
  4. in the "View" menu, choose "settings", patch settings dialog appears
  5. select Subpatch mode:polyphonic
  6. close settings dialog
  7. go to the top-level patch (from step 1)
  8. click the "update" button in the "patch/patcher" object, "poly" popupmenu appears in the "patch/patcher" object
  9. now let's add an outlet object
  10. click "edit" in the "patch/patcher" object, the patch window from step 3 appears on top again.
  11. add a "patch/outlet a" to that patch
  12. go back to the top-level patch (from step 1), click "update" in the "patch/patcher" object, and the corresponding outlet appears in the "patch/patcher" object.

Using a "patch/patcher" object avoids maintaining file-references, the top-level patch will also contain the sub-patch.


#16

Might help visually @the19thbear ...
Great step thru @johannes ;-



#17

Great. Thanks to both of you:)
I had missed the step where I had to open the polypatch and click settings. I thought I only had to select the polypatch, not open it. Working now.
Thanks again:)


#18

Just to make sure, when making polyphony with subpatchers, we can only activate/deactivate voices using MIDI, right? So, currently, we can't use an internal axoloti sequencer to trigger a polyphonic patch. Thanks for confirming.


#19

If you use polyphonic expression then each voice is on a different midi channel.


#20

Thanks. Actually, I want to make sure that to use a polyphonic subpatch, we need MIDI or MPE. We can't play voices in a polyphonic subpatch from, say, an axoloti sequencer mechanism, without MIDI input to axoloti. Right?


#21

superficially this may be true, but in practice false.

there are two approaches
a) simple ... get your sequencer to generate midi thats put on the internal midi bus, then let the poly patcher do its voice allocation

b) dont use voice allocation at all... instead, put your sequencing table in the parent patch, then index this with the voice index. I showed this in one of the first challenges.

you should even be able to use my polyseq objects for this, where the trkId is fed by the voice idx of the poly patch I didnt do this in the help file for clarity sake, but no reason for it not too work.
(note: you can dont need these objects you can do this with simple tables, as per my challenge patch, but the objects cover quite a few things I wanted to do with sequencers, e.g. polyrhythm/polymeter)

(b) is a typical example of Axoloti, where it pays to think laterally (in this case, 'what is a voice' yields the answer)
this is something I like about axoloti, at first you might think something cant be done, but usually with a little reflection, and some creative thinking, you can come up with a solution.


#22

Indeed, I had overlooked the internal midi option (posting here, might be useful to someone).
And I will look into your "challenge patch"!
Thanks.
-poly-in-axoloti.axp (7.0 KB)


#23

Very cool, I found your example:


In attachment, a much simpler patch, just to show the functionality.
Things are very clear now. Thanks!
J-F
polyphony-no-midi.axp (3.7 KB)


#24

yeah, this use of voice idx is pretty common. (many use it to create a bit of 'variety' between the voices)
I think what many are not familiar with is using voiceIdx with tables in the parent patch (which is what creates some of the complexity in my what if patch) . the trick is using offsets allow you to use tables as multi dimensional arrays.
anyway, as i said, I think you dont even need to worry about that now, as my polyseq objects can be used to take care of these implementational details.


#26

For me, Axoloti app quits unexpectedly as soon as I execute step 4.
I click View --> Settings, and the app terminates immediately.
I am using Axolotio app version 1.0.12 (1.0.12-1-0-g4de2b632)
on Mac OS High Sierra.
Any suggestions?


#27

Thanks, this is great, I've been struggling as there are no obvious tutorials on how to organise things like this.