void TestSpatial(AudioEngine engine) { var audio3d = engine.Create3DEngine(); audio3d.SetListenerPosition(new Vector3(0, 0, 0)); var buffer = engine.CreateBuffer(); var leftSource = engine.CreateSource(); var rightSource = engine.CreateSource(); var samples = TestUtil.CreateBeep(440.0f, TimeSpan.FromSeconds(1), out var format); buffer.BufferData(samples, format); leftSource.QueueBuffer(buffer); rightSource.QueueBuffer(buffer); audio3d.SetSourcePosition(leftSource, Vector3.UnitX * -10); audio3d.SetSourcePosition(rightSource, Vector3.UnitX * 10); leftSource.Play(); //wait since Play is non blocking Thread.Sleep(1500); rightSource.Play(); //wait since Play is non blocking Thread.Sleep(1500); }
public AudioSystem(Game game) : base(game) { _engine = AudioEngine.CreateDefault(); _3dengine = _engine.Create3DEngine(); _sources = new List <AudioSource>(); _cached = new Dictionary <string, AudioBuffer>(); _mixers = new Dictionary <AudioVolumeSlider, Submixer>(); _settings = game.AssetStore.AudioSettings.Current; CreateSubmixers(); // TODO: Sync RNG seed from replay? _random = new Random(); }