Compare commits
No commits in common. "7dba31d281ff0a633c69f4721224ae3e65cfbefa" and "25055fed7036af08edb219bc68611d7304fd80b6" have entirely different histories.
7dba31d281
...
25055fed70
@ -105,7 +105,7 @@ En utilisant les mêmes fonctions qu'une application basique.
|
|||||||
Peut-être aussi en lui trouvant un nom plus \textsl{fun}\dots
|
Peut-être aussi en lui trouvant un nom plus \textsl{fun}\dots
|
||||||
|
|
||||||
% ------------------------------------------------------------
|
% ------------------------------------------------------------
|
||||||
\section{DHCP} \index{DHCP} \index{dhcpd}
|
\section{DHCP} \index{DHCP}
|
||||||
|
|
||||||
\begin{quote}
|
\begin{quote}
|
||||||
The DHCP protocol allows a host to contact a central server which maintains a
|
The DHCP protocol allows a host to contact a central server which maintains a
|
||||||
@ -120,12 +120,6 @@ Probablement avec \texttt{tcpdump}\index{tcpdump},
|
|||||||
et c'est à l'essai
|
et c'est à l'essai
|
||||||
dans la page \pageref{tcpdump}.
|
dans la page \pageref{tcpdump}.
|
||||||
|
|
||||||
Un compagnon privilégié du DHCP est le système PXE\index{PXE}
|
|
||||||
qui permet de \textsl{booter} des images ISOs stockées sur
|
|
||||||
un serveur du réseau local.
|
|
||||||
|
|
||||||
% https://www.geoffray-levasseur.org/tutoriels-2/un-pxe-pour-les-unir-tous/
|
|
||||||
|
|
||||||
% ------------------------------------------------------------
|
% ------------------------------------------------------------
|
||||||
\section{dnsmasq}
|
\section{dnsmasq}
|
||||||
\index{dnsmasq}
|
\index{dnsmasq}
|
||||||
|
@ -37,9 +37,6 @@ qui va générer le signal audio.
|
|||||||
% ---------------------------------------------------------
|
% ---------------------------------------------------------
|
||||||
\section{Outils de base}
|
\section{Outils de base}
|
||||||
|
|
||||||
Le sous-système ALSA vient avec quelques utiltaires bien pratique
|
|
||||||
dans un usage d'exploration.
|
|
||||||
|
|
||||||
\subsection{aseqdump}
|
\subsection{aseqdump}
|
||||||
\index{aseqdump}
|
\index{aseqdump}
|
||||||
|
|
||||||
@ -54,32 +51,8 @@ tth@plop:~/Muzak/Samples$ aseqdump -l
|
|||||||
0:0 System Timer
|
0:0 System Timer
|
||||||
0:1 System Announce
|
0:1 System Announce
|
||||||
14:0 Midi Through Midi Through Port-0
|
14:0 Midi Through Midi Through Port-0
|
||||||
20:0 nanoKONTROL nanoKONTROL MIDI 1
|
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Voici ce qu'on obtient quand on remue les boutons d'un
|
|
||||||
nanoKontrol de Korg, et voyez bien qu'on retrouve les
|
|
||||||
trois octets dont on causait l'autre jour. Le premier
|
|
||||||
contient à la fois le numéro ce canal et le type d'évènement,
|
|
||||||
le second le numéro du contrôle concerné, et le troisième
|
|
||||||
la nouvelle valeur~:
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
tth@fubar:~/Documents/TetaTricks$ aseqdump -p 20
|
|
||||||
Waiting for data. Press Ctrl+C to end.
|
|
||||||
Source Event Ch Data
|
|
||||||
20:0 Control change 1, controller 45, value 127
|
|
||||||
20:0 Control change 1, controller 45, value 0
|
|
||||||
20:0 Control change 1, controller 14, value 120
|
|
||||||
20:0 Control change 1, controller 14, value 119
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
Un exemple d'utilisation d'un nanoKontrol pour piloter Chuck
|
|
||||||
se trouve (peut-être) aux alentours de la
|
|
||||||
page \pageref{chuck-midi}.
|
|
||||||
|
|
||||||
% -------------------------
|
|
||||||
|
|
||||||
\subsection{aconnect}
|
\subsection{aconnect}
|
||||||
|
|
||||||
Maintenant que nous savons ce qui rentre dans notre machine,
|
Maintenant que nous savons ce qui rentre dans notre machine,
|
||||||
@ -94,11 +67,6 @@ aseqnet is an ALSA sequencer client which sends and receives
|
|||||||
event packets over the network.
|
event packets over the network.
|
||||||
\end{quote}
|
\end{quote}
|
||||||
|
|
||||||
\subsection{pmidi}
|
|
||||||
|
|
||||||
Jouer un fichier MIDI (aka \textsl{midifile}) au travers du
|
|
||||||
séquenceur ALSA.
|
|
||||||
|
|
||||||
% ---------------------------------------------------------
|
% ---------------------------------------------------------
|
||||||
\section{ALSA tips}
|
\section{ALSA tips}
|
||||||
\index{ALSA}
|
\index{ALSA}
|
||||||
|
11
chap/X11.tex
11
chap/X11.tex
@ -1,7 +1,6 @@
|
|||||||
\chapter{X11}
|
\chapter{X11}
|
||||||
\label{chap:X11}\index{X11}
|
\label{chap:X11}\index{X11}
|
||||||
|
|
||||||
|
|
||||||
%-------------------------------------------------------------------
|
%-------------------------------------------------------------------
|
||||||
\section{Les fontes}
|
\section{Les fontes}
|
||||||
|
|
||||||
@ -117,16 +116,6 @@ C'est simple, non ?
|
|||||||
|
|
||||||
%-------------------------------------------------------------------
|
%-------------------------------------------------------------------
|
||||||
|
|
||||||
\section{Le Windowmanager}
|
|
||||||
|
|
||||||
Aka \textbf{WM}.
|
|
||||||
|
|
||||||
%
|
|
||||||
% https://jichu4n.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i/
|
|
||||||
%
|
|
||||||
|
|
||||||
%-------------------------------------------------------------------
|
|
||||||
|
|
||||||
\section{XCB}\index{XCB}
|
\section{XCB}\index{XCB}
|
||||||
|
|
||||||
Vous avez pratiqué la \textsl{Xlib} ? Avez-vous aimé ?
|
Vous avez pratiqué la \textsl{Xlib} ? Avez-vous aimé ?
|
||||||
|
@ -25,22 +25,6 @@ a voulu BigBlue\index{IBM}, régnait en maitre absolu le BIOS,
|
|||||||
Un bout de code minimaliste, bien rangé dans sa ROM, et disponible
|
Un bout de code minimaliste, bien rangé dans sa ROM, et disponible
|
||||||
dès la mise sous tension du bouzin.
|
dès la mise sous tension du bouzin.
|
||||||
|
|
||||||
% =========================================================
|
|
||||||
|
|
||||||
\section{PXE} \index{PXE} \label{PXE}
|
|
||||||
|
|
||||||
PXE est le sigle de \textsl{Pre-boot eXecution Environment}.
|
|
||||||
|
|
||||||
En gros, ça permet de démarrer un système stocké ailleur sur
|
|
||||||
le réseau, comme une image d'installation d'un Linux ou un
|
|
||||||
système de secours. Ce qui est vraiment pratique, car ça
|
|
||||||
évite la valse des clefs USB. Il nécessite la présence
|
|
||||||
d'un serveur dhcpd \index{dhcpd}.
|
|
||||||
|
|
||||||
% https://www.geoffray-levasseur.org/tutoriels-2/un-pxe-pour-les-unir-tous/
|
|
||||||
|
|
||||||
% =========================================================
|
|
||||||
|
|
||||||
\section{amd64}\index{amd64}
|
\section{amd64}\index{amd64}
|
||||||
|
|
||||||
Voir Grub, le bootloader.
|
Voir Grub, le bootloader.
|
||||||
@ -51,6 +35,7 @@ XXX\index{XXX}.
|
|||||||
|
|
||||||
\section{rc.local}
|
\section{rc.local}
|
||||||
|
|
||||||
|
|
||||||
L'exécution de ce script est la toute dernière étape du démarrage d'un
|
L'exécution de ce script est la toute dernière étape du démarrage d'un
|
||||||
système de la famille Unix\index{Unix} avant le passage au
|
système de la famille Unix\index{Unix} avant le passage au
|
||||||
mode multi-utilisateur.
|
mode multi-utilisateur.
|
||||||
|
@ -35,13 +35,6 @@ cryptiques pour moi. Donc, on y arrive.
|
|||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Ceci dit, une lecture attentive du code source\footnote{UTSL} permettra
|
|
||||||
de contourner ces petits désagréments, et de rédiger quelques exemples
|
|
||||||
d'utilisation amusants.
|
|
||||||
|
|
||||||
% package source
|
|
||||||
% http://deb.debian.org/debian/pool/main/w/wims/wims_4.17b+svn13454~dfsg1.orig.tar.gz
|
|
||||||
|
|
||||||
%====================================================================
|
%====================================================================
|
||||||
|
|
||||||
\section{Povray}\index{POVray}
|
\section{Povray}\index{POVray}
|
||||||
|
@ -131,14 +131,6 @@ sustain level pour finir.
|
|||||||
\subsection{Jouer des samples}
|
\subsection{Jouer des samples}
|
||||||
|
|
||||||
Oui, on peut. On peut même faire des choses assez fun.
|
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 :
|
|
||||||
|
|
||||||
\lstinputlisting{code/playsample.ck}
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
% ------------------------------------------------------
|
% ------------------------------------------------------
|
||||||
|
|
||||||
@ -150,15 +142,9 @@ Attention, une petite connaissance du protocole MIDI
|
|||||||
est nécessaire. Vous trouverez quelques explications
|
est nécessaire. Vous trouverez quelques explications
|
||||||
page \pageref{chap:MIDI}.
|
page \pageref{chap:MIDI}.
|
||||||
|
|
||||||
Le petit bout de code qui suit vous affiche les triplets
|
|
||||||
reçus en charabia numérique. Leur décriptage est laissé
|
|
||||||
en exercice à nos lecteurs.
|
|
||||||
|
|
||||||
\lstinputlisting{code/midibeep.ck}
|
\lstinputlisting{code/midibeep.ck}
|
||||||
|
|
||||||
Cet exemple est volontairement simple, voire même minimaliste,
|
|
||||||
afin de ne pas surcharger cet ouvrage. Mais je vous rappelle
|
|
||||||
que les exemples sur le site sont très instructifs.
|
|
||||||
|
|
||||||
% ------------------------------------------------------
|
% ------------------------------------------------------
|
||||||
|
|
||||||
@ -166,7 +152,6 @@ que les exemples sur le site sont très instructifs.
|
|||||||
|
|
||||||
OSC, Open Sound Control, a son chapitre dédié en page \pageref{chap:OSC}.
|
OSC, Open Sound Control, a son chapitre dédié en page \pageref{chap:OSC}.
|
||||||
Nous allons nous concentrer sur les aspects Chuck.
|
Nous allons nous concentrer sur les aspects Chuck.
|
||||||
J'ai bien une idée d'exemple, mais ce soir, c'est soirée "flemme".
|
|
||||||
|
|
||||||
% ------------------------------------------------------
|
% ------------------------------------------------------
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
\chapter{Les Intertubes}
|
\chapter{Les intertubes}
|
||||||
\label{chap:reseau} \index{Internet}
|
\label{chap:reseau} \index{Internet}
|
||||||
|
|
||||||
Ah, le grand Internet sauvage, il serait temps qu'on en parle un peu.
|
Ah, le grand Internet sauvage, il serait temps qu'on en parle un peu.
|
||||||
@ -176,10 +176,6 @@ Ces gadgets dialoguent entre eux par le protocole
|
|||||||
\footnote{C'est en page \pageref{chap:Bonjour} qu'on
|
\footnote{C'est en page \pageref{chap:Bonjour} qu'on
|
||||||
en parle vaguement}.
|
en parle vaguement}.
|
||||||
|
|
||||||
Mais en fait, non. Je n'ai plus les Minimad sous la main.
|
|
||||||
Il va falloir trouver un autre exemple, ou l'imaginer
|
|
||||||
nous-même.
|
|
||||||
|
|
||||||
% -------------------------------------------------------------
|
% -------------------------------------------------------------
|
||||||
|
|
||||||
\subsection{nmap}
|
\subsection{nmap}
|
||||||
@ -200,10 +196,6 @@ Comment scanner un /24 pour y découvrir les machines ?
|
|||||||
\section{netcat}
|
\section{netcat}
|
||||||
\index{netcat}
|
\index{netcat}
|
||||||
|
|
||||||
\textbf{Attention :} Il existe au moins deux variantes de netcat
|
|
||||||
en circulation, bien entendu avec des options et des
|
|
||||||
comportements différents.
|
|
||||||
|
|
||||||
\begin{quote}
|
\begin{quote}
|
||||||
The nc (or netcat) utility is used for just about anything under the sun
|
The nc (or netcat) utility is used for just about anything under the sun
|
||||||
involving TCP or UDP. It can open TCP connections, send UDP packets,
|
involving TCP or UDP. It can open TCP connections, send UDP packets,
|
||||||
@ -215,7 +207,6 @@ error messages onto standard error instead of sending them to standard
|
|||||||
output, as telnet(1) does with some.
|
output, as telnet(1) does with some.
|
||||||
\end{quote}
|
\end{quote}
|
||||||
|
|
||||||
Netcat was written by a guy we know as the Hobbit <hobbit@avian.org>.
|
|
||||||
|
|
||||||
% ==============================================================
|
% ==============================================================
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ if (!input.open(port)) {
|
|||||||
<<< "erreur open MIDI" >>>; me.exit();
|
<<< "erreur open MIDI" >>>; me.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
input => now;
|
input => now;
|
||||||
while ( input.recv(msg) ) {
|
while ( input.recv(msg) ) {
|
||||||
<<< msg.data1, msg.data2, msg.data3 >>>;
|
<<< msg.data1, msg.data2, msg.data3 >>>;
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
SndBuf buf => dac;
|
|
||||||
"sample.wav" => buf.read;
|
|
||||||
|
|
||||||
float srate, duration;
|
|
||||||
1 => buf.gain;
|
|
||||||
|
|
||||||
for ( 0.7=>srate; srate<1.8; 0.1 +=> srate) {
|
|
||||||
900 / srate => duration;
|
|
||||||
<<< "loop...", srate, duration >>>;
|
|
||||||
0 => buf.pos;
|
|
||||||
srate => buf.rate;
|
|
||||||
(duration)::ms => now;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user