4 Snooze


Voor deze opdracht ga je een snooze functie programmeren voor je wekker, zodat je na het drukken op de snooze-button het alarm tijdelijk uitzet en na een tijdje weer opnieuw afgaat. Maak eerst een backup van je wekker-patch zodat je in dezelfde patch verder kan maar altijd nog de oude patch kan terugvinden. Lees 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 tevoren uit, desnoods op papier. Dit hoeft natuurlijk niet meteen in max-objecten, 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.

Deadline voor alle opdrachten: 20 oktober

Mogelijk belangrijke objecten in deze opdracht:



Gebruik alt-click op het object om de help-file te openen. Bekijk ook de Max Keyboard Shortcuts en Max CheatSheet.

Plaats comments (sneltoets c) om voor jezelf en ons duidelijk te maken dat je snapt hoe iets werkt.

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.

  1. Zorg er allereerst voor dat het drukken op de button het alarm uit zet (NB: het geluid, niet de klok van de wekker). Tip: [trigger] of [message].
  2. Zorg er nu voor dat de bang van dezelfde button ervoor zorgt dat na een bepaalde tijd het alarm weer aan gaat. Gebruik hiervoor [delay].

b. Snoozetime

  1. Voeg een number 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.
  2. Zorg dat je patch bij het opstarten een snoozetijd van 5 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.

  1. Maak het system zodanig dat zodra de snooze button is ingedrukt en de tijd is ingegaan, de snooze button zijn bang tijdelijk niet meer kan doorgeven.
  2. Zodra het alarm opnieuw afgaat na de snoozetijd kan de button weer een bang doorsturen zodat je opnieuw kan snoozen.

Tip: gebruik hiervoor [onebang] of een [gate] met [trigger].

(cijfer: 6)

d. Alarm off = Snooze off

Als je de wekker nu uitzet terwijl de snoozetijd nog loopt kan het zijn dat je alarm alsnog afgaat nadat de tijd voorbij is.

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.

(cijfer: 8)