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