SYSBAS1A/MAX Practicum

5 - Algoritmisch alarm & GUI


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 op basis van de tijd. Vervolgens maak je een simple Graphical User Interface (GUI).

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.



a)

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:

noot1 = 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)

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

noot2 = huidige minuut + 36 (midi C0)

Mogelijk handige objecten: [delay], [pipe]

cijfer: 6

c)

De noten komen nu flink hoog uit (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 [%] (modulo) object (!geen procent!). Bekijk de helpfile als je niet weet hoe het object werkt. Nu heb je dus 2 stemmen, waarvan de minuten-stem tussen 36-48 klinkt en de seconden-stem tussen 48-60.

d)

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 eventuele delays/pipes moeten meeschalen met het tempo van de metro.

cijfer: 7

e)

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].

f)

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, bpm). Zorg dat je patch opstart in Presentation-mode door dat in te stellen in de Patcher Inspector (shift + cmd/ctrl + i).

cijfer: 8



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


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

1. 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.

2. 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.

3. 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.

4. Maak een betere user-interface waarin je de tijd op een andere manier weergeeft dan met de number-boxes. Kijk eens naar objecten als [slider], [dial], [multislider], [combine], [comment].

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