another big push

This commit is contained in:
tTh 2020-12-22 22:53:57 +01:00
parent 7722aef9d3
commit 2a7624eb75
14 changed files with 240 additions and 20 deletions

View File

@ -7,8 +7,8 @@
\section{hybrid} \section{hybrid}
\index{hybrid} \index{hybrid}
C'est le serveur utilisé par Smeuh. Une vrai galère à C'est le serveur anciennement utilisé par Smeuh. Il semble que
configurer. ce soit une vrai galère à configurer.
On se retrouve vite dans des situations critiques, du genre On se retrouve vite dans des situations critiques, du genre
un \#canal où il n'y a plus de @op, et donc, on ne peut un \#canal où il n'y a plus de @op, et donc, on ne peut
@ -42,3 +42,9 @@ pinpin0: çhârsèt ?
Client graphique bien efficace. Client graphique bien efficace.
% ============================================================== % ==============================================================
\section{Les "bots"}
Hello Dotanick.
% ==============================================================

View File

@ -5,7 +5,7 @@ Wikipedia :
\textsl{OSC est un format de transmission de données entre ordinateurs, \textsl{OSC est un format de transmission de données entre ordinateurs,
synthétiseurs, robots ou tout autre matériel ou logiciel compatible, synthétiseurs, robots ou tout autre matériel ou logiciel compatible,
conçu pour le contrôle en temps réel. Il utilise le réseau au travers conçu pour le contrôle en temps réel. Il utilise le réseau au travers
des protocoles UDP\index{UDP} ou TCP\index{OSC} et apporte des des protocoles UDP\index{UDP} ou TCP\index{TCP} et apporte des
améliorations entermes de rapidité et flexibilité par rapport améliorations entermes de rapidité et flexibilité par rapport
à l'ancienne norme MIDI\index{MIDI}\dots} à l'ancienne norme MIDI\index{MIDI}\dots}
@ -13,7 +13,7 @@ Actuellement, j'utilise (pour le C) \texttt{liblo}\index{liblo}
qui reste simple qui reste simple
à utiliser tout en permettant de descendre à un bas niveau. à utiliser tout en permettant de descendre à un bas niveau.
Cette bibliothèque est livrée avec deux outils que nous Cette bibliothèque est livrée avec deux outils que nous
allos voir maintenant. allons voir maintenant.
\section{oscdump \& oscsend} \section{oscdump \& oscsend}
\index{oscdump}\index{oscsend} \index{oscdump}\index{oscsend}
@ -36,7 +36,13 @@ tth@debian:~$
\section{Exemple de code} \section{Exemple de code}
TODO\index{TODO} Ecouter :
\lstinputlisting[language=c]{code/listen-osc.c}
Envoyer :
\lstinputlisting[language=c]{code/send-osc.c}
\section{Autres logiciels} \section{Autres logiciels}

39
chap/boot.tex Normal file
View File

@ -0,0 +1,39 @@
\chapter{boot}
Le boot (aka bootstrap) est le processus de démarrage d'un ordinateur
depuis la mise sous tension, jusque à l'arrivée du shell.
Il varie grandement selon l'architecture matérielle de la machine~:
\texttt{amd64} pour les pécés de tous les jours, ou bien
\texttt{ARM}\footnote{Acorn Risc Machine}\index{ARM} comme sur
le \textsl{Raspeberry Pi}.
\begin{quote}
\textbf{boot :}\footnote{http://www.catb.org/jargon/html/B/boot.html}
\textit{[techspeak; from by one's bootstraps]}
To load and initialize the
operating system on a machine. This usage is no longer jargon
(having passed into techspeak) but has given rise to some derivatives
that are still jargon.
\end{quote}
\section{amd64}\index{amd64}
Voir Grub, le bootloader.
\section{ARM}
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.
\textsl{Spécial dedikass to Fred Fermion}
Et dans ce contexte (la fin du boot), que peut-on faire à partir du
rc.local ?

View File

@ -98,7 +98,8 @@ language interpreter. gmic: GREYC's Magic for Image Computing.}
\index{XXX} \index{XXX}
Existe aussi en plugin pour Gimp\index{Gimp}. Existe aussi en plugin pour Gimp\index{Gimp} avec une interface
pleine de curseurs et de boutons.
% ------------------------------------------------------------------- % -------------------------------------------------------------------
@ -122,6 +123,8 @@ for ((y=0; y<250; y++)) {
\subsection{Questions} \subsection{Questions}
Comment faire un \textsl{resize} avec NetPBM ? Comment faire un \textsl{resize} avec NetPBM ?
Est-il nécessaire d'apprendre la bibliothèque de fonctions
\texttt{libnetpbm} ?
% ------------------------------------------------------------------- % -------------------------------------------------------------------
@ -133,11 +136,29 @@ 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
par des outils essentiels comme POVray\index{POVray}. par des outils essentiels comme POVray\index{POVray}.
Il serait bon de voir la \texttt{libpng} officielle.
pngcrush ? pngcrush ? optipng ?
\texttt{pngtopnm \$png | pnmtopng > \$goodpng} \texttt{pngtopnm \$png | pnmtopng > \$goodpng}
% -------------------------------------------------------------------
\section{Tag Image File Format} \index{TIFF} \label{TIFF}
\begin{quote}
Yes, but tiffcp is by far the most significant case. And perhaps one of the
most used of the tools. I may not be impartial on this, though :-) because I
use it heavily.
\end{quote}
\begin{verbatim}
tiffcp combines one or more files created according to the Tag Image
File Format, Revision 6.0 into a single TIFF file. Because the output
file may be compressed using a different algorithm than the input
files, tiffcp is most often used to convert between different compres
sion schemes.
\end{verbatim}

View File

@ -2,10 +2,20 @@
\index{man} \index{man}
\label{chap:manpages} \label{chap:manpages}
Voir \texttt{roff}\index{roff} en page \pageref{roff}.
man is the system's manual pager. Each page argument given to man is
normally the name of a program, utility or function. The manual page
associated with each of these arguments is then found and displayed. A
section, if provided, will direct man to look only in that section of
the manual. The default action is to search in all of the available
sections following a pre-defined order ("1 n l 8 3 2 3posix 3pm 3perl
3am 5 4 9 6 7" by default, unless overridden by the SECTION directive
in /etc/manpath.config), and to show only the first page found, even if
page exists in several sections.
\section{Un exemple ?} \section{Un exemple ?}
XXX\index{XXX} XXX\index{XXX}
Voir \texttt{roff}\index{roff} en page \pageref{roff}.

21
chap/print.tex Normal file
View File

@ -0,0 +1,21 @@
\chapter{\texttt{lp0 on fire!}}
L'impression sour Linux semble avoir plusieurs personnalités.
La chaine logicielle mise en œuvre est parfois étonnament
complexe, et ls système par defaut, \texttt{CUPS}, se contrôle
par une interface Web.
\section{CUPS} \index{CUPS}
\section{Coté matériel}
\section{Pretty printers}.

View File

@ -44,6 +44,27 @@ arecord -D plughw:CARD=Snowball,DEV=0 -v -r 22050 foo.wav
arecord -D plughw:CARD=H4,DEV=0 -v -c 2 -f S16_LE -r 44100 foo.wav arecord -D plughw:CARD=H4,DEV=0 -v -c 2 -f S16_LE -r 44100 foo.wav
\end{verbatim} \end{verbatim}
\subsection{Du code...}
\begin{verbatim}
int
main()
{float f
;char c;int
d,o;while(scanf(
"%d%c%d ",&d,&c,&o)
>0){c&=31;for(f=!(c>>4)*55,c=(c*8/5+8)%12+o*
12-24;c--;f*=1.0595);
for(d=16e3/d;d--;
putchar(d*f
*.032))
;}}
\end{verbatim}
https://zserge.com/posts/etude-in-c/
https://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
\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
@ -119,8 +140,6 @@ Elle supporte une grande variété de formats.
\lstinputlisting[language=C]{code/ao_example.c} \lstinputlisting[language=C]{code/ao_example.c}
%------------------------------------------------------------------ %------------------------------------------------------------------
\section{Ladspa} \section{Ladspa}
@ -183,8 +202,13 @@ clipping and to normalise the audio}.
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
de \texttt{--combine merge}. de \texttt{--combine merge}.
Question en attente : comment combiner huit pistes monophoniques Dupliquer
en un seul fichier ? la piste d'un fichier mono pour obtenir un fichier stéréo :
"\texttt{sox - -t wav -b 16 - remix 1 1}" avec le premier tiret
qui dit de prendre l'entrée standard
Questions en attente : comment combiner huit pistes monophoniques
en un seul fichier contenant ces 8 pistes ?
%------------------------------------------------------------------ %------------------------------------------------------------------
@ -192,7 +216,8 @@ en un seul fichier ?
\section{espeak} \section{espeak}
\index{espeak} \index{espeak}
Logiciel de synthèse vocale. Logiciel de synthèse vocale. Mais c'est pas comme un
spo256al2, hélas.
\begin{verbatim} \begin{verbatim}
tth@plop:~/RADIO$ espeak --voices=fr tth@plop:~/RADIO$ espeak --voices=fr
@ -201,12 +226,25 @@ Pty Language Age/Gender VoiceName File Other Langs
7 fr M french-mbrola-1 mb/mb-fr1 7 fr M french-mbrola-1 mb/mb-fr1
7 fr F french-mbrola-4 mb/mb-fr4 7 fr F french-mbrola-4 mb/mb-fr4
5 fr-be M french (Belgium) fr-be 5 fr-be M french (Belgium) fr-be
tth@plop:~/RADIO$ cat hello.txt | espeak
\end{verbatim} \end{verbatim}
Comme à l'accoutumée, nous allons chercher un contexte d'utilisation
futile et réjouissant. Le texte qui sera « parlé » sera la sortie
de la commande \texttt{ddate}\index{ddate}%
\footnote{outil indispensable de la vie numérique
\texttt{http://www.subgenius.com/}}, avec une voix
d'outre-monde, sur un seul canal, ce que nous pouvons entendre avec
"\texttt{echo \$(ddate) | espeak-ng}".
%------------------------------------------------------------------ %------------------------------------------------------------------
\section{ecasound} \index{ecasound}
%------------------------------------------------------------------
\section{Pour finir...} \section{Pour finir...}
En conclusion, le son avec Linux, c'est un peu la grande foire. En conclusion, le son avec Linux, c'est un peu la grande foire.

View File

@ -53,10 +53,11 @@ délicat à comprendre au premier abord~:
\texttt{https://www.liquidsoap.info/} \texttt{https://www.liquidsoap.info/}
\begin{quote} \begin{quote}
Liquidsoap is an extensible and flexible audio stream generator, mainly Liquidsoap is an extensible and flexible audio stream generator,
used for streaming to a shoutcast/icecast server. mainly used for streaming to a shoutcast/icecast server.
It is also possible It is also possible to output in a file, to speakers or as
to output in a file, to speakers or as raw PCM stream. raw PCM stream.
liquidsoap can liquidsoap can
perform any audio processing, mixing streams together, perform any audio processing, mixing streams together,
applying filters, generating sound procedurally, applying filters, generating sound procedurally,
@ -159,6 +160,8 @@ Il est également possible, avec liquidsoap, d'interrompre la
diffusion d'une playlist à partir d'une autre source diffusion d'une playlist à partir d'une autre source
(fichier ou entrée audio), eventuellement externe. (fichier ou entrée audio), eventuellement externe.
\lstinputlisting{code/takeover.liq}
\subsection{trucs divers} \subsection{trucs divers}
Que signifie ce message : \textbf{That source is fallible.} ? Que signifie ce message : \textbf{That source is fallible.} ?
@ -197,6 +200,11 @@ XXX\index{XXX} que nous pouvons mettre dans le XML.
le microphone USB \textsc{Snowball} utilisé dans cet exemple, le microphone USB \textsc{Snowball} utilisé dans cet exemple,
il NE faut PAS mettre \textsl{downmix} à 1\dots il NE faut PAS mettre \textsl{downmix} à 1\dots
Et si vous souhaitez dupliquer une entrée à un seul canal
(genre un micro usb) por obtenir une sortie stéréo, ça ne
semble pas possible fin 2020\index{2020}. Il serait temps
de songer à écrire un patch\index{patch}.
%------------------------------------------------------------- %-------------------------------------------------------------
\subsection{Ezstream} \subsection{Ezstream}
@ -222,6 +230,15 @@ interface (e.g. sound card), encodes it and sends it to a streaming server.
\subsection{VLC} \subsection{VLC}
\index{vlc} \index{vlc}
VLC est le « cône de chantier » du multimédia.
%-------------------------------------------------------------
\subsection{butt}
\index{butt}
Du clickaconvi qui plante en X remote ;( mais sinon une
interface graphique simple et facile d'emploi.
%------------------------------------------------------------- %-------------------------------------------------------------
\subsection{idjc} \subsection{idjc}
@ -239,12 +256,29 @@ with a crossfader, a jingle player, microphone signal processing
Cool Mic \texttt{https://coolmic.net/} ? Cool Mic \texttt{https://coolmic.net/} ?
Mais il faut avoir quelques connaissances en \textsc{modernophone}
pour arriver à tenter de comprendre pouquoi ça ne fonctionne pas,
alors que tout semble correct.
%==================================================================== %====================================================================
\section{libshout}\index{libshout}\label{libshout} \section{libshout}\index{libshout}\label{libshout}
Mais c'est quoi ?\index{XXX} Libshout c'est quoi ? Ah, chers amis de la radio en ligne,
c'est une porte
ouverte facilitant l'accès en direction du monde sonore extérieur,
comme le précise clairement sa documentation~:
\begin{quote}
Libshout is a library for communicating with and sending data to an
icecast server. It handles the socket connection, the timing of the
data, and prevents bad data from getting to the icecast server.
\end{quote}
\lstinputlisting[language=c]{code/microcast.c}
%==================================================================== %====================================================================

5
code/d-espeak.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
TEXTE=$(ddate)
echo $TEXTE | espeak-ng

1
code/listen-osc.c Normal file
View File

@ -0,0 +1 @@
/* LISTEN OSC */

16
code/microcast.c Normal file
View File

@ -0,0 +1,16 @@
/*
* microcast.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <shout/shout.h>
int main(int argc, char *argv[])
{
return 1;
}

1
code/send-osc.c Normal file
View File

@ -0,0 +1 @@
/* SEND OSC */

19
code/takeover.liq Normal file
View File

@ -0,0 +1,19 @@
#
# TAKEOVER.LIQ
#
default = single("files/changer-monde.ogg")
liste = playlist(mode="random", "playlist.txt")
#
# point d'entree pour le live
#
set("harbor.bind_addr", "localhost")
live = input.harbor("input", port=8088,
password="thegreatquux")
radio = fallback( track_sensitive=false,
[live, liste, default] )
output.icecast( %vorbis,
host = "porno.mixart-myrys.org",
port = 8000,
password = "XXXXXXXXXXX",
mount = "/changer-monde",
radio)

View File

@ -85,8 +85,10 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
% peut-être trouver un ordre des chapitres plus logique ? % peut-être trouver un ordre des chapitres plus logique ?
% %
% \input{chap/shell} \input{chap/boot}
\input{chap/shell}
% \input{chap/editeurs} % \input{chap/editeurs}
\input{chap/manpages}
\input{chap/son} \input{chap/son}
\input{chap/image} \input{chap/image}
\input{chap/reseau} \input{chap/reseau}
@ -102,6 +104,7 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
\input{chap/video} \input{chap/video}
% \input{chap/graphisme} % \input{chap/graphisme}
\input{chap/gnuplot} \input{chap/gnuplot}
\input{chap/print}
\input{chap/webcam} \input{chap/webcam}
% \input{chap/SCSI} % \input{chap/SCSI}
\input{chap/X11} \input{chap/X11}