public void TestCircularSampleBuffer() { var x = new CircularSampleBuffer(4000); Assert.AreEqual(0, x.Count); x.Write(LinearArray(0, 3950), 0, 3950); Assert.AreEqual(3950, x.Count); var target = new float[3950]; x.Read(target, 0, 3950); Assert.AreEqual(0, x.Count); var source = LinearArray(0, 100); x.Write(source, 0, 100); Assert.AreEqual(100, x.Count); target = new float[100]; x.Read(target, 0, 100); Assert.AreEqual(0, x.Count); Assert.AreEqual(source, target); var read = x.Read(target, 0, 100); Assert.AreEqual(0, read); }
public void Open() { _finished = false; _circularBuffer = new CircularSampleBuffer(BufferSize * BufferCount); _context = new AudioContext(); // possible fix for Web Audio in iOS 9 (issue #4) dynamic ctx = _context; if (ctx.state == "suspended") { Action <Event> resume = null; resume = e => { ctx.resume(); Browser.Window.SetTimeout((Action)(() => { if (ctx.state == "running") { Browser.Document.Body.RemoveEventListener("touchend", resume, false); } }), 0); }; Browser.Document.Body.AddEventListener("touchend", resume, false); } Ready(); }
/// <inheritdoc /> public void Open() { _circularBuffer = new CircularSampleBuffer(BufferSize * BufferCount); _context = new DirectSoundOut(100); _context.Init(this); ((EventEmitter)Ready).Trigger(); }
/// <inheritdoc /> public void Open() { _finished = false; _circularBuffer = new CircularSampleBuffer(BufferSize * _bufferCount); _context = new WasapiOut(_device, AudioClientShareMode.Shared, true, _latency); _context.Init(this); Ready(); }
public void Open() { _finished = false; _circularBuffer = new CircularSampleBuffer(BufferSize * BufferCount); _context = new DirectSoundOut(100); _context.Init(this); Ready(); }
public void Open() { _finished = false; _circularBuffer = new CircularSampleBuffer(BufferSize * BufferCount); JsContext.JsCode("window.AudioContext = window.AudioContext || window.webkitAudioContext"); _context = new AudioContext(); _latency = (BufferSize * 1000) / (2 * _context.sampleRate); // create an empty buffer source (silence) _buffer = _context.createBuffer(2, BufferSize, _context.sampleRate); // create a script processor node which will replace the silence with the generated audio _audioNode = _context.createScriptProcessor(BufferSize, 0, 2); _audioNode.onaudioprocess = GenerateSound; OnReadyChanged(true); }
public void Open() { _finished = false; _circularBuffer = new CircularSampleBuffer(BufferSize * BufferCount); JsContext.JsCode("window.AudioContext = window.AudioContext || window.webkitAudioContext"); _context = new AudioContext(); // possible fix for Web Audio in iOS 9 (issue #4) dynamic ctx = _context; if (ctx.state == "suspended") { EventListener resume = null; resume = e => { ctx.resume(); HtmlContext.window.setTimeout(() => { if (ctx.state == "running") { HtmlContext.document.body.removeEventListener("touchend", resume, false); } }, 0); }; HtmlContext.document.body.addEventListener("touchend", resume, false); } // create an empty buffer source (silence) _buffer = _context.createBuffer(2, BufferSize, _context.sampleRate); // create a script processor node which will replace the silence with the generated audio _audioNode = _context.createScriptProcessor(BufferSize, 0, 2); _audioNode.onaudioprocess = GenerateSound; Ready(); }
/// <summary> /// Initializes a new instance of the <see cref="NAudioSynthOutput"/> class. /// </summary> public NAudioSynthOutput() : base(PreferredSampleRate, 2) { _context = null !; _circularBuffer = null !; }
public PartyServer(string key) { _Key = key; buffer = new CircularSampleBuffer(44100 * 60 * 5);//5min of CD-quality audio ThreadPool.QueueUserWorkItem(ServiceStream); }