oh, this is a commit !
This commit is contained in:
		
							parent
							
								
									499944159f
								
							
						
					
					
						commit
						7722aef9d3
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,6 +1,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
log.*
 | 
					log.*
 | 
				
			||||||
*.png
 | 
					# *.png
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MANIFEST
 | 
					MANIFEST
 | 
				
			||||||
tarball
 | 
					tarball
 | 
				
			||||||
 | 
				
			|||||||
@ -75,10 +75,10 @@ des serveurs DNS. Par défaut, il questionne les serveurs
 | 
				
			|||||||
listés dans \texttt{/etc/resolv.conf}.
 | 
					listés dans \texttt{/etc/resolv.conf}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Pour résoudre récursivement un nom de domaine à partir de la racine :
 | 
					Pour résoudre récursivement un nom de domaine à partir de la racine :
 | 
				
			||||||
\$ dig +trace <nom.de.domaine>
 | 
					\texttt{\$ dig +trace <nom.de.domaine>}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Pour le reverse d'une adresse IP :
 | 
					Pour obtenir le reverse d'une adresse IP :
 | 
				
			||||||
\$ dig +trace -x <adresse.ip>
 | 
					\texttt{\$ dig +trace -x <adresse.ip>}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%  ------------------------------------------------------------
 | 
					%  ------------------------------------------------------------
 | 
				
			||||||
% \subsection{delv}
 | 
					% \subsection{delv}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										18
									
								
								chap/Fortran.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								chap/Fortran.tex
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					\chapter{Fortran} \label{chap:Fortran} \index{Fortran}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fortran (\textsc{FORmula TRANslator}) est, avec le Cobol\index{Cobol},
 | 
				
			||||||
 | 
					un des premiers langages évolués. Il a été conçu après la seconde
 | 
				
			||||||
 | 
					guerre mondiale, en 1954, par
 | 
				
			||||||
 | 
					John Warner Backus, ingénieur en radiophonie chez IBM\index{IBM},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{F77}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Dernière version à exiger le format '80 colonnes' des cartes perforées,
 | 
				
			||||||
 | 
					cette version est aussi (aux yeux de vieux dinos) la plus pure,
 | 
				
			||||||
 | 
					à cause d'instructions comme le \textsl{computed goto} ou le
 | 
				
			||||||
 | 
					mythique \textsl{comefrom}. Nom officiel : \texttt{ANSI X3.9-1978}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{Et après} \index{gfortran}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Puis ce langage du passé a subi une évolution lente vers quelque
 | 
				
			||||||
 | 
					chose de bien plus moderne. Les dinos vont devoir s'adapter.
 | 
				
			||||||
@ -106,7 +106,8 @@ Client 128 : "TiMidity" [User]
 | 
				
			|||||||
Plutôt que de passer par la couche ALSA, il est aussi possible
 | 
					Plutôt que de passer par la couche ALSA, il est aussi possible
 | 
				
			||||||
d'attaquer directement le \textit{device}, et de blaster soi-même
 | 
					d'attaquer directement le \textit{device}, et de blaster soi-même
 | 
				
			||||||
tous les petits octets directement sur le fil. Voici un petit
 | 
					tous les petits octets directement sur le fil. Voici un petit
 | 
				
			||||||
exemple en Python\footnote{Oui, je sais, c'est un langage de djeunz,
 | 
					exemple en
 | 
				
			||||||
 | 
					Python\index{Python}\footnote{Oui, je sais, c'est un langage de djeunz,
 | 
				
			||||||
mais bon, ça fait plaisir à mon gamin}, facilement transposable
 | 
					mais bon, ça fait plaisir à mon gamin}, facilement transposable
 | 
				
			||||||
dans un langage plus sérieux :
 | 
					dans un langage plus sérieux :
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -137,7 +138,6 @@ for valeur in range(30,90):
 | 
				
			|||||||
tx.close()
 | 
					tx.close()
 | 
				
			||||||
