aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-09-12 20:35:24 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-09-12 20:35:24 +0200
commit188fbffafda0942014b12dd2e2313ad139bcd1cc (patch)
tree043b59a7a1943331a87684b65d1c1dc9d6c04246
parentee4743d28d81d9ba892597d1bdf5238c5c483697 (diff)
add some audio research
-rw-r--r--research.tex34
-rw-r--r--time.txt1
2 files changed, 35 insertions, 0 deletions
diff --git a/research.tex b/research.tex
index 00b006d..ad33d10 100644
--- a/research.tex
+++ b/research.tex
@@ -207,6 +207,40 @@ for audio some options could be: FMOD, Wwise, or iirKlang
% should audio research be scoped down to SDL2 (if that's what we're going with) or
% standalone libraries only (for modularity?).
+The game engine is required to have an audio system with support for playing multiple
+audio streams (i.e.~tracks or samples) simultaniously. Since writing a custom live
+audio mixing engine is outside the scope of this project, this section compares
+various standalone audio engines that could be used in the engine.
+
+% TODO: requirements first!
+
+% REQ ~ is cross-platform
+% REQ ~ supports multiple audio formats (TODO: which)
+% REQ ~ supports simultanious playback / mixing
+% REQ ~ has an open-source license
+\begin{table}
+ \centering
+ \begin{tabular}{llc}
+ \toprule
+ \textbf{Library} & \textbf{License} & \textbf{API}\\
+ \midrule
+ miniaudio & MIT-0 & C\\
+ YSE & EPL & C++\\
+ SoLoud & Zlip/LibPng & C++\\
+ \bottomrule
+ \end{tabular}
+ \caption{Audio engine library comparison}
+ \label{tab:audio-engines}
+\end{table}
+% TODO: ref https://miniaud.io/
+% TODO: ref https://www.attr-x.net/yse/
+
+Not considered further:
+\begin{description}
+ \item[FMOD] is proprietary
+ \item[PortAudio] requires manual mixing
+\end{description}
+
\section{Physics}
\subsection{Introduction}
diff --git a/time.txt b/time.txt
index 3a8b547..d9190f5 100644
--- a/time.txt
+++ b/time.txt
@@ -20,6 +20,7 @@ loek: 2024-09-10 5m docs :: update readme
loek: 2024-09-10 12m docs :: add comparison package and more example latex code
loek: 2024-09-10 30m project meeting
loek: 2024-09-11 1h40m research :: profiling and debugging
+loek: 2024-09-12 30m research :: audio
max: 2024-09-02 1h project kickoff
max: 2024-09-02 45m first project meeting