5 Algoritmisch Alarm


Voor deze opdracht ga je verder met de wekker die je gemaakt hebt bij Opdracht 3 en Opdracht 4. Je gaat algoritmische muziek maken voor de wekker gebaseerd op de huidige tijd. Vervolgens maak je een Graphical User Interface (GUI) voor je wekker.

Deadline voor alle opdrachten: 15 Oktober

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 Max CheatSheet.

Plaats comments (sneltoets c) bij delen van je patch om voor jezelf en ons duidelijk te maken dat je snapt 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. Ook helpt dit ons gerichte vragen te stellen bij het aftekenen.

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



a. Seconde als midinoot

In Opdracht 3 zorgde je bij deel c dat er om de 100 ms een midinoot klinkt met de midi-module zodra de wekker af gaat. Gebruik dit stuk, maar verander het tijdinterval naar 250 ms, en zorg dat de midinoot bepaald wordt met de volgende formule:

noot = huidige seconde + 48 (midi C1)

Je zult elke seconde de noot dus 4x horen, stijgend met halve tonen. Mogelijk handige objecten: [int], [+], [makenote], [noteout]

b. Off-beat basnoot

Zorg nu dat er een tweede noot speelt, telkens precies tussen de andere midinoten van opdracht a (als off-beat). Deze midinoot wordt bepaald met de volgende formule:

basnoot = huidige minuut + 36 (midi C0)

Mogelijk handige objecten: [delay], [pipe]

(cijfer: 6)

c. Binnen een octaaf

De noten komen nu flink hoog uit: want 48 + 59 = midinoot 107 (B6). Zorg er voor dat de noten van beide stemmen binnen een octaaf blijven. Dit moet je op zo een manier doen dat zodra ze 11 tonen gestegen zijn, bij de volgende tel weer terug onderaan beginnen. Gebruik hiervoor het [%]-object (modulo). Bekijk de theorieles en de helpfile als je niet meer weet hoe het object werkt. Nu heb je dus 2 stemmen, waarvan de minuten-stem tussen midinoot 36-48 klinkt en de seconden-stem tussen 48-60.

d. Ritmisch algoritme

Maak een toevoeging aan de seconden-stem, die er voor zorgt dat de noten alleen gespeeld worden als de seconde geheel deelbaar is door 3. Objecten die je hier voor nodig zult hebben zijn: [%], [==], [gate].

(cijfer: 7)

e. The looks

Maak een Graphical User Interface (GUI) voor je wekker in Presentation Mode, waarin alleen de nodige informatie nog zichtbaar is (denk aan instellen van de tijd, weergave van de tijd, aan/uit knop, snooze-knop). Zorg dat je patch opstart in Presentation-mode door dat in te stellen in de Patcher Inspector (shift + cmd/ctrl + i), en zorg dat bij het opstarten alle initiรซle waardes goed ingesteld zijn door gebruik te maken van [loadbang] en/of [loadmess] objecten. Je kunt zo ver gaan als je zelf wilt met je user-interface. Geef bijvoorbeeld de tijd op een andere manier weer dan met de number-boxes.

Kijk eens naar objecten als [slider], [dial], [multislider], [combine], [comment]. En andere objecten voor je interface als [panel], [fpic], [pictctrl], [pictslider].

(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 je patch mee uit te breiden:

  1. Maak een user-interface object waarmee je BPM omrekend naar een milliseconden interval. Zorg dat je hiermee het tempo van de noten aan kunt sturen. Houd er rekening mee dat [delay] of [pipe] moet meeschalen met het tijd-interval van de metro.

  2. Bouw verder aan deze algoritmische compositie door het notenmateriaal interessanter te maken. Je kunt bijvoorbeeld afstappen van het chromatisch afspelen van de noten maar ze mappen aan een toonladder. Of alleen maar bepaalde noten uit een lijst kiezen op basis van de seconden. Je kunt akkoorden gaan toevoegen.

  3. Voeg willekeurigheid toe aan de gekozen noten, waarbij de willekeur ook bepaald wordt door de tijd op een bepaalde manier. Kijk eens naar objecten [random], [drunk], [urn], [decide]. Dit zijn allemaal random-number generators en hebben allemaal specifieke functies.

  4. Maak naast de melodie het ritme interessanter. Kijk nog eens naar [onebang] en [%] en gebruik deze om bijvoorbeeld variatie aan de ritmes toe te voegen. Of kijk eens hoe je [drunk] kunt gebruiken om het tempo te moduleren voor een drunk-drummer. Of speel ritmes af door een lijst van 1'en en 0'en te maken en dat af te lopen.

  5. Bouw verder met de bovenstaande toevoegingen! GA LOS!