From 8a17ec60c56fed55ac683def9bc8e01ee4a9babf Mon Sep 17 00:00:00 2001 From: tth Date: Wed, 3 Nov 2021 09:08:40 +0100 Subject: [PATCH] + playsample.ck --- chap/modular.tex | 10 ++++++++-- code/playsample.ck | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/chap/modular.tex b/chap/modular.tex index 1b7ac96..ed7d7db 100644 --- a/chap/modular.tex +++ b/chap/modular.tex @@ -131,11 +131,17 @@ sustain level pour finir. \subsection{Jouer des samples} Oui, on peut. On peut même faire des choses assez fun. -Juste un example un peu brouillon et qui manque de rigueur -en attendant mieux : +Juste un example un peu brouillon et qui manque de rigueur, +essentiellement sur le calcul de la durée d'écoute de +l'échantillon en fonction du \textsl{pitch}. +Mais, en attendant mieux : \lstinputlisting{code/playsample.ck} +Bien entendu, il vous faudra créer le fichier avec +l'échantillon sonore. J'ai utilisé un fichier de quatre +secondes échantilloné à 22050 Hz. + Et j'entend un esprit chagrin râler au fond de la salle : « oué, nous on veut du gros son ». Patience, nous allons d'abord voir les briques avant de construire le mur. diff --git a/code/playsample.ck b/code/playsample.ck index 3b96934..43e4a8b 100644 --- a/code/playsample.ck +++ b/code/playsample.ck @@ -1,11 +1,11 @@ SndBuf buf => dac; -"sample.wav" => buf.read; +"/home/tth/Essais/Chuck/sample.wav" => buf.read; float srate, duration; 1 => buf.gain; -for ( 0.7=>srate; srate<1.8; 0.1 +=> srate) { - 900 / srate => duration; +for ( 0.7=>srate; srate<1.9; 1.1 *=> srate) { + 4000 / srate => duration; <<< "loop...", srate, duration >>>; 0 => buf.pos; srate => buf.rate;