瀏覽代碼

it builds and does a thing

Graham Northup 8 年之前
父節點
當前提交
26e95364ad
共有 4 個文件被更改,包括 15 次插入12 次删除
  1. 5 2
      src/main.rs
  2. 4 4
      src/synth/math.rs
  3. 3 3
      src/synth/param.rs
  4. 3 3
      src/synth/sine.rs

+ 5 - 2
src/main.rs

@@ -7,15 +7,18 @@ use synfone::synth::*;
 const FRAMES: usize = 44100 * 2;
 
 fn main() {
-    let mut params = Default::default();
+    let mut params = Parameters::default();
     
     let mut freq: GenBox = Box::new(Param { name: "freq".to_string(), default: 440.0, buf: SampleBuffer::new(1) });
     let mut sg: GenBox = Box::new(Sine { freq: freq, phase: 0.0, buf: SampleBuffer::new(params.env.default_buffer_size) });
 
     let mut counter = 0;
-    let mut out = io::stderr();
+    let mut out = io::stdout();
+    
+    params.vars.insert("freq".to_string(), 440.0);
 
     while counter < FRAMES {
+        *params.vars.get_mut("freq").unwrap() = 440.0 + 440.0 * ((counter as f32) / (FRAMES as f32));
         let buf = sg.eval(&params);
         out.write_all(buf.bytes());
         counter += buf.len();

+ 4 - 4
src/synth/math.rs

@@ -1,8 +1,8 @@
 use super::*;
 
 pub struct Add {
-    terms: Vec<GenBox>,
-    buf: SampleBuffer,
+    pub terms: Vec<GenBox>,
+    pub buf: SampleBuffer,
 }
 
 impl Generator for Add {
@@ -21,8 +21,8 @@ impl Generator for Add {
 }
 
 pub struct Mul {
-    factors: Vec<GenBox>,
-    buf: SampleBuffer,
+    pub factors: Vec<GenBox>,
+    pub buf: SampleBuffer,
 }
 
 impl Generator for Mul {

+ 3 - 3
src/synth/param.rs

@@ -1,9 +1,9 @@
 use super::*;
 
 pub struct Param {
-    name: String,
-    default: Sample,
-    buf: SampleBuffer,
+    pub name: String,
+    pub default: Sample,
+    pub buf: SampleBuffer,
 }
 
 impl Generator for Param {

+ 3 - 3
src/synth/sine.rs

@@ -4,9 +4,9 @@ use super::*;
 const TAU: f32 = 2f32 * PI;
 
 pub struct Sine {
-    freq: GenBox,
-    phase: f32,
-    buf: SampleBuffer,
+    pub freq: GenBox,
+    pub phase: f32,
+    pub buf: SampleBuffer,
 }
 
 impl Generator for Sine {