4 Algorithmic Beat Slicer


Opdracht 4 van 6

Bij deze opdracht ga je een algoritmische beat slicer bouwen in Max. Je gebruikt een drumloop die standaard in Max zit, maar je kan daarna ook je eigen loops erin stoppen! De loop ga je vervolgens "slicen" door er stukjes uit af te spelen in random volgorde, van random lengtes en in random ritmes.

Deadline: 9 maart

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. Slice a Sample

  1. Maak de objecten [buffer~] en [play~]. Lees van allebei de objecten de helpfiles!
  2. Geef de [buffer~] een naam en laad hierin de sample jongly, brushes of drumloop.
  3. Sluit [play~] aan op een [gain~] en [ezdac~].
  4. Combineer vervolgens een [button], [random], en de (start $1 $2) message om bij elke klik op de button een stukje af te spelen van 100 milliseconden, startend op een willekeurige positie tussen 0 en 4000 milliseconden.
  5. Zorg dat als het stukje klaar is er gelijk weer een nieuwe waarde wordt gegenereerd en afgespeeld. Gebruik hiervoor de 2de outlet van [play~], hierdoor ontstaat er dus een loop.

Tip: [play~], [buffer~], [random], [+ 0.], [pack i i i], [message]

Extra: Je kunt het [waveform~] object gebruiken om de audio weer te geven en de stukjes daarin ook weer te geven als selectie tijdens het afspelen.

Luistervoorbeeld 1


b. Rhythmic Slicing

  1. Gebruik het [info~] object om de lengte van de drumloop te achterhalen.
  2. Gebruik deze waarde om de lengte van 1 8ste deel van de loop te bepalen (dus deel = lengte / 8.0).
  3. Zorg er nu voor dat bij elke herhaling de startpositie een willekeurige veelvoud is van deze 8ste lengte.

Let op dat de afspeelsnelheid ook goed ingevuld moet worden (als het verschil tussen de start en stoptijd), anders hoor je je sample op een andere pitch!

Tip: [info~], [/], [random], [*], [+]

Luistervoorbeeld 2

(cijfer: 6)


c. Playback Speed

  1. Maak een toevoeging aan je patch die ervoor zorgt dat bij elke herhaling de sample willekeurig een 0.5x, 1x of 2x zo snel wordt afgespeeld.

Tip: [pack], [*], [random], [zl.lookup], [pow], [-], [t 2 f]

Luistervoorbeeld 3

(cijfer: 7)


d. Probabilities

Maak de volgende toevoegingen aan je patch:

  1. 5% van de tijd wordt de sample in reverse afgespeeld
  2. 30% van de tijd is het ritme in 16de slices in plaats van 8ste

Luistervoorbeeld 4

(cijfer: 8)


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

  1. Get off the grid! Voeg meer randomness toe aan de start/eindposities en de afspeellengte zodat het ritme minder duidelijk naar voren gaat komen.

  2. Gebruik live input van de microfoon voor je slicer door op te nemen in een buffer met [record~] object en [ezadc~].

  3. Maak een drunk-scrubber, die niet random alle slices pakt, maar langzaam random naar voren of naar achteren door de slices beweegt. Tip: [drunk].

  1. Gebruik de principes van de beatslicer om een meer granulaire synth te maken. De grains worden korter, spelen sneller achter elkaar, en de random positie voor de volgende grain ligt op een willekeurige afstand van de vorige. Tip: drunk, scale, slider. Je kunt zelfs proberen de slicer polyfoon te maken.