SYSBAS1A/MAX Practicum

2 - My little sequencer



In deze opdracht bouw je een simpele step sequencer die een paar midinoten afspeelt. De delen a t/m d zijn verplicht. Afhankelijk van je uitwerking krijg je hier een cijfer tussen de 6 en 8 voor. Met de extra opdrachten kan je je cijfer verhogen!

Belangrijke objecten in deze opdracht:




Snap je de functie van een object niet? Gebruik alt-click op het object om er meer over te weten te komen. Help-files in Max bestaan uit werkende programma's, zodat je meteen de toepassing van het object kan zien. Bekijk ook de Max Keyboard Shortcuts en de Max Cheat Sheet

Plaats comments (sneltoets "c") bij delen van je patch om voor jezelf duidelijk te maken wat er gebeurd en hoe iets werkt. Dit wordt documentatie genoemd, en kan je helpen jezelf te herinneren als je een week later (of een maand/jaar) weer eens de patch opent.

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


a)

Maak een [counter]. Bekijk de help-file en zorg dat de teller telt van 1 t/m 4 (hiervoor moet je de counter de goede argumenten geven), telkens eentje hoger als je op een [button] klikt die een bang stuurt naar de hot-inlet. Sluit een [metro 500] aan op de counter en zet de metro aan/uit met een [toggle]. Laat het resultaat zien in een [number].

b)

Maak een patch die een bepaald tempo (in Beats per Minute) omrekent naar de snelheid in milliseconden tussen elke puls. Dit kan gedaan worden met de conversie:

tijdinterval(ms) = 60000 / BPM

Voorbeeld: 120 BPM staat gelijk aan 1 bang elke 500 milliseconden.

Je moet het tempo in kunnen stellen met een [number], en het resultaat moet het interval van de metro aanpassen. Zorg ervoor dat je patch dit berekent met floating-point getallen. Hiervoor zal het object [/ 0.] of [!/ 0.] handig zijn.

c)

Gebruik het [select] object om elke tel een bang te sturen van de counter uit een verschillende outlet. Maak nu 4 [int] objecten aan die elk een andere midi-noot als argument krijgen (bijvoorbeeld: [int 60]).

Koppel het [select] object aan de int objecten, en zorg ervoor dat de int objecten hun getal doorsturen naar de [makenote]+[noteout] combinatie uit de vorige opdracht zodat je de midi-noot kunt horen.

d)

Bekijk het [int] object eens, en ook de help-file. Voeg 4 [number] objecten toe aan je patch waarom je de noten van de verschillende steps van de sequencer kunt aanpassen. Het aanpassen moet niet direct hoorbaar zijn, maar pas zodra die step aan de beurt komt!



EXTRA


Ben je klaar met alle bovenstaande opdrachten? Ga dan verder bouwen op deze stepsequencer. Enkele suggesties:

1. Zorg dat de stepsequencer een oneven aantal steps krijgt (bijvoorbeeld 5, 7, 9).

2. Voeg een extra counter toe die elke maat telt en daarmee een vaste waarde bij alle steps van de sequence kan optellen voor 1 maat lang. Tip: kijk naar de vorige opdracht voor het optellen.

3. Voeg een optie toe dat elke step ook de velocity bepaald kan worden.

4. Verras ons!