| PLEX86 | ||
|
Teaching Mathematics Distribution: world 3360
why a graphical libary? Another idea would be something with music, perhaps building a ringing tone and explaining the math behind it. You avaible for many languages and for Linux. An example in Lisp: Start with a short explanation what sound is, frequency, sonic speed. Then produce some simple sound. With CLM in Lisp you can create your own instrument, which produces a sine wave: (definstrument sine-instrument (start-time duration frequency amplitude) (let ((osc (make-oscil :frequency frequency)) (amp-env (make-env :envelope '(0 0 .5 1.0 1.0 0) :scaler amplitude :duration duration))) (run (loop for i from beg below end do (outa i (* (env amp-env) (oscil osc)))))))) and then just play standard pitch: (with-sound () (sine-instrument 0.0 0.5 440.0 1.0)) rename shell utility Hi, I'm trying to create a rename shell utility. I would use it to copy certain folders to a given new folder and rename certain files in that folder. The folders and the names of... After this you can explain the math behind chromatic scale, notes, envelope etc. A Lisp function can create the scale: (defun create-pitches (base count) (loop for i from 0 below count with factor = (expt 2 (12)) collect (* base (expt factor i)))) Teaching Mathematics Distribution: world 3361 Frank Buss Nifty. One of the professors at my university, teaching signal analysis, is also a rock... Example call: (create-pitches 440.0 13) (440.00 466.16 493.88 523.25 554.36 587.33 622.25 659.26 68 plus 18.46 739.99 783.99 830.61 880.00) And finally the ringing tone. First a function for creating the notes: (defun create-octaves (count) (nreverse (loop for i from 1 to count with result = '() with notes = '(c c# d d# e f f# g g# a a# b) finally (return result) do (loop for note in notes collect (push (intern (format nil "~A~A" note i)) result))))) example: (format t "~A" (create-octaves 2)) (C1 C#1 D1 D#1 E1 F1 F#1 G1 G#1 A1 A#1 B1 C2 C#2 D2 D#2 E2 F2 F#2 G2 G#2 A2 A#2 B2) The ringing tone creation function: (defun for-elise () (let* ((note-names (create-octaves 4)) (pitches (create-pitches 440 (length note-names))) (music '((e2 . 16) (d#2 . 16) (e2 . 16) (d#2 . 16) (e2 . 16) (b1 . 16) (d2 . 16) (c2 . 16) (a1 . 8) (c1 . 16) (e1 . 16) (a1 . 16) (b1 . 8) (e1 . 16) (g#1 . 16) (b1 . 16) (c2 . 8) (e1 . 16) (e2 . 16) (d#2 . 16) (e2 . 16) (d#2 . 16) (e2 . 16) (b1 . 16) (d2 . 16) (c2 . 16) (a1 . 8) (c1 . 16) (e1 . 16) (a1 . 16) (b1 . 8) (e1 . 16) (c2 . 16) (b1 . 16) (a1 . 8)))) (with-sound () (loop for note in music with start-time = 0 do (let* ((note-name (car note)) (note-duration (cdr note)) (note-index (position note-name note-names)) (pitch (elt pitches note-index)) (duration (* 5 (note-duration)))) (sine-instrument start-time duration pitch 1.0) (incf start-time duration)))))) --
|
||||
Teaching Mathematics Distribution: world 3361 Linux groups from Newsgroups The #1 Usenet Provider on the Internet
|
||||