From 188fbffafda0942014b12dd2e2313ad139bcd1cc Mon Sep 17 00:00:00 2001
From: Loek Le Blansch <loek@pipeframe.xyz>
Date: Thu, 12 Sep 2024 20:35:24 +0200
Subject: add some audio research

---
 research.tex | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

(limited to 'research.tex')

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}
-- 
cgit v1.2.3

