Mercurial > hg > jslab
annotate src/scheme/old/synthesis.scm @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
rev | line source |
---|---|
samer@0 | 1 (import "samer.maths.random.*") |
samer@0 | 2 (load "lineout.scm") |
samer@0 | 3 |
samer@0 | 4 ; sets the Generator of a VGenerator to one |
samer@0 | 5 ; constructed in it's own context. |
samer@0 | 6 (define (load-generator gen) |
samer@0 | 7 (letrec ((nd (.getNode gen)) |
samer@0 | 8 (spec (Shell.getString (.fullName nd))) |
samer@0 | 9 (g (node nd (eval-string spec))) ) |
samer@0 | 10 (.setGenerator gen g) |
samer@0 | 11 ) |
samer@0 | 12 ) |
samer@0 | 13 |
samer@0 | 14 |
samer@0 | 15 (define (filter-gen filt gen) (FilteredGenerator. gen filt)) |
samer@0 | 16 (define (gen->vector gen n) |
samer@0 | 17 (define x (VVector. (cat "buffer(" (.toString gen) ")") n)) |
samer@0 | 18 (define t (GenerateVector. x gen)) |
samer@0 | 19 (addtask t) |
samer@0 | 20 x) |
samer@0 | 21 |
samer@0 | 22 (define (specsynth in N M) |
samer@0 | 23 (define filter (SpectralFilter. in N)) |
samer@0 | 24 (addtask filter) |
samer@0 | 25 ;(gen->vector (filter-gen filter (VGenerator. "source" (Binary.))) M)) |
samer@0 | 26 (gen->vector (filter-gen filter (BipolarUniform.)) M ) |
samer@0 | 27 ) |
samer@0 | 28 |
samer@0 | 29 (define (specsynth-async in N M) |
samer@0 | 30 (define filter (SpectralFilter. in N)) |
samer@0 | 31 (addtask filter) |
samer@0 | 32 (node "synth" |
samer@0 | 33 (put "regulator.thread.priority" -0.1) |
samer@0 | 34 (let ((new-tasks (CompoundTask.))) |
samer@0 | 35 (RThread. new-tasks) |
samer@0 | 36 (with-tasks new-tasks |
samer@0 | 37 (gen->vector (filter-gen filter (NormalisedGaussian. )) M)) |
samer@0 | 38 ))) |
samer@0 | 39 |
samer@0 | 40 (define (synth2 ft mag hop) |
samer@0 | 41 (define ift (RescaledIFT. ft mag)) |
samer@0 | 42 (addtask ift) |
samer@0 | 43 (overlap-and-add (.output ift) hop)) |
samer@0 | 44 |
samer@0 | 45 ;;; this generates a white noise signal modulated by |
samer@0 | 46 ;;; another signal E |
samer@0 | 47 |
samer@0 | 48 (define (noise-resynth E N) |
samer@0 | 49 (define buf (gen->vector samer.maths.random.NormalisedGaussian.)) |
samer@0 | 50 (addtask (task (Mathx.mul (.array buf) (- (.get E) 200)))) |
samer@0 | 51 (lineout buf) |
samer@0 | 52 ) |