on avance pas à pas...
This commit is contained in:
parent
3e2fb4a408
commit
25055fed70
@ -28,9 +28,10 @@ Un exemple de message basique, c'est celui-ci, exprimé en
|
||||
hexadécimal\index{hexa.} :
|
||||
\texttt{93 5B 3A} un message qui va déclencher, sur le canal 3,
|
||||
la note \textsf{Sol5}, à
|
||||
un niveau assez bas. Et c'est l'instrument à l'autre bout di fil
|
||||
un niveau assez bas. Et c'est l'instrument à l'autre bout du fil
|
||||
qui va générer le signal audio.
|
||||
|
||||
% ---------------------------------------------------------
|
||||
|
||||
|
||||
% ---------------------------------------------------------
|
||||
|
20
chap/Maths.tex
Normal file
20
chap/Maths.tex
Normal file
@ -0,0 +1,20 @@
|
||||
\chapter{Maths}
|
||||
\label{chap:Maths}
|
||||
|
||||
Les mathématiques sont un outil indispensable dans la vie de tous
|
||||
les jours, même si on ne s'en rend pas forcément compte.
|
||||
Je ne vais pas vous faire un cours complet, j'en suis bien
|
||||
incapable. Je vous conseille plutôt de demander ça à
|
||||
monsieur schmod777, bien plus qualifié que moi.
|
||||
|
||||
Je vais me contenter (et c'est un peu l'esprit de cet ouvrage)
|
||||
de répertorier les petites choses qui rendent la vie plus facile.
|
||||
Nous verrons des \textit{tips} de géométrie que vous utiliserez
|
||||
avec profit dans vos codes Povray, par exemple.
|
||||
Je songe ensuite aborder certains aspects de la théorie du
|
||||
signal, dans le but pratique de brotcher du son.
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -53,12 +53,15 @@ la ligne de commande feront l'affaire.
|
||||
|
||||
\section{Gestion des modules} \index{CPAN}
|
||||
|
||||
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\section{Le \texttt{http}}
|
||||
|
||||
Scrapping de la patate en vue !
|
||||
|
||||
https://al.smeuh.org/cgi-bin/express.pritz
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\section{RFC 8589}
|
||||
|
||||
|
@ -15,10 +15,20 @@ en explorer quelques uns.
|
||||
\subsection {Riping}
|
||||
|
||||
Le \textsl{ripage} est l'action d'extraire les pistes d'un
|
||||
ce audion pour les convertir en fichier numérique audio.
|
||||
cd audio pour les convertir en fichier numérique audio.
|
||||
|
||||
Un des outils utilisés est \texttt{cdparanoia}. Les nombreuses
|
||||
options décrites dans la manpage montrent à quel point ce logiciel
|
||||
est complet et compliqué.
|
||||
|
||||
\subsection {Mastering}
|
||||
|
||||
\begin{quote}
|
||||
The Disc Description Protocol (DDP) is used by disc manufacturers as input
|
||||
format for their glass mastering process, and thus is the format of choice
|
||||
used by mastering engineers when sending out audio CD masters for replication.
|
||||
\end{quote}
|
||||
|
||||
% --------------------------------------------------------
|
||||
|
||||
\section{DVD}
|
||||
|
@ -53,6 +53,27 @@ fait redescendre le volume à 0 à la fin du beep sur
|
||||
la même durée, et pour entendre cette partie finale , il nous
|
||||
faut attendre un peu, d'où la dernière ligne.
|
||||
|
||||
Et avant de passer à la suite, voyons un peu le coté plus
|
||||
« informatique » de Chuck. La séquence d'instruction finale
|
||||
de l'exemple précédent peut être vu comme un bloc unique,
|
||||
puisque il n'a qu'une seule finalité~:
|
||||
générer le beep\index{beep}.
|
||||
|
||||
Et pour ça, nous allons les regrouper dans une \textbf{fonction}
|
||||
que voici que voilà :
|
||||
|
||||
\begin{verbatim}
|
||||
fun void beep() {
|
||||
e.keyOn(); 2::second => now;
|
||||
e.keyOff(); 1::second => now;
|
||||
}
|
||||
\end{verbatim}
|
||||
|
||||
Pour l'utilisation de cette fonction, c'est dans la partie suivante.
|
||||
Bienvenue dans le monde merveilleux des lignes de code.
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\subsection{Les filtres}
|
||||
|
||||
Le son que nous avons utilisé dans les précédents exemples
|
||||
@ -70,9 +91,13 @@ Puisque la fréquence de notre \textit{beep} est calée à
|
||||
440 Hz, nous allonc chercher les harmoniques supérieures
|
||||
vers 1337 Hz, avec une largeur de bande assez grande.
|
||||
Et nous obtenons un son bien plus brillant, mais encore
|
||||
un peu inerte. Prochaine étape, brancher un LFO sur
|
||||
un peu inerte.
|
||||
|
||||
Prochaine étape, brancher un LFO sur
|
||||
ce filtre\dots
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\subsection{Beep à vibrato}
|
||||
|
||||
Les choses vont un peu se corser, avec la notion de
|
||||
@ -83,7 +108,9 @@ l'autonomie de votre LFO matériel.
|
||||
|
||||
\lstinputlisting{code/bipvibrato.ck}
|
||||
|
||||
Spork !!
|
||||
Et nous retrouvons la notion de fonction.
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\subsection{Attack Decay Sustain Release} \index{ADSR}
|
||||
|
||||
@ -99,15 +126,39 @@ Point suivant : configurer notre ADSR. Il y a bien plus de potards
|
||||
que dans l'exemple précédent :
|
||||
attack time et rate, decay time et rate, release time et rate et
|
||||
sustain level pour finir.
|
||||
% ------------------------------------------------------
|
||||
|
||||
\subsection{Jouer des samples}
|
||||
|
||||
Oui, on peut.
|
||||
Oui, on peut. On peut même faire des choses assez fun.
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\subsection{Dialoguer en MIDI} \index{MIDI} \label{chuck-midi}
|
||||
|
||||
Oui, on peut. Et nous allons faire des \textsf{beep} à
|
||||
partir d'un clavier ou du séquenceur d'une electribe.
|
||||
Attention, une petite connaissance du protocole MIDI
|
||||
est nécessaire. Vous trouverez quelques explications
|
||||
page \pageref{chap:MIDI}.
|
||||
|
||||
\lstinputlisting{code/midibeep.ck}
|
||||
|
||||
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\subsection{Communication OSC} \index{OSC} \label{chuck-osc}
|
||||
|
||||
OSC, Open Sound Control, a son chapitre dédié en page \pageref{chap:OSC}.
|
||||
Nous allons nouc concentrer sur les aspects Chuck.
|
||||
Nous allons nous concentrer sur les aspects Chuck.
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\subsection{Enregistrer}
|
||||
|
||||
Il est aussi possible de générer des fichiers .WAV à partir
|
||||
d'un script Chuck.
|
||||
|
||||
\subsection{Aller plus loin}
|
||||
|
||||
|
@ -16,7 +16,22 @@ déroutante.
|
||||
|
||||
Les fichiers de configuration sont stockés dans le répertoire
|
||||
\texttt{\$HOME/.moc/} et on y trouve la config en elle-même, et
|
||||
les thêmes\footnote{Très importants, les thêmes de mocp :)}
|
||||
les thêmes\footnote{Très importants, les thêmes de mocp :)}.
|
||||
Un exemple très complet (.../doc/moc/examples/config.example)
|
||||
est fourni. Les commentaires vous expliquerons bien tout.
|
||||
Voici un petit extrait de la configuration que j'utilise~:
|
||||
|
||||
\begin{verbatim}
|
||||
# enchainement des morceaux.
|
||||
Repeat = yes
|
||||
Shuffle = yes
|
||||
AutoNext = yes
|
||||
|
||||
Theme = moca_theme
|
||||
\end{verbatim}
|
||||
|
||||
Pout un usage de base, c'est bien suffisant, mais il y a des
|
||||
options avancées qui permettent de faire bien d'autres choses.
|
||||
|
||||
%------------------------------------------------------------------
|
||||
|
||||
|
@ -9,8 +9,9 @@ SqrOsc s => BPF f => Envelope e => dac;
|
||||
2 => f.Q;
|
||||
1337 => f.freq;
|
||||
|
||||
//--- hop encore un beep !
|
||||
e.keyOn();
|
||||
2::second => now;
|
||||
e.keyOff();
|
||||
1::second => now;
|
||||
fun void beep() {
|
||||
e.keyOn(); 2::second => now;
|
||||
e.keyOff(); 1::second => now;
|
||||
}
|
||||
|
||||
() => beep;
|
||||
|
@ -7,8 +7,5 @@ SqrOsc s => BPF f => Envelope e => dac;
|
||||
2 => f.Q;
|
||||
1337 => f.freq;
|
||||
|
||||
//--- hop encore un beep !
|
||||
e.keyOn();
|
||||
2::second => now;
|
||||
e.keyOff();
|
||||
1::second => now;
|
||||
() => beep;
|
||||
|
||||
|
16
code/midibeep.ck
Normal file
16
code/midibeep.ck
Normal file
@ -0,0 +1,16 @@
|
||||
MidiIn input;
|
||||
MidiMsg msg;
|
||||
|
||||
1 => int port; // please explain
|
||||
|
||||
if (!input.open(port)) {
|
||||
<<< "erreur open MIDI" >>>; me.exit();
|
||||
}
|
||||
|
||||
while (1) {
|
||||
input => now;
|
||||
while ( input.recv(msg) ) {
|
||||
<<< msg.data1, msg.data2, msg.data3 >>>;
|
||||
}
|
||||
}
|
||||
|
3
main.tex
3
main.tex
@ -95,7 +95,6 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
|
||||
% \input{chap/boot}
|
||||
\input{chap/shell}
|
||||
% \input{chap/editeurs}
|
||||
\input{chap/manpages}
|
||||
\input{chap/C}
|
||||
|
||||
\input{chap/son}
|
||||
@ -124,6 +123,7 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
|
||||
\input{chap/dino}
|
||||
\input{chap/cd-dvd}
|
||||
\input{chap/textes}
|
||||
\input{chap/Maths}
|
||||
% \input{chap/MINITEL}
|
||||
% \input{chap/Raspberry}
|
||||
\input{chap/Fedora}
|
||||
@ -131,6 +131,7 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
|
||||
\input{chap/threads}
|
||||
\input{chap/IPC}
|
||||
\input{chap/dosbox}
|
||||
\input{chap/manpages}
|
||||
\input{chap/grub}
|
||||
\input{chap/photos}
|
||||
\input{chap/plugins}
|
||||
|
Loading…
Reference in New Issue
Block a user