-
Notifications
You must be signed in to change notification settings - Fork 0
Audio Engine #35
Description
Potentially having this be its repository project. Since integrating an Audio Engine to engine3D can extensively be its own project. So, there is going to have to be some design in the way we will have to think about this.
Framework API-Related Notes
An API that I am considering is FFmpeg or Gstreamer as I have looked into these a bit more. Still need to do some more research on what both provide, pros/cons, how they handle audio and which (ig performs differently, but we'll see).
Implementation-Details (Notes)
A few things to note on an approach to this is having an audio graph (?)
Where we will have different nodes that represent the flow of how audio flows. As representing the audio as a node, that supplies audio data from files, audio formats, input devices, and even customizable code.
API Design Examples
Note --- These are example API design that I am considering what it may look like, but may change later on.
Hoping that we can have this Audio Engine to handle all of the audio-related stuff, eventually having an API as...
Example API
- Where these are potential ways of designing the Audio Engine.
Example #1
AudioEngine engine;
engine.Play("Test.wav");
// Essentially engine.Delay(uint64_t time) or something like that.
engine.Delay(1.f); // Whole point of this, is to slow down the frames being shown in the audio (video most likely) when played)
engine.Pause();
engine.Stop();