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.*
|
||||
*.png
|
||||
# *.png
|
||||
|
||||
MANIFEST
|
||||
tarball
|
||||
|
@ -75,10 +75,10 @@ des serveurs DNS. Par défaut, il questionne les serveurs
|
||||
listés dans \texttt{/etc/resolv.conf}.
|
||||
|
||||
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 :
|
||||
\$ dig +trace -x <adresse.ip>
|
||||
Pour obtenir le reverse d'une adresse IP :
|
||||
\texttt{\$ dig +trace -x <adresse.ip>}
|
||||
|
||||
% ------------------------------------------------------------
|
||||
% \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
|
||||
d'attaquer directement le \textit{device}, et de blaster soi-même
|
||||
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
|
||||
dans un langage plus sérieux :
|
||||
|
||||
@ -137,7 +138,6 @@ for valeur in range(30,90):
|
||||
tx.close()
|
||||
\end{lstlisting}
|
||||
|
||||
|
||||
% ---------------------------------------------------------
|
||||
|
||||
\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
|
||||
\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},
|
||||
et de modules d'écriture de clients http\index{http}.
|
||||
|
||||
|
||||
Le débutant peut facilement n'utiliser qu'un sous-ensemble du langage,
|
||||
mais ce serait se priver de quelques \textit{patterns} assez
|
||||
efficients.
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\section{Le texte}
|
||||
|
||||
@ -49,6 +49,13 @@ la ligne de commande feront l'affaire.
|
||||
|
||||
\lstinputlisting[language=perl]{code/id2h.pl}
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\section{Gestion des modules} \index{CPAN}
|
||||
|
||||
|
||||
|
||||
% ------------------------------------------------------
|
||||
|
||||
\section{Le \texttt{http}}
|
||||
|
||||
|
@ -16,7 +16,12 @@ de maitre Brunus},
|
||||
l'abondance d'options des outils ImageMagick est vraiment énorme,
|
||||
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
|
||||
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
|
||||
(tiré du script d'encodage du \textsc{cloître}\index{cloître})
|
||||
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}
|
||||
|
||||
@ -42,15 +47,17 @@ options sont un peu ésotériques et parfois inter-dépendantes\dots
|
||||
\item{kerning}
|
||||
\item{colors}
|
||||
\item{txtopts}
|
||||
\item{-gravity}
|
||||
\item{-annotate}
|
||||
\item{gravity}
|
||||
\item{annotate}
|
||||
\end{itemize}
|
||||
|
||||
Quastion : comment mettre une couleur de fond à ce texte ?
|
||||
|
||||
\subsection{Faire des GIFs animées}\index{GIF}
|
||||
|
||||
Ces images clignotantes sont l'essence même du Web\index{web}
|
||||
moderne depuis 1992, et \texttt{convert} sait très bien les
|
||||
générer.
|
||||
Ces petites images clignotantes sont l'essence même du
|
||||
Web\index{web} moderne depuis 1992 malgré leurs limitations,
|
||||
et \texttt{convert} sait très bien les générer.
|
||||
|
||||
\begin{verbatim}
|
||||
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
|
||||
\end{verbatim}
|
||||
|
||||
\textsl{Use +repage to completely remove/reset the virtual canvas meta-data
|
||||
from the images.} En gros, on en a besoin quand une opération va
|
||||
\textsl{Use +repage to completely remove/reset the virtual canvas
|
||||
meta-data from the images.}
|
||||
En gros, on en a besoin quand une opération va
|
||||
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}
|
||||
|
||||
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}.
|
||||
|
||||
@ -105,7 +121,7 @@ for ((y=0; y<250; y++)) {
|
||||
|
||||
\subsection{Questions}
|
||||
|
||||
Comment faire un resize ?
|
||||
Comment faire un \textsl{resize} avec NetPBM ?
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
|
||||
|
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,
|
||||
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}
|
||||
|
||||
Et quand on regarde par la lorgnette du programmeur, on découvre
|
||||
rapidement que l'utilisation d'ALSA n'est pas si simple que
|
||||
ça, essentiellement à cause d'une documentation spartiate.
|
||||
Heurensement, pour certains domaines, il existe des
|
||||
surcouches plus simple d'emploi : \texttt{libao}\index{libao}
|
||||
pour les sorties
|
||||
surcouches plus simple d'emploi :
|
||||
\texttt{libao}\index{libao} pour les sorties
|
||||
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}
|
||||
\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
|
||||
\textsl{michu compliant}\index{Michu}
|
||||
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}
|
||||
@ -69,7 +83,8 @@ lui laisser le soin d'en parler.
|
||||
|
||||
Jack peut aussi servir de source sonore pour
|
||||
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}
|
||||
|
||||
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
|
||||
considérable de formats de fichiers\footnote{Mais ceci est une autre
|
||||
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.
|
||||
|
||||
Citons, entre autres, \texttt{sndfile-resample} qui est un
|
||||
convertisseur de
|
||||
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}
|
||||
|
||||
\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
|
||||
voies mono en un fichier stéréo. \texttt{-M} est l'abréviation
|
||||
|
@ -25,15 +25,11 @@ float freq = 440.0;
|
||||
int i;
|
||||
|
||||
/* -- Initialize -- */
|
||||
|
||||
fprintf(stderr, "libao example program\n");
|
||||
|
||||
ao_initialize();
|
||||
|
||||
/* -- Setup for default driver -- */
|
||||
|
||||
default_driver = ao_default_driver_id();
|
||||
|
||||
memset(&format, 0, sizeof(format));
|
||||
format.bits = 16;
|
||||
format.channels = 2;
|
||||
@ -54,7 +50,6 @@ buffer = calloc(buf_size, sizeof(char));
|
||||
for (i = 0; i < format.rate; i++) {
|
||||
sample = (int)(0.75 * 32768.0 *
|
||||
sin(2 * M_PI * freq * ((float) i/format.rate)));
|
||||
|
||||
/* Put the same stuff in left and right channel */
|
||||
buffer[4*i] = buffer[4*i+2] = sample & 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/musique}
|
||||
% \input{chap/puredata}
|
||||
\input{chap/son}
|
||||
\input{chap/streaming}
|
||||
\input{chap/MIDI}
|
||||
\input{chap/OSC}
|
||||
\input{chap/backups}
|
||||
@ -104,7 +106,8 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
|
||||
% \input{chap/SCSI}
|
||||
\input{chap/X11}
|
||||
\input{chap/manpages}
|
||||
|
||||
\input{chap/Fortran}
|
||||
\input{chap/Python}
|
||||
\input{chap/dino}
|
||||
\input{chap/textes}
|
||||
\input{chap/MINITEL}
|
||||
@ -124,7 +127,6 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
|
||||
\input{chap/DNS}
|
||||
\input{chap/ssh}
|
||||
\input{chap/hardware}
|
||||
\input{chap/streaming}
|
||||
\input{chap/gadgets}
|
||||
% \input{chap/slang}
|
||||
\input{chap/curses}
|
||||
|
Loading…
Reference in New Issue
Block a user