static void Main(string[] args) { Controller controller = new Leap.Controller(); // initialize the leap controller while (!controller.IsConnected) { } // wait for it to connect PhaseModulationProvider pmProvider = new PhaseModulationProvider(440, (440f / 2f), 0.5f, 0.5f, 0.2f); // initialize the pm oscillator MixingSampleProvider mixer = new MixingSampleProvider(new[] { pmProvider }); mixer.ReadFully = true; SynthController synthController = new SynthController(pmProvider, 0.1f); // initialize the object that controls the synth with leap WaveOut audioOut = new WaveOut(); // hear things audioOut.Init(mixer); // give it the oscillator audioOut.Play(); // play it RenderWindow window = new RenderWindow(new VideoMode(200, 200), "Test Window, Please Ignore"); // make the sfml window window.Closed += (object sender, EventArgs e) => // so I can close it { RenderWindow w = sender as RenderWindow; controller.Dispose(); w.Close(); }; window.KeyPressed += (object sender, KeyEventArgs e) => { if (e.Code == Keyboard.Key.Escape) { RenderWindow w = sender as RenderWindow; w.Close(); } }; while (window.IsOpen) // main loop { synthController.HandleFrame(controller); window.DispatchEvents(); window.Clear(); window.Display(); } }