From 7933b6b20f293d561e185c03a28fa347761151c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Nusser?= Date: Mon, 10 Feb 2020 10:34:08 +0100 Subject: Replace pictures by Bent by vector graphics. --- sampling_alg_lac2020/LAC-20.tex | 117 ++++++++++++++++++++++++---------------- 1 file changed, 70 insertions(+), 47 deletions(-) (limited to 'sampling_alg_lac2020/LAC-20.tex') diff --git a/sampling_alg_lac2020/LAC-20.tex b/sampling_alg_lac2020/LAC-20.tex index 47c3d4f..e1f3174 100644 --- a/sampling_alg_lac2020/LAC-20.tex +++ b/sampling_alg_lac2020/LAC-20.tex @@ -288,13 +288,13 @@ The early versions used a sample selection algorithm based on velocity groups, akin to the one used by sfz \todo{add bib reference}, in which each group spans a specfied velocity range and the sample selection is made by uniformly randomly selecting one of the samples contained in -the group corresponding to the input velocity: -{\tiny\begin{verbatim} - ________________ _________________ - / \ / uniformly random \ --- input note --> | group selector | -- group --> | sample selector | -- sample --> - [0; 1] \________________/ \__________________/ -\end{verbatim}} +the group corresponding to the input velocity, see Figure \ref{fig:alg1}. +% {\tiny\begin{verbatim} +% ________________ _________________ +% / \ / uniformly random \ +% -- input note --> | group selector | -- group --> | sample selector | -- sample --> +% [0; 1] \________________/ \__________________/ +% \end{verbatim}} This algorithm did not give good results in small samplesets so later an improved algorithm was introduced which was instead based on normal @@ -320,17 +320,31 @@ to $p'$ -- ties are broken such that the first minimal value is chosen (which is problematic as explained below). In case $s$ is equal to the last sample that we played we repeat this process, otherwise we return $s$. If we did not find another sample than the last played after $4$ -iterations, we just return the last played sample. - -{\tiny\begin{verbatim} - stddev - \ ________ _________________ - / \ / nearest power \ --- input note --> | random | -- power --> | sample selector | -- sample --> - [0; 1] \________/ \_________________/ - / - mean -\end{verbatim}} +iterations, we just return the last played sample, see Figure \ref{fig:alg2}. + +% {\tiny\begin{verbatim} +% stddev +% \ ________ _________________ +% / \ / nearest power \ +% -- input note --> | random | -- power --> | sample selector | -- sample --> +% [0; 1] \________/ \_________________/ +% / +% mean +% \end{verbatim}} + +\begin{figure} + \centering + \includegraphics[width=.9\linewidth]{figures/alg1.pdf} + \caption{Flow diagram of the first sampling algorithm of DrumGizmo.} + \label{fig:alg1} +\end{figure} + +\begin{figure} + \centering + \includegraphics[width=.9\linewidth]{figures/alg2.pdf} + \caption{Flow diagram of the second sampling algorithm of DrumGizmo.} + \label{fig:alg2} +\end{figure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -352,32 +366,41 @@ spans multiple channels. Due to the speed of sound in air and the distance from each drum towards each of the micorphones used the initial sample position in each of the channels will not be at the same place - the channel which are the closest to the sound source of -a particular instrument is the \textit{main channel} of that instrument: -{\tiny\begin{verbatim} -Main channel -| . .-. . -| . / \ .-. . -| . / \ / \ .-. .-. _ _ . -+----./-------\-----/-----\-----/---\---/---\---/-\-/-\/\/------.--- -| . \ / \ / '-' '-' . -| . '-' '-' . -Secondary channel . -| . .-. . -| . / \ .-. . -| . / \ / \ .-. .-. _ _ . -+----.--/-------\-----/-----\-----/---\---/---\---/-\-/-\/\/----.--- -| . \ / \ / '-' '-' . -| . '-' '-' . -Secondary channel . -| . .-. . -| . / \ .-. . -| . / \ / \ .-. .-. _ _ . -+----.------/-------\-----/-----\-----/---\---/---\---/-\-/-\/\/.--- -| . \ / \ / '-' '-' . -| . '-' '-' . - -Sample offset Sample end -\end{verbatim}} +a particular instrument is the \textit{main channel} of that instrument, see Figure \ref{fig:signals}. + +\begin{figure} + \centering + \includegraphics[width=.9\linewidth]{figures/signals.pdf} + \caption{Sketch of the original signals of a sample.} + \label{fig:signals} +\end{figure} + +% {\tiny\begin{verbatim} +% Main channel +% | . .-. . +% | . / \ .-. . +% | . / \ / \ .-. .-. _ _ . +% +----./-------\-----/-----\-----/---\---/---\---/-\-/-\/\/------.--- +% | . \ / \ / '-' '-' . +% | . '-' '-' . +% Secondary channel . +% | . .-. . +% | . / \ .-. . +% | . / \ / \ .-. .-. _ _ . +% +----.--/-------\-----/-----\-----/---\---/---\---/-\-/-\/\/----.--- +% | . \ / \ / '-' '-' . +% | . '-' '-' . +% Secondary channel . +% | . .-. . +% | . / \ .-. . +% | . / \ / \ .-. .-. _ _ . +% +----.------/-------\-----/-----\-----/---\---/---\---/-\-/-\/\/.--- +% | . \ / \ / '-' '-' . +% | . '-' '-' . +% +% Sample offset Sample end +% \end{verbatim}} + %\todobent{Talk about loudness computation of samples.} A sample has a \textit{stroke power} which is the physical power used @@ -540,7 +563,7 @@ Note that by traversing the samples in order of their distance to $p$ (which is \] \section{Experiments} -\todoandre{Talk about the setup.} +% \todoandre{Talk about the setup.} To conduct the experiments, we use the implementation of the new sampling algorithm in DrumGizmo. As a base-line for comparison, we use the previous sample selection algorithm of DrumGizmo. We want to evaluate how the sample selection algorithm performs in practice, therefore we use the drum kits of DrumGizmo. In particular, we use the power value distribution of the samples of those kits. @@ -576,7 +599,7 @@ We want to test the following hypotheses with our experiments: \begin{enumerate} \item Two samples with similar power values are chosen similarly often. \item Playing the same MIDI note over and over again plays a reasonably varied set of samples. - \item Average distance of one sample \todo{what did I want to say with that?} + % \item Average distance of one sample \todo{what did I want to say with that?} \end{enumerate} % \todoandre{Experiments are: playing fast sweeps (with multiple hits per velocity); playing a single note over and over again at the same velocity; sound examples that people can listen to online?} To test the above hypotheses, we conduct the following experiments: @@ -586,7 +609,7 @@ To test the above hypotheses, we conduct the following experiments: % \item Audio recordings of the processes \end{enumerate} -\todoandre{Do beautiful tables and plots here} +% \todoandre{Do beautiful tables and plots here} To be able to compare the results of those experiments, we have to somehow visualize the selections. We choose to plot histograms. More concretely, for a run of the experiment, we plot the number of times a sample was selected over its index in the array of ordered samples. For the first experiment, i.e., the sweeps, you can see the histograms in Figure \ref{fig:sweep}. \todo{describe and explain plot} \begin{figure*} -- cgit v1.2.3