hunk ./doc/Report.tex 4
-\report{Henning Thielemann}%05/11
+\report{Henning Thielemann}%11/11
hunk ./doc/Report.tex 17
-\item We support physical units while maintaining efficiency,
+\item We support physical units while maintaining efficiency.
hunk ./doc/Report.tex 35
-We checked several low-level implementations in order to achieve reasonable speed.
+We provide several low-level implementations in order to achieve reasonable speed.
hunk ./doc/Report.tex 43
-Now, both our custom signal generator type
-and the Stream type from stream-fusion
-can be fused to work directly on storable vectors.
+% Now, both our custom signal generator type
+% and the Stream type from stream-fusion
+% can be fused to work directly on storable vectors.
hunk ./doc/Report.tex 51
-These processes are modeled as \verb|mapAccumL| like functions.
-Many important operations like function composition
-maintain the causality property.
+% All arrow operations like function composition
+% maintain the causality property.
+We express causal processes
+by arrows that work internally like a \verb|mapAccumL|.
hunk ./doc/Report.tex 56
-for sharing on a per sample basis
-and in feedback loops
+for sharing on a per sample basis and in feedback loops
hunk ./doc/Report.tex 58
+\item
+Allow to describe acyclic arrow networks using a functional notation.
+By observation of sharing and the new \texttt{Vault} data structure
+we get the same efficiency
+as when using arrow combinators or the arrow syntax.
hunk ./doc/Report.tex 85
-\item Allow to describe acyclic arrow networks using a functional notation.
-      By observation of sharing and the new Vault data structure
-      we get the same efficiency
-      as when using arrow combinators or the arrow syntax.
+\item Extended and safer bindings to ALSA PCM and ALSA MIDI sequencer.
+\item New bindings to \texttt{libsox} for reading and writing
+many audio file formats.
+\item MIDI, ALSA and LLVM code is now cleanly separated.
hunk ./doc/Report.tex 112
-\item \url{http://hackage.haskell.org/package/vault}
+% \item \url{http://hackage.haskell.org/package/vault}
addfile ./doc/ReportList.tex
hunk ./doc/ReportList.tex 1
+% AudioSignalProcessing-HA.tex
+\begin{hcarentry}[updated]{Audio Signal Processing}
+\label{audiosp}
+\report{Henning Thielemann}%11/11
+\status{experimental, active development}
+\makeheader
+
+This project covers many aspects of audio signal processing in Haskell.
+It is based on the Numeric Prelude framework
+(\url{http://haskell.org/communities/05-2009/html/report.html#sect5.6.2}).
+Over the time the project has grown to a set of several packages:
+\begin{compactitem}
+\item \texttt{synthesizer-core}:
+Raw implementations
+of oscillators, noise generation, frequency filters, resampling,
+pitch and time manipulation, Fourier transformation.
+Support for several data structures
+like lists, signal generators, storable vectors
+and causal signal processing arrows
+that allow you to balance between efficiency and flexibility.
+\item \texttt{synthesizer-dimensional}:
+Type-safe physical units in signal processing
+and abstraction from sample rate.
+\item \texttt{synthesizer-midi}:
+Render audio streams from sequences of MIDI events.
+\item \texttt{synthesizer-alsa}:
+Everything that is needed for a real-time software synthesizer
+within the Advanced Linux Sound Architecture ALSA.
+\item \texttt{synthesizer-llvm}:
+Highly efficient signal processing
+by Just-In-Time compilation and vectorization
+through the Low-Level Virtual Machine (\url{http://llvm.org/}),
+including a real-time software synthesizer.
+% \item \texttt{synthesizer-filter}: frozen
+% \item \texttt{synthesizer-inference}: frozen
+% \item \texttt{synthesizer-fusionlist}: frozen
+% \item \texttt{synthesizer-harpy}: frozen
+\item \texttt{sample-frame}, \texttt{sample-frame-np}:
+Type classes shared between the packages
+for various sample formats
+(integer, float, logarithmic encoding, stereo).
+\item \texttt{alsa-core}, \texttt{alsa-pcm}, \texttt{alsa-seq}, \texttt{jack}:
+Bindings to audio input and output via ALSA and JACK.
+\item \texttt{sox}, \texttt{soxlib}:
+Reading and writing many audio file formats and play sounds
+via \texttt{sox} shell command
+or \texttt{libsox} binary interface.
+% \item \texttt{storablevector}, \texttt{llvm-extra}:
+% \item \texttt{morbus-meniere}, \texttt{split-record}:
+% \item \texttt{midi}, \texttt{midi-alsa}:
+% \item \texttt{reactive-balsa}, \texttt{alsa-gui}, \texttt{midimory}:
+\end{compactitem}
+
+\noindent
+Recent advances are:
+\begin{compactitem}
+\item Extended and safer bindings to ALSA PCM and ALSA MIDI sequencer.
+% \item New bindings to \texttt{libsox}
+%  for reading and writing many audio file formats.
+\item MIDI, ALSA and LLVM code is now cleanly separated.
+\item Example program \texttt{split-record}
+that divides an audio file according to pauses.
+\end{compactitem}
+
+\FurtherReading
+\begin{compactitem}
+\item \url{http://www.haskell.org/haskellwiki/Synthesizer}
+\end{compactitem}
+\end{hcarentry}