\end{lstlisting}
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
% ---------------------------------------------------------
 | 
					% ---------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Et en Perl ?}
 | 
					\section{Et en Perl ?}
 | 
				
			||||||
@ -159,6 +159,12 @@ MIDI::Simple (3pm)   - procedural/OOP interface for MIDI composition
 | 
				
			|||||||
MIDI::Track (3pm)    - functions and methods for MIDI tracks
 | 
					MIDI::Track (3pm)    - functions and methods for MIDI tracks
 | 
				
			||||||
\end{verbatim}
 | 
					\end{verbatim}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Un petit essai, par exemple extraire la valeur du \textsc{bpm}
 | 
				
			||||||
 | 
					d'un fichier \texttt{.mid} ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\lstinputlisting[language=perl]{code/midifile.pl}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Voilà.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
% ---------------------------------------------------------
 | 
					% ---------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -16,11 +16,11 @@ incontesté du Web\index{web} interactif, de par son intégration
 | 
				
			|||||||
dans le serveur Apache\index{Apache},
 | 
					dans le serveur Apache\index{Apache},
 | 
				
			||||||
et de modules d'écriture de clients http\index{http}.
 | 
					et de modules d'écriture de clients http\index{http}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
Le débutant peut facilement n'utiliser qu'un sous-ensemble du langage,
 | 
					Le débutant peut facilement n'utiliser qu'un sous-ensemble du langage,
 | 
				
			||||||
mais ce serait se priver de quelques \textit{patterns} assez
 | 
					mais ce serait se priver de quelques \textit{patterns} assez
 | 
				
			||||||
efficients.
 | 
					efficients.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%   ------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Le texte}
 | 
					\section{Le texte}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -49,6 +49,13 @@ la ligne de commande feront l'affaire.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
\lstinputlisting[language=perl]{code/id2h.pl}
 | 
					\lstinputlisting[language=perl]{code/id2h.pl}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%   ------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{Gestion des modules}		\index{CPAN}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%   ------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Le \texttt{http}}
 | 
					\section{Le \texttt{http}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,12 @@ de maitre Brunus},
 | 
				
			|||||||
l'abondance d'options des outils ImageMagick est vraiment énorme,
 | 
					l'abondance d'options des outils ImageMagick est vraiment énorme,
 | 
				
			||||||
