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