/////////////////////////////////////////////////////////////////////////////// // Mesh2D: Two-dimensional rectilinear waveguide mesh class. // // // // Part of the Synthesis Toolkit in C++ // // https://ccrma.stanford.edu/software/stk/ // // // // This class implements a rectilinear, two-dimensional digital waveguide // // mesh structure. For details, see Van Duyne and Smith, "Physical Modeling // // with the 2-D Digital Waveguide Mesh", Proceedings of the 1993 // // International Computer Music Conference. // // // // This is a digital waveguide model, making its use possibly subject to // // patents held by Stanford University, Yamaha, and others. // /////////////////////////////////////////////////////////////////////////////// // Options: // // x: X dimension size in samples. int [2-12], default 5 // y: Y dimension size in samples. int [2-12], default 4 // xpos: x strike position. float [0-1], default 0.5 // ypos: y strike position. float [0-1], default 0.5 // decay: decay factor. float [0-1], default 0.999 Mesh2D mesh1 => dac.left; Mesh2D mesh2 => dac.right; 0.5 => mesh1.gain => mesh2.gain; while (true) { Math.random2(2,12) => mesh1.x; Math.random2(2,12) => mesh1.y; Math.randomf() => mesh1.xpos; Math.randomf() => mesh1.ypos; 1 => mesh1.noteOn; 250::ms => now; Math.random2(2,12) => mesh2.x; Math.random2(2,12) => mesh2.y; Math.randomf() => mesh2.xpos; Math.randomf() => mesh2.ypos; 1 => mesh2.noteOn; 250::ms => now; }