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!)