annotate src/scheme/old/lineout.scm @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents bf79fb79ee13
children
rev   line source
samer@0 1 (define set-step null)
samer@0 2 (define line-on null)
samer@0 3 (define line-off null)
samer@0 4 (define _lineout null)
samer@0 5
samer@0 6 (define-method (overlap-and-add x hop)
samer@0 7 (define oa (OverlapAndAdd. x hop))
samer@0 8 (define line (LineOut. (.output oa)))
samer@0 9 (.setWindow oa (Hanning.))
samer@0 10 (.setWindow line 0 hop)
samer@0 11 (addtasks oa line)
samer@0 12 (set! _lineout line)
samer@0 13 (set! set-step (lambda (h)
samer@0 14 (.setHop oa h)
samer@0 15 (.setWindow line 0 h)))
samer@0 16 )
samer@0 17
samer@0 18 (define-method (overlap-and-add sink x hop)
samer@0 19 (define oa (OverlapAndAdd. x hop))
samer@0 20 (.setWindow oa (Hanning.))
samer@0 21 (addtasks oa (.writer sink (.array (.output oa)) 0 hop))
samer@0 22 )
samer@0 23
samer@0 24 (define-method (lineout (linein LineIn))
samer@0 25 (put "audio.scale" 1.0)
samer@0 26 (let ((lineout (LineOut. (.output linein))))
samer@0 27 (.setWindow lineout 0 (.getStep linein))
samer@0 28 (set! set-step (lambda (n)
samer@0 29 (.setStep linein n)
samer@0 30 (.setWindow lineout 0 n)))
samer@0 31 (set! line-on (lambda ()
samer@0 32 (.starting lineout)
samer@0 33 (Thread.sleep 200L)
samer@0 34 (addafter linein lineout)))
samer@0 35 (set! line-off (lambda ()
samer@0 36 (remove lineout)
samer@0 37 (.stopping lineout)
samer@0 38 (Thread.sleep 200L)))))
samer@0 39
samer@0 40 (define-method (lineout (in Vec))
samer@0 41 (let ((lineout (LineOut. in) (n (.size in)))
samer@0 42 (tasklist (tasks)))
samer@0 43 (set! set-step (lambda (m)
samer@0 44 (.setWindow lineout (- n m) n)))
samer@0 45 (set! line-on (lambda ()
samer@0 46 (.starting lineout)
samer@0 47 (Thread.sleep 200L)
samer@0 48 (.addTask tasklist lineout)))
samer@0 49 (set! line-off (lambda ()
samer@0 50 (.removeTask tasklist lineout)
samer@0 51 (.stopping lineout)
samer@0 52 (Thread.sleep 200L)))))
samer@0 53
samer@0 54 (define-method (lineout n)
samer@0 55 (put "audio.scale" 32767.0)
samer@0 56 (let ( (lineout (LineOut. n)))
samer@0 57 (set! set-step (lambda (m)
samer@0 58 (.setWindow lineout (- n m) n)))
samer@0 59 (set! line-on (lambda ()
samer@0 60 (.starting lineout)
samer@0 61 (Thread.sleep 200L)
samer@0 62 (addtask lineout)))
samer@0 63 (set! line-off (lambda ()
samer@0 64 (remove lineout)
samer@0 65 (.stopping lineout)
samer@0 66 (Thread.sleep 200L)))))
samer@0 67
samer@0 68