On Dec 12, 2011, at 7:55 PM, Matthias Felleisen wrote: > > Is the below really much less natural to write? I really enjoyed playing the > qwerty row from left to right, or perhaps I was pressing the number keys at > the same time :-)
You're cheating! Unless quasiquote is a new part of htdp/2e.... And actually: yes, I think that the below still is less natural to write. Student says: why do we have to write down the parts that don't change? Doesn't the redundancy introduce extra opportunities for error? John > > #lang racket > > (require (except-in (planet clements/rsound) > overlay > scale) > 2htdp/universe > 2htdp/image) > > (define octave 48) > (define volume .4) > (define duration 22050) > > (define (main) > (big-bang `(,octave ,volume ,duration) > (to-draw my-draw) > (on-key my-key))) > > (define (my-draw num) > (place-image/align (text (format "~s" num) 11 'red) 10 50 'left 'top > (empty-scene 100 100))) > > (define (my-key w key) > (match (cons key w) > [`("0" ,oct ,vol ,dur) `( 0 ,vol ,dur)] > [`("1" ,oct ,vol ,dur) `(12 ,vol ,dur)] > [`("2" ,oct ,vol ,dur) `(24 ,vol ,dur)] > [`("3" ,oct ,vol ,dur) `(36 ,vol ,dur)] > [`("4" ,oct ,vol ,dur) `(48 ,vol ,dur)] > [`("5" ,oct ,vol ,dur) `(60 ,vol ,dur)] > [`("6" ,oct ,vol ,dur) `(72 ,vol ,dur)] > [`("7" ,oct ,vol ,dur) `(84 ,vol ,dur)] > [`("8" ,oct ,vol ,dur) `(96 ,vol ,dur)] > [`((or "=" "+") ,oct ,vol ,dur) `(,oct ,(if (< vol 1) (+ vol .1) vol) > ,dur)] > [`((or "-" "_") ,oct ,vol ,dur) `(,oct ,(if (> vol 0) (- vol .1) vol) > ,dur)] > [`("z" ,oct ,vol ,dur) `(,oct ,vol ,(if (> dur 11025) (- dur 11025) dur))] > [`("x" ,oct ,vol ,dur) `(,oct ,vol ,(if (< dur 88200) (+ dur 11025) dur))] > [`("q" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 12 oct)) > vol dur)) w] > [`("w" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 13 oct)) > vol dur)) w] > [`("e" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 14 oct)) > vol dur)) w] > [`("r" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 15 oct)) > vol dur)) w] > [`("t" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 16 oct)) > vol dur)) w] > [`("y" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 17 oct)) > vol dur)) w] > [`("u" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 18 oct)) > vol dur)) w] > [`("i" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 19 oct)) > vol dur)) w] > [`("o" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 20 oct)) > vol dur)) w] > [`("p" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 21 oct)) > vol dur)) w] > [`("[" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 22 oct)) > vol dur)) w] > [`("]" ,oct ,vol ,dur) (play (make-tone (midi-note-num->pitch (+ 23 oct)) > vol dur)) w] > [`("a" ,oct ,vol ,dur) (play c-hi-hat-1) w] > [`("s" ,oct ,vol ,dur) (play c-hi-hat-2) w] > [`("d" ,oct ,vol ,dur) (play o-hi-hat) w] > [`("f" ,oct ,vol ,dur) (play snare) w] > [`("g" ,oct ,vol ,dur) (play bassdrum) w] > [`("h" ,oct ,vol ,dur) (play bassdrum) w] > [`("j" ,oct ,vol ,dur) (play bassdrum-synth) w] > [`("k" ,oct ,vol ,dur) (play clap-1) w] > [`("l" ,oct ,vol ,dur) (play clap-2) w] > [`(";" ,oct ,vol ,dur) (play crash-cymbal) w] > [else w] > [else (displayln `(no match ,w))])) > > (main)
smime.p7s
Description: S/MIME cryptographic signature
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users