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 )