SYSBAS1A/MAX Practicum
4 - Snooze
Voor deze opdracht ga je verder met de wekker die je gemaakt hebt bij opdracht 2. Je gaat een snooze functie programmeren voor je wekker, zodat je na het drukken op de button de wekker uit gaat 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 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.
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)
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 altijd uit zet. Tip: [trigger].
b)
Zorg er nu voor dat het drukken op diezelfde button ervoor zorgt dat na een bepaalde tijd het alarm weer vanzelf aan gaat. Tip: [delay], [pipe], [trigger].
c)
Voeg een number-box toe zodat de gebruiker zelf de snoozetijd kan instellen. Werk voor de snoozetijd met seconden i.p.v. minuten, zodat je niet lang hoeft te wachten om te testen of de snooze functie werkt!
d)
Maak het system zo dat zodra de snooze button is ingedrukt en de tijd is ingegaan, doet de snooze knop niks kan doen totdat het alarm opnieuw afgaat. Tip: [onebang] of [gate] en [trigger].
cijfer: 7
e)
Zorg er nu voor dat zodra de wekker wordt uitgezet terwijl de snoozetijd nog loopt, de snooze-tijd ook uitgezet wordt. Tip: [trigger] en [select].
cijfer: 8
f)
Zorg er tot slot voor 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: [trigger], [gate], [onebang].
cijfer: 9