From b0a682c849433e5c0fcd2a859c2c2248342db2ae Mon Sep 17 00:00:00 2001 From: tth Date: Sat, 30 Oct 2021 15:54:36 +0200 Subject: [PATCH] more blabla again --- chap/DNS.tex | 8 +++++++- chap/MIDI.tex | 32 ++++++++++++++++++++++++++++++++ chap/boot.tex | 17 ++++++++++++++++- chap/graphisme.tex | 7 +++++++ chap/modular.tex | 17 ++++++++++++++++- chap/reseau.tex | 11 ++++++++++- code/midibeep.ck | 2 +- code/playsample.ck | 14 ++++++++++++++ 8 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 code/playsample.ck diff --git a/chap/DNS.tex b/chap/DNS.tex index 4f997c9..878971b 100644 --- a/chap/DNS.tex +++ b/chap/DNS.tex @@ -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 % ------------------------------------------------------------ -\section{DHCP} \index{DHCP} +\section{DHCP} \index{DHCP} \index{dhcpd} \begin{quote} 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 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} \index{dnsmasq} diff --git a/chap/MIDI.tex b/chap/MIDI.tex index 91de61b..e8e2866 100644 --- a/chap/MIDI.tex +++ b/chap/MIDI.tex @@ -37,6 +37,9 @@ qui va générer le signal audio. % --------------------------------------------------------- \section{Outils de base} +Le sous-système ALSA vient avec quelques utiltaires bien pratique +dans un usage d'exploration. + \subsection{aseqdump} \index{aseqdump} @@ -51,8 +54,32 @@ tth@plop:~/Muzak/Samples$ aseqdump -l 0:0 System Timer 0:1 System Announce 14:0 Midi Through Midi Through Port-0 + 20:0 nanoKONTROL nanoKONTROL MIDI 1 \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} 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. \end{quote} +\subsection{pmidi} + +Jouer un fichier MIDI (aka \textsl{midifile}) au travers du +séquenceur ALSA. + % --------------------------------------------------------- \section{ALSA tips} \index{ALSA} diff --git a/chap/boot.tex b/chap/boot.tex index 5154c0a..c21d5ab 100644 --- a/chap/boot.tex +++ b/chap/boot.tex @@ -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 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} Voir Grub, le bootloader. @@ -35,7 +51,6 @@ XXX\index{XXX}. \section{rc.local} - 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 mode multi-utilisateur. diff --git a/chap/graphisme.tex b/chap/graphisme.tex index 4ad8886..8758604 100644 --- a/chap/graphisme.tex +++ b/chap/graphisme.tex @@ -35,6 +35,13 @@ cryptiques pour moi. Donc, on y arrive. \end{center} \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} diff --git a/chap/modular.tex b/chap/modular.tex index 3e75210..1b7ac96 100644 --- a/chap/modular.tex +++ b/chap/modular.tex @@ -131,6 +131,14 @@ sustain level pour finir. \subsection{Jouer des samples} 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 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} - +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}. Nous allons nous concentrer sur les aspects Chuck. +J'ai bien une idée d'exemple, mais ce soir, c'est soirée "flemme". % ------------------------------------------------------ diff --git a/chap/reseau.tex b/chap/reseau.tex index f24b4f8..140fdb1 100644 --- a/chap/reseau.tex +++ b/chap/reseau.tex @@ -1,4 +1,4 @@ -\chapter{Les intertubes} +\chapter{Les Intertubes} \label{chap:reseau} \index{Internet} 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 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} @@ -196,6 +200,10 @@ Comment scanner un /24 pour y découvrir les machines ? \section{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} 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, @@ -207,6 +215,7 @@ error messages onto standard error instead of sending them to standard output, as telnet(1) does with some. \end{quote} +Netcat was written by a guy we know as the Hobbit . % ============================================================== diff --git a/code/midibeep.ck b/code/midibeep.ck index ae3e249..7d35b1b 100644 --- a/code/midibeep.ck +++ b/code/midibeep.ck @@ -7,7 +7,7 @@ if (!input.open(port)) { <<< "erreur open MIDI" >>>; me.exit(); } -while (1) { +while (1) { input => now; while ( input.recv(msg) ) { <<< msg.data1, msg.data2, msg.data3 >>>; diff --git a/code/playsample.ck b/code/playsample.ck new file mode 100644 index 0000000..3b96934 --- /dev/null +++ b/code/playsample.ck @@ -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; +} +