5 Algoritmisch Alarm
Voor deze opdracht ga je verder met de wekker die je gemaakt hebt bij Opdracht 3 en 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 deze opdrachten: 14 November
Belangrijke objecten in deze opdracht:
Belangrijk:
Gebruik de help-files (alt-click). Bekijk ook de Max Keyboard Shortcuts en Max CheatSheet.
Plaats comments om duidelijk te maken dat je snapt hoe iets werkt.
Maak je patch netjes en overzichtelijk voordat je hem laat beoordelen!
a. Seconde als midinoot
In opdracht 3 zorgde je bij c dat er om de 100 ms
een midinoot klinkt zodra de wekker afgaat.
- Gebruik dit stuk, maar verander het tijdsinterval naar
250 ms
- Bepaal de pitch van de noot met de volgende formule:
pitch = seconde van klok + 48
(MIDI C1)
- Elke seconde klinkt de noot dus 4x, telkens een stap hoger met een semitoon.
Handige objecten: [int]
/[message]
, [+]
, [makenote]
, [noteout]
b. Off-beat basnoot
- Zorg nu dat er een tweede noot speelt, precies tussen de andere midinoten van opdracht a (op de off-beat).
- Bepaal de pitch van deze tweede midinoot met de volgende formule:
basnoot = minuut van klok + 36
(MIDI C0)
Handige objecten: [delay]
, [pipe]
, [select]
, [counter]
c. Binnen een octaaf
De noten komen nu flink hoog uit: want 48 + 59 = midinoot 107 (B6)
.
- Zorg ervoor dat de noten van beide stemmen binnen 1 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 help-file nog eens als je niet meer weet wat modulo is.
Nu heb je als het goed is 2 stemmen, waarvan de minuten-stem tussen midinoot 36-48 klinkt en de seconden-stem tussen 48-60.
(voldoende)
d. Ritmisch algoritme
Maak een toevoeging aan de seconde-stem die ervoor zorgt dat deze noten alleen gespeeld worden als de huidige seconde geheel deelbaar is door 3
.
Handige objecten: [%]
, [==]
, [gate]
.
e. The looks
Maak een Graphical User Interface (GUI) voor je wekker in Presentation Mode
- Maak alleen de nodige informatie zichtbaar (denk aan instellen van de tijd, weergave van de tijd, aan/uit knop, snooze-knop).
- Zorg dat je patch opstart in
Presentation Mode
, stel dat in in de Patcher Inspector (cmd/ctrl + i) en test dit ook. - Zorg dat bij het opstarten alle initiΓ«le waardes goed ingesteld zijn door gebruik te maken van
[loadbang]
en/of[loadmess]
objecten.
(goed)
UITDAGING
(zeer goed, minimaal 2 maken)
Ben je klaar met alle bovenstaande opdrachten? Kijk eens naar deze uitdagingen om je patch mee uit te breiden:
-
Je kunt zo ver gaan als je wilt met de 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]
. Met deze kan je bijvoorbeeld plaatjes inladen voor knoppen of achtergrond. -
Verzin een grappig/interessante interactie met
[key]
of[mousestate]
waarmee de gebruiker de wekker uit moet zetten. Hiermee wordt het extra lastig gemaakt om de uitknop te vinden. -
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. Kijk eens naar:
[coll]
-
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.