4 Snooze


Voor deze opdracht ga je verder met de wekker die je gemaakt hebt. Je gaat een snooze functie programmeren voor je wekker, zodat je na het drukken op de button het alarm tijdelijk uitzet en na een tijd weer opnieuw afgaat. Lees eerst de hele opdracht goed door voordat je aan de slag gaat!

Tip: Ga niet zomaar aan de slag, lees eerst de opdracht een paar keer goed door, denk je systeem van te voren uit, desnoods op papier. Dit hoeft natuurlijk niet meteen in maxobjecten, maar probeer eerst na te denken over wat er logistiek moet gebeuren en breek dit probleem op in verschillende onderdelen die je nodig hebt om het probleem voor jou begrijpelijk en overzichtelijk te maken. Er zijn meerdere manieren om dit systeem te programmeren, het kan daarom voorkomen dat de objecten genoemd in deze opdracht niet allemaal gebruikt worden, of dat je objecten tegenkomt en gebruikt die niet genoemd worden.

Mogelijk 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. Delay it!

Maak een button die dient als user-interface object om je snooze mee te starten. Zorg er allereerst voor dat het drukken op de button het alarm uit zet (NB: niet de klok van de wekker). Tip: [trigger] of [message]. Zorg er nu voor dat de bang van diezelfde button ervoor zorgt dat na een bepaalde tijd het alarm weer aan gaat. Gebruik hiervoor [delay].

b. Snoozetime

Voeg een number-box toe zodat de gebruiker zelf de snoozetijd (in seconden) kan instellen. Je werkt voor de snoozetijd met seconden i.p.v. minuten, want wij (en jij) hoeven dan niet lang te wachten om te testen of de snooze functie werkt. Zorg dat je patch bij het opstarten een snoozetijd van 30 seconden heeft. Gebruik hiervoor [loadmess].

c. Infinite snooze???

Je kunt nu oneindig snoozen door telkens op de button te drukken voordat de wekker weer afgaat (dit komt door uitstellen van de delay). Dit is niet de bedoeling. Maak het system zodanig dat zodra de snooze button is ingedrukt en de tijd is ingegaan, de snooze button zijn bang niet meer kan doorgeven totdat het alarm opnieuw afgaat. Gebruik hiervoor [onebang] of een [gate] en [trigger].

(cijfer: 6)

d. Alarm off = Snooze off

Als je de wekker nu uitzet terwijl de snoozetijd nog loopt gaat hoogstwaarschijnlijk alsnog je snooze af. Zorg er nu voor dat zodra de wekker wordt uitgezet terwijl de snoozetijd nog loopt, de snooze gereset wordt. Tip: check de [delay] help-file.

(cijfer: 7)

e. No Alarm = No Snooze

Als je alarm uit staat kan het zijn dat je wel de button van de snooze kan indrukken. Zorg ervoor dat de snoozeknop alleen effect heeft op het moment dat het alarm af gaat (dus wanneer er geluid klinkt). Dit voorkomt dat een willekeurige druk op de knop een alarm kan veroorzaken. Tip: check objecten als [gate], [onebang].

(cijfer: 8)