8 Algo Arp


Voor deze opdracht ga je een arpeggiator programmeren met een algoritme dat afspeelvolgordes van de noten veranderd. Vervolgens kan je een velocity sequencer toevoegen of een akkoord van een midi-keyboard of build-in keyboard laten oppikken dat de arp vervolgens gebruikt.

Deadline: 1 December

Belangrijke objecten in deze opdracht:



Gebruik alt-click op het object om de help-file te openen. Bekijk ook de Max Keyboard Shortcuts en Max CheatSheet.

Plaats comments (sneltoets c) om voor jezelf en ons duidelijk te maken dat je snapt hoe iets werkt.

Maak je patch netjes en overzichtelijk voordat je hem laat aftekenen!




a. Note sequencing

Tip: [toggle], [metro], [counter], [%], [message], [zl.lookup]


b. Shuffle & Sort

Voeg een algoritme toe dat elke maat willekeurig kiest tussen de lijst transformeren van hoog-naar-laag, van laag-naar-hoog of geshuffled afspelen.

Tip: [sel], [zl.sort], [zl.scramble], [random], [gate]

(cijfer: 6)


c. More sequencing (velocity)

Tip: [multislider], [%], [zl.nth]/[zl.mth]/[zl.lookup], [message], [+], [trigger]

(cijfer: +1)


d. Play it!

Maak een [kslider] en een [notein] aan. Stel de [kslider] in op polyphonic mode in de inspector. Sluit de [notein] aan op de kslider en open de KeyMidi (onder Extras) of gebruik een extern midi-keyboard via USB om je gespeelde noten zichtbaar te maken in de patch. Speel de pitch van de [kslider] af via makenote en noteout.

Gebruik nu het [thresh] object om binnen 100 milliseconden een lijst te maken van de note-on pitches die gespeeld worden (filter dus de note-off berichten). Geef je output van [thresh] weer in een [message].

Vervang de lijst die je zelf hebt ingevuld voor de output van het [thresh] object. Maak een aanpassing zodat het afspelen van de noten ook werkt met een lijst van meer of minder dan 3 items.

Tip: [kslider], [notein], [makenote], [noteout], [thresh], [message], [stripnote], [zl.len], [%]

(cijfer: +1)



Uitdaging (cijfer: 9, 10, 10+ met eeuwige waardering!)

Ben je klaar met alle bovenstaande opdrachten? Kijk eens naar een of meer van deze uitdagingen om te onderzoeken en je patch mee uit te breiden:

  1. Laat de arpeggiator alleen spelen wanneer je noten ingedrukt houdt. Als je noten los laat gaat die weer uit. Tip: Gebruik de velocity note-off message.

  2. Zorg dat je noten kunt toevoegen of verwijderen zonder je andere vingers van de toetsen te halen. Tip: Kijk naar de objecten [bag] en [zl.group]

  3. Voeg algoritmes toe om de velocity per maat of cycle te kunnen veranderen. Tip: bekijk de verschillende zl. objecten of kijk naar drunk/urn/random, uzi en zl.group

  4. Maak het mogelijk om een toonladder in te stellen en zorg dat alle noten die niet passen binnen de toonladder gemapped worden naar de dichstbijzijnde noot die wel past. Bijvoorbeeld: in C-mineur wordt een E gespeeld, deze wordt dan een Eb of F. Tip: Kijk naar [coll], [umenu], [zl.lookup].