et leurs interactions parfois troublantes\dots
 | 
					et leurs interactions parfois troublantes\dots
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\subsection{\texttt{geometry}}
 | 
					Il y a plusieurs binaires dans le paquet : \texttt{convert} pour
 | 
				
			||||||
 | 
					la plupart des traitements,
 | 
				
			||||||
 | 
					\texttt{display} et \texttt{animate} pour visualiser des images,
 | 
				
			||||||
 | 
					\texttt{identify} pour en lire les méta-données.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\subsection{L'option \texttt{-geometry}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
C'est une notion importante, car elle est utilisée comme paramètre
 | 
					C'est une notion importante, car elle est utilisée comme paramètre
 | 
				
			||||||
par beaucoup d'options. C'est avec ça que l'on peut définir des
 | 
					par beaucoup d'options. C'est avec ça que l'on peut définir des
 | 
				
			||||||
@ -29,7 +34,7 @@ on va travailler.
 | 
				
			|||||||
Voici un exemple concret
 | 
					Voici un exemple concret
 | 
				
			||||||
(tiré du script d'encodage du \textsc{cloître}\index{cloître})
 | 
					(tiré du script d'encodage du \textsc{cloître}\index{cloître})
 | 
				
			||||||
qui montre l'essentiel pour bien débuter. C'est une fonction
 | 
					qui montre l'essentiel pour bien débuter. C'est une fonction
 | 
				
			||||||
écrite en bash\index{bash} qui rajoute un texte sur une image. :
 | 
					écrite en bash\index{bash} qui rajoute un texte sur une image~:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\lstinputlisting[language=sh]{code/tagpic.sh}
 | 
					\lstinputlisting[language=sh]{code/tagpic.sh}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -42,15 +47,17 @@ options sont un peu ésotériques et parfois inter-dépendantes\dots
 | 
				
			|||||||
\item{kerning}
 | 
					\item{kerning}
 | 
				
			||||||
\item{colors}
 | 
					\item{colors}
 | 
				
			||||||
\item{txtopts}
 | 
					\item{txtopts}
 | 
				
			||||||
\item{-gravity}
 | 
					\item{gravity}
 | 
				
			||||||
\item{-annotate}
 | 
					\item{annotate}
 | 
				
			||||||
\end{itemize}
 | 
					\end{itemize}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Quastion : comment mettre une couleur de fond à ce texte ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\subsection{Faire des GIFs animées}\index{GIF}
 | 
					\subsection{Faire des GIFs animées}\index{GIF}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Ces images clignotantes sont l'essence même du Web\index{web}
 | 
					Ces petites images clignotantes sont l'essence même du
 | 
				
			||||||
moderne depuis 1992, et \texttt{convert} sait très bien les
 | 
					Web\index{web} moderne depuis 1992 malgré leurs limitations,
 | 
				
			||||||
générer.
 | 
					et \texttt{convert} sait très bien les générer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\begin{verbatim}
 | 
					\begin{verbatim}
 | 
				
			||||||
convert -delay 20 -loop 0 a.png b.png c.png foo.gif
 | 
					convert -delay 20 -loop 0 a.png b.png c.png foo.gif
 | 
				
			||||||
@ -70,17 +77,26 @@ POSITION="+R12+0"
 | 
				
			|||||||
convert -crop ${DIMENSION}${POSITION} +repage $img $dst
 | 
					convert -crop ${DIMENSION}${POSITION} +repage $img $dst
 | 
				
			||||||
\end{verbatim}
 | 
					\end{verbatim}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\textsl{Use +repage to completely remove/reset the virtual canvas meta-data
 | 
					\textsl{Use +repage to completely remove/reset the virtual canvas
 | 
				
			||||||
from the images.} En gros, on en a besoin quand une opération va
 | 
					meta-data from the images.}
 | 
				
			||||||
 | 
					En gros, on en a besoin quand une opération va
 | 
				
			||||||
changer la dimension de l'image.
 | 
					changer la dimension de l'image.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\subsection{Ressources}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Le futur livre de Brunus. Réclamez les prmiers drafts dans
 | 
				
			||||||
 | 
					l'IRC\index{IRC} \texttt{freenode\#paulla} \textit{:)}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\texttt{http://www.fmwconcepts.com/imagemagick/index.php}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%  -------------------------------------------------------------------
 | 
					%  -------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Gmic}\index{Gmic}
 | 
					\section{Gmic}\index{Gmic}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
XXX\index{XXX}
 | 
					\textsl{Perform generic image processing operations, through the G'MIC
 | 
				
			||||||
 | 
					language interpreter. gmic: GREYC's Magic for Image Computing.}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\index{XXX}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Existe aussi en plugin pour Gimp\index{Gimp}.
 | 
					Existe aussi en plugin pour Gimp\index{Gimp}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -105,14 +121,14 @@ for ((y=0; y<250; y++)) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
\subsection{Questions}
 | 
					\subsection{Questions}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Comment faire un resize ?
 | 
					Comment faire un \textsl{resize} avec NetPBM ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%  -------------------------------------------------------------------
 | 
					%  -------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Portable Network Graphic}\index{PNG}
 | 
					\section{Portable Network Graphic}\index{PNG}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Voici le problème du soir%
 | 
					Voici le problème du soir%
 | 
				
			||||||
\footnote{\textsl{trollday}Fri Nov 13 00:07:19 CET 2020} :
 | 
					\footnote{\textsl{trollday} Fri Nov 13 00:07:19 CET 2020} :
 | 
				
			||||||
j'utilise pour lire ce format de fichier la bibliothèque
 | 
					j'utilise pour lire ce format de fichier la bibliothèque
 | 
				
			||||||
\texttt{pnglite} qui a de gros soucis avec beaucoup de
 | 
					\texttt{pnglite} qui a de gros soucis avec beaucoup de
 | 
				
			||||||
ceux-ci, par exemple ceux qui sont en \texttt{sRGB} crées
 | 
					ceux-ci, par exemple ceux qui sont en \texttt{sRGB} crées
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										33
									
								
								chap/son.tex
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								chap/son.tex
									
									
									
									
									
								
							@ -36,16 +36,29 @@ Si vous avez plusieurs cartes son, la sélection du
 | 
				
			|||||||
l'option \texttt{-l} qui vous donnera la bonne piste,
 | 
					l'option \texttt{-l} qui vous donnera la bonne piste,
 | 
				
			||||||
mais l'option \texttt{-L} qu'il faut utiliser.
 | 
					mais l'option \texttt{-L} qu'il faut utiliser.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{verbatim}
 | 
				
			||||||
 | 
					arecord -D plughw:CARD=Snowball,DEV=0 -v -r 22050 foo.wav
 | 
				
			||||||
 | 
					\end{verbatim}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{verbatim}
 | 
				
			||||||
 | 
					arecord -D plughw:CARD=H4,DEV=0 -v -c 2 -f S16_LE -r 44100 foo.wav
 | 
				
			||||||
 | 
					\end{verbatim}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\subsection{Le reste}
 | 
					\subsection{Le reste}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Et quand on regarde par la lorgnette du programmeur, on découvre
 | 
					Et quand on regarde par la lorgnette du programmeur, on découvre
 | 
				
			||||||
rapidement que l'utilisation d'ALSA n'est pas si simple que
 | 
					rapidement que l'utilisation d'ALSA n'est pas si simple que
 | 
				
			||||||
ça, essentiellement à cause d'une documentation spartiate.
 | 
					ça, essentiellement à cause d'une documentation spartiate.
 | 
				
			||||||
Heurensement, pour certains domaines, il existe des
 | 
					Heurensement, pour certains domaines, il existe des
 | 
				
			||||||
surcouches plus simple d'emploi : \texttt{libao}\index{libao}
 | 
					surcouches plus simple d'emploi :
 | 
				
			||||||
 pour les sorties
 | 
					\texttt{libao}\index{libao} pour les sorties
 | 
				
			||||||
sonores, XXX\index{XXX} pour le reste.
 | 
					sonores, XXX\index{XXX} pour le reste.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ALSA apporte aussi les primitives et des utilitaires
 | 
				
			||||||
 | 
					de gestion des interfaces MIDI\index{MIDI}. Là aussi,
 | 
				
			||||||
 | 
					la doc est sommaire. Quelques explications
 | 
				
			||||||
 | 
					sur la page \pageref{chap:MIDI}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%------------------------------------------------------------------
 | 
					%------------------------------------------------------------------
 | 
				
			||||||
\section{pulseaudio}
 | 
					\section{pulseaudio}
 | 
				
			||||||
\index{pulseaudio}
 | 
					\index{pulseaudio}
 | 
				
			||||||
@ -55,7 +68,8 @@ On avait pourtant dit « \textbf{pas de trolls} », mais il va quand
 | 
				
			|||||||
même falloir y passer : ce machin prétenduement
 | 
					même falloir y passer : ce machin prétenduement
 | 
				
			||||||
\textsl{michu compliant}\index{Michu}
 | 
					\textsl{michu compliant}\index{Michu}
 | 
				
			||||||
 a parfois, voire même souvent, tendance à se mettre en travers
 | 
					 a parfois, voire même souvent, tendance à se mettre en travers
 | 
				
			||||||
du chemin des honnètes gens.
 | 
					du chemin des honnètes gens%
 | 
				
			||||||
 | 
					\footnote{Du moins vers l'année 2014}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%------------------------------------------------------------------
 | 
					%------------------------------------------------------------------
 | 
				
			||||||
\section{Jack}
 | 
					\section{Jack}
 | 
				
			||||||
@ -69,7 +83,8 @@ lui laisser le soin d'en parler.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Jack peut aussi servir de source sonore pour
 | 
					Jack peut aussi servir de source sonore pour
 | 
				
			||||||
darkice\index{darkice}, lequel pourra feeder un
 | 
					darkice\index{darkice}, lequel pourra feeder un
 | 
				
			||||||
Icecast\index{icecast}
 | 
					serveur de stream comme Icecast\index{icecast}
 | 
				
			||||||
 | 
					(cf page \pageref{chap:streaming}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%------------------------------------------------------------------
 | 
					%------------------------------------------------------------------
 | 
				
			||||||
@ -79,14 +94,13 @@ Icecast\index{icecast}
 | 
				
			|||||||
\index{libsndfile}
 | 
					\index{libsndfile}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Libsndfile est essentiellement une très complète bibliothèque
 | 
					Libsndfile est essentiellement une très complète bibliothèque
 | 
				
			||||||
de lecture/écriture de fichiers sons.
 | 
					de lecture et écriture de fichiers sons.
 | 
				
			||||||
Elle permet de gérer facilement un nombre
 | 
					Elle permet de gérer facilement un nombre
 | 
				
			||||||
considérable de formats de fichiers\footnote{Mais ceci est une autre
 | 
					considérable de formats de fichiers\footnote{Mais ceci est une autre
 | 
				
			||||||
histoire, que nous verrons peut-être un de ces jours\dots}.
 | 
					histoire, que nous verrons peut-être un de ces jours\dots}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Par contre, elle arrive avec une floppée d'outils en ligne de
 | 
					Elle arrive avec une floppée d'outils en ligne de
 | 
				
			||||||
commande, dont certains sont assez performants.
 | 
					commande, dont certains sont assez performants.
 | 
				
			||||||
 | 
					 | 
				
			||||||
Citons, entre autres, \texttt{sndfile-resample} qui est un
 | 
					Citons, entre autres, \texttt{sndfile-resample} qui est un
 | 
				
			||||||
convertisseur de
 | 
					convertisseur de
 | 
				
			||||||
fréquence d'échantillonage très performant.
 | 
					fréquence d'échantillonage très performant.
 | 
				
			||||||
@ -160,7 +174,10 @@ play -n synth sine 480 sine 620 remix 1-2 fade 0 0.5 delay 0.5 repeat 5
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
\subsection{Traitements}
 | 
					\subsection{Traitements}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\texttt{sox --norm source.wav normal.wav} pour normaliser un son.
 | 
					\texttt{sox --norm[=dB-level] source.wav normal.wav} pour
 | 
				
			||||||
 | 
					normaliser un son.
 | 
				
			||||||
 | 
					\textsl{Automatically invoke the gain effect to guard  against
 | 
				
			||||||
 | 
					clipping and to normalise the audio}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\texttt{sox left.wav right.wav -M stereo.wav} pour combiner deux 
 | 
					\texttt{sox left.wav right.wav -M stereo.wav} pour combiner deux 
 | 
				
			||||||
voies mono en un fichier stéréo. \texttt{-M} est l'abréviation
 | 
					voies mono en un fichier stéréo. \texttt{-M} est l'abréviation
 | 
				
			||||||
 | 
				
			|||||||
@ -25,15 +25,11 @@ float freq = 440.0;
 | 
				
			|||||||
int i;
 | 
					int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* -- Initialize -- */
 | 
						/* -- Initialize -- */
 | 
				
			||||||
 | 
					 | 
				
			||||||
fprintf(stderr, "libao example program\n");
 | 
					fprintf(stderr, "libao example program\n");
 | 
				
			||||||
 | 
					 | 
				
			||||||
ao_initialize();
 | 
					ao_initialize();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* -- Setup for default driver -- */
 | 
						/* -- Setup for default driver -- */
 | 
				
			||||||
 | 
					 | 
				
			||||||
default_driver = ao_default_driver_id();
 | 
					default_driver = ao_default_driver_id();
 | 
				
			||||||
 | 
					 | 
				
			||||||
memset(&format, 0, sizeof(format));
 | 
					memset(&format, 0, sizeof(format));
 | 
				
			||||||
format.bits = 16;
 | 
					format.bits = 16;
 | 
				
			||||||
format.channels = 2;
 | 
					format.channels = 2;
 | 
				
			||||||
@ -54,7 +50,6 @@ buffer = calloc(buf_size, sizeof(char));
 | 
				
			|||||||
for (i = 0; i < format.rate; i++) {
 | 
					for (i = 0; i < format.rate; i++) {
 | 
				
			||||||
	sample = (int)(0.75 * 32768.0 *
 | 
						sample = (int)(0.75 * 32768.0 *
 | 
				
			||||||
	      sin(2 * M_PI * freq * ((float) i/format.rate)));
 | 
						      sin(2 * M_PI * freq * ((float) i/format.rate)));
 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Put the same stuff in left and right channel */
 | 
						/* Put the same stuff in left and right channel */
 | 
				
			||||||
	buffer[4*i] = buffer[4*i+2] = sample & 0xff;
 | 
						buffer[4*i] = buffer[4*i+2] = sample & 0xff;
 | 
				
			||||||
	buffer[4*i+1] = buffer[4*i+3] = (sample >> 8) & 0xff;
 | 
						buffer[4*i+1] = buffer[4*i+3] = (sample >> 8) & 0xff;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										3
									
								
								code/midifile.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								code/midifile.pl
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/perl -w
 | 
				
			||||||
 | 
					use MIDI;
 | 
				
			||||||
 | 
					0;
 | 
				
			||||||
							
								
								
									
										6
									
								
								main.tex
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								main.tex
									
									
									
									
									
								
							@ -93,6 +93,8 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
 | 
				
			|||||||
\input{chap/Perl}
 | 
					\input{chap/Perl}
 | 
				
			||||||
\input{chap/musique}
 | 
					\input{chap/musique}
 | 
				
			||||||
% \input{chap/puredata}
 | 
					% \input{chap/puredata}
 | 
				
			||||||
 | 
					\input{chap/son}
 | 
				
			||||||
 | 
					\input{chap/streaming}
 | 
				
			||||||
\input{chap/MIDI}
 | 
					\input{chap/MIDI}
 | 
				
			||||||
\input{chap/OSC}
 | 
					\input{chap/OSC}
 | 
				
			||||||
\input{chap/backups}
 | 
					\input{chap/backups}
 | 
				
			||||||
@ -104,7 +106,8 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
 | 
				
			|||||||
% \input{chap/SCSI}
 | 
					% \input{chap/SCSI}
 | 
				
			||||||
\input{chap/X11}
 | 
					\input{chap/X11}
 | 
				
			||||||
\input{chap/manpages}
 | 
					\input{chap/manpages}
 | 
				
			||||||
 | 
					\input{chap/Fortran}
 | 
				
			||||||
 | 
					\input{chap/Python}
 | 
				
			||||||
\input{chap/dino}
 | 
					\input{chap/dino}
 | 
				
			||||||
\input{chap/textes}
 | 
					\input{chap/textes}
 | 
				
			||||||
\input{chap/MINITEL}
 | 
					\input{chap/MINITEL}
 | 
				
			||||||
@ -124,7 +127,6 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
 | 
				
			|||||||
\input{chap/DNS}
 | 
					\input{chap/DNS}
 | 
				
			||||||
\input{chap/ssh}
 | 
					\input{chap/ssh}
 | 
				
			||||||
\input{chap/hardware}
 | 
					\input{chap/hardware}
 | 
				
			||||||
\input{chap/streaming}
 | 
					 | 
				
			||||||
\input{chap/gadgets}
 | 
					\input{chap/gadgets}
 | 
				
			||||||
% \input{chap/slang}
 | 
					% \input{chap/slang}
 | 
				
			||||||
\input{chap/curses}
 | 
					\input{chap/curses}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user