Compare commits
2 Commits
25055fed70
...
7dba31d281
Author | SHA1 | Date | |
---|---|---|---|
|
7dba31d281 | ||
|
b0a682c849 |
@ -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}
|
\section{DHCP} \index{DHCP} \index{dhcpd}
|
||||||
|
|
||||||
\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,6 +120,12 @@ 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,6 +37,9 @@ 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}
|
||||||
|
|
||||||
@ -51,8 +54,32 @@ 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,
|
||||||
@ -67,6 +94,11 @@ 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,6 +1,7 @@
|
|||||||
\chapter{X11}
|
\chapter{X11}
|
||||||
\label{chap:X11}\index{X11}
|
\label{chap:X11}\index{X11}
|
||||||
|
|
||||||
|
|
||||||
%-------------------------------------------------------------------
|
%-------------------------------------------------------------------
|
||||||
\section{Les fontes}
|
\section{Les fontes}
|
||||||
|
|
||||||
@ -116,6 +117,16 @@ 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,6 +25,22 @@ 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.
|
||||||
@ -35,7 +51,6 @@ 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,6 +35,13 @@ 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,6 +131,14 @@ 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.
|
||||||
|
|
||||||
% ------------------------------------------------------
|
% ------------------------------------------------------
|
||||||
|
|
||||||
@ -142,9 +150,15 @@ 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.
|
||||||
|
|
||||||
% ------------------------------------------------------
|
% ------------------------------------------------------
|
||||||
|
|
||||||
@ -152,6 +166,7 @@ page \pageref{chap:MIDI}.
|
|||||||
|
|
||||||
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,6 +176,10 @@ 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}
|
||||||
@ -196,6 +200,10 @@ 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,
|
||||||
@ -207,6 +215,7 @@ 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 >>>;
|
||||||
|
14
code/playsample.ck
Normal file
14
code/playsample.ck
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
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