
Installation digitale et visuelle à partir d’un portrait sonore
(Objet Conversationnel)
Conception-création : Guykayser
Réalisation avec Gérard Paresys
Coordination du projet : Thomas Chrétien
2 juin 2020
Guy: Après les hauteurs d’eau: Les piles de livres
5 juin 2020
cartocentre_modif10_GP.zip (4Mo)
Lecture d'un son.
Envelope = EnvelopeFollower du son = Détection de l’énergie du son
Affichage de Envelope.
map(LimniHauteur[IndiceLimni], LimniMini, LimniMaxi, 25000, 60000)
remplacé par:
map(Envelope, 0, 1, 25000, 60000)
Envelope compris entre 0 et 1
cartocentre_modif11_GP.zip (4Mo)
Difficile de voir dans cartocentre_modif10_GP les variations dans l'image provoquées par l'Envelope du son.
Avec l’enveloppe, ça bouge + vite.
Un essai de rendre ça + sensible dans cartocentre_modif11_GP
Je contrôle la taille du carré central ...
9 juin 2020
Logiciels payants de transcription:
Happy Scribe
Transcription au format:
Plain Text (.txt)
Microsoft Word (.doc)
PDF (.pdf)
Interactive HTML (.html)
JSON (.json)
MAXQDA
SubRip (.srt)
WebVTT (.vtt)
EBU-format (.stl)
Avid Markers (.txt)
Premiere Markers
Final Cut Pro
AmberScript
10 juin 2020




10 juin 2020
12 juin 2020
cartocentre_modif12.zip (4.3Mo)
cartocentre_modif12_GP
Ça intègre la lecture et la détection sonore de cartocentre_modif11_GP
& cartocentre_modif10_GP et les ajouts dans cartocentre_modif9_GP.
En plus:
Suppression limniseul2020_1.pde
Nettoyage code
conversationlabo.mp3
Suppression table qr[i] parce que qr[i] = grosqr toujours quelque soit i
Touche 7 -> random sur nbdecourbeDivision
Dé-commenter lignes 177 et 178 pour voir agir l’enveloppe du son sur la taille de la zone modifiée de l'image.
14 juin 2020
Le json les locuteurs nettoyé.e.s par Thomas:
15 juin 2020
De: Thomas Chrétien
Objet: Rép : Transcription avec Happyscribe
Date: 15 juin 2020 16:07:15 UTC+2
Happy Scribe
16 juin 2020
cartocentre_modif13_GP.zip (4.3Mo)
Avec inversion du sens des déplacements
pour l'instant avec les 4 flèches du clavier
// Taper Fleche Haut -> Deplacement Haut
// Taper Fleche Bas -> Deplacement Bas
// Taper Fleche Gauche -> Deplacement Gauche
// Taper Fleche Droite -> Deplacement Droit
Il y a 3 états:
Déplacement Haut - Stop - Déplacement Bas
et
Déplacement Gauche - Stop - Déplacement Droit
1 juillet 2020 Pour Olivier Baude
cartocentre_modif14_GP.app.zip (83Mo)
Une application pour MacOSX: cartocentre_modif14_GP.app
avec quelques touches utiles:
R -> Nouvelle image
S -> Sauve l’écran
4 Flèches -> Change le sens de l'effet
escape -> Quitte
Ne pas oublier de "dé-zipper" avant de lancer.
testée:
sous MacOSX 10.15 Catalina
sous MacOSX 10.13 High Sierra
sous MacOSX 10.11 El Capitan
Au premier lancement, au besoin aller dans:
menu Pomme -> Préférences Systèmes... -> Sécurité et confidentialité -> Général ->
Autoriser l'application et cliquer "Ouvrir quand même"
J'ai d'abord fait l'App sous MacOS 10.13
Mais l'appli plantait sous MacOS 10.15
J'ai redémarré mon Mac sous MacOS 10.15, installé Processing dernière version 3.5.4 et minim
mais la c'est Processing qui plantait quand j'exportais pour faire l'Appli
c'est un bug du 3.5.4 lié au P3D d’après un forum de discussion.
j'ai installé Processing version 3.5.3 et exporté l'Appli
c'est celle-la qui fonctionne sous les MacOS de 10.11 à 10.15
cartocentre_modif14_GP.zip (4.3Mo)
2 juillet 2020
Conversations_excentrees_Descriptif_visuel_textuel.pdf

22 juillet 2020
Guy:
Gerard:
JSON c'est JavaScript.
JavaScript n'a rien à voir avec Java.
Processing c'est Java
L'article ne parle pas de la transformation inverse: .json -> .textgrid
L'article dit: JSON is text mais textgrid aussi! et le textgrid est plus lisible et plus compact.
L'article dit: "Before converting textgrid to JSON we need to convert
textgrid into CSV. After that we can convert CSV into JSON."
C'est toujours le même bazar!
et la conversion inverse?
Voir:
textgrid-parser
Le "Sample output", le JSON produit est tres eloigné du JSON avec lequel on travaillait avec p5:
{
"file_type": "ooTextFile",
"xmin": "0",
"xmax": "2045.144149659864",
"size": 2,
"tiers": [
{
"idx": "1",
"class": "IntervalTier",
"name": "utterances",
"xmin": "0",
"xmax": "2045.144149659864",
"size": "5",
"items": [
{
"idx": "1",
"xmin": "0",
"xmax": "2041.4217474125382",
"text": ""
},
{
"idx": "2",
"xmin": "2041.4217474125382",
"xmax": "2041.968276643991",
"text": "this"
},
ONSBJ_alexei.json:
{
"Trans": [
{
"FIELD2": 0,
"FIELD3": 0.7589333956,
"FIELD4": "on ne se"
},
{
"FIELD2": 0.7589333956,
"FIELD3": 1.5899678857,
"FIELD4": "baigne jamais"
},
{
"FIELD2": 1.5899678857,
"FIELD3": 2.3090865562,
"FIELD4": "deux fois"
},
{
"FIELD2": 2.3090865562,
"FIELD3": 2.8496161529,
"FIELD4": "dans la même"
},
{
"FIELD2": 2.8496161529,
"FIELD3": 3.83,
"FIELD4": "rivière"
}
],
"Phonetization": [
Il n'y a pas 1 format JSON mais plein de format...
Il y a un seul format .textgrid
ONSBJ_alexei-merge.TextGrid
File type = "ooTextFile"
Object class = "TextGrid"
xmin = 0
xmax = 3.83
tiers? <exists>
size = 5
item []:
item [1]:
class = "IntervalTier"
name = "Trans"
xmin = 0
xmax = 3.83
intervals: size = 5
intervals [1]:
xmin = 0
xmax = 0.7589333956
text = "on ne se"
intervals [2]:
xmin = 0.7589333956
xmax = 1.5899678857
text = "baigne jamais"
intervals [3]:
xmin = 1.5899678857
xmax = 2.3090865562
text = "deux fois"
intervals [4]:
xmin = 2.3090865562
xmax = 2.8496161529
text = "dans la même"
intervals [5]:
xmin = 2.8496161529
xmax = 3.83
text = "rivière"
item [2]:
class = "IntervalTier"
name = "Phonetization"
xmin = 0
xmax = 3.83
intervals: size = 5
intervals [1]:
xmin = 0
xmax = 0.7589333956
text = "o~|o~-n n-eu|n s-eu|s"
23 juillet 2020
Sketch à la Trous de mémoire en Processing 1.5 comme
TDM28dGGguy3.zip
Impossible à exécuter en Processing 2 ou 3 parce qu'ils utilisent la library com.nootropic.processing.layers
qui n'a jamais été portée en Processing 2 ou 3.
TDM28dGGguy3FS.mov
Problème également de l'ouverture des fichiers .xml dont la library a totalement changée.
Voir:
Chronologie des sketches Processing
25 juillet 2020
TextGrid4: Sketch Processing qui ouvre un fichier .TextGrid et l'affiche en synchro avec la lecture Audio.
TextGrid_file_formats.html
Le fichier .TextGrid doit-être encodé UTF-8.
Bizarre: le fichier 16rondatipica_X.TextGrid de 2012 ne l'était pas.
TextGrid4.zip OK Processing 2.2.1 MacOS
OK Processing 3.5.4 MacOS
OK Processing 3.5.3 Raspberry Pi OS (Raspbian 10 buster)
OK Processing 3.5.3 Window
TextGrid4 sur GitHub
TextGrid2:
Sketch Processing qui ouvre un fichier .TextGrid et affiche les seuls éléments qui sont décryptés.
Ces 2 sketches pour s'affranchir de l'xml et du json.
7 août 2020
Je viens de constater que Processing 1.5 est compatible Windows 7.
Sur un PC sous Windows 7, j'ai pu lancer les vieux sketches de Trous de mémoire!
A vérifier sous Windows 10
Voir:
Chronologie des sketches Processing
14 octobre 2020



Schema-Raspberry4
Schema-Raspberry4.pdf
Schema-Raspberry4.odg

Chaque "Totem" est relié à 2 autres par des rallonges secteur.
3m RS Code 2427520 7,85€ TTC
ou 5m RS Code 2427558 8,24€ TTC

et une triplite Exemple:
Boulanger 5,99€ TTC (x3)
18 octobre 2020
19 octobre 2020
20 octobre 2020
Raspberry
Désactiver la mise en veille de l’écran?
21 octobre 2020
23 octobre 2020
0 ------ Speaker: S1, start_total:0.48 end_total:5.42
Y a un Mic-Mac et start:0.48 end:0.74
ça start:0.88 end:1.04
permet start:1.14 end:1.38
de start:1.38 end:1.56
déréférencer start:1.8 end:2.34
son start:2.34 end:2.52
site start:2.52 end:2.91
sur start:3.21 end:3.42
des start:3.42 end:3.51
sites start:3.51 end:3.84
qui start:3.93 end:4.23
sont start:4.5 end:4.72
un start:4.72 end:4.74
peu start:4.74 end:4.89
bizarres start:4.89 end:5.19
1 ------ Speaker: S2, start_total:5.42 end_total:13.02
D'accord ok start:5.42 end:5.63
ah mais c'est start:6.91 end:7.06
bien start:7.14 end:7.35
ça ça doit être vachement bien. start:7.38 end:7.65
Et start:8.9 end:9.07
...
Reste à lire l'Audio en synchro.
Et à répartir l'Audio selon le locuteur.
30 octobre 2020
Install Raspberry Pi OS (previously called Raspbian) sur Raspberry Pi 4 Model B ...
Voir site Raspberry:
Installing operating system images
"This resource explains how to install
a Raspberry Pi operating system image on an SD card. You will need
another computer with an SD card reader to install the image."
Raspberry Pi OS (previously called Raspbian)Avec un Mac:
Charger:
imager_1.4.dmg (18Mo)
Installer imager_1.4 dans le dossier Applications du Mac
Lancer Raspberry Pi Imager.app
- Operating System: Raspberry Pi OS FULL (32-bit) A port of Debian with desktop and recommended applications
- SD Card: Mass Storage device Media... (Carte SD 32GB livrée avec Raspberry)
WRITE
Raspberry Pi OS est installé sur la SD Card
Placer la SD Card dans la Raspberry.
Connecter la Raspberry:
- Clavier USB
- Souris USB
- Alimentation secteur USB C
- Ecran HDMI (Ne pas utiliser pour l'instant l'écran LCD 7 Pouces tactile
Allumer la Raspberry et configurer:
- Country France
- Language French
- Timezone Paris
- Use English language
- Use US keyboard
- p
- ...
- Update Software... Attendre... > 60min
- Restart
Quelle est la version du système installée?
Terminal:
$ lsb_release -a
Description: Raspbian GNU/Linux 10 (buster)
Empêcher la mise en veille de l'écran
Installer un économiseur d'écran:
Terminal:
$ sudo apt-get update
$ sudo apt-get install xscreensaver
Menu Raspberry -> Preferences -> Screensaver -> Display Modes -> Mode: Disable Screen Saver
Installer Processing
Voir:
https://pi.processing.org/download/
Terminal:
$ curl https://processing.org/download/install-arm.sh | sudo sh
...
Installing in usr/local...
Processing 3.5.3 est installé dans: usr/local/lib/Processing-3.5.3/processing
Installer library Minim
Installer l'
ecran LCD 7 Pouces Tactile 1024x600 HDMI "7.0 inch HDMI Display_A06"
Audio:
Connection d'un casque sur la prise mini-jack de la Raspberry.
Barre de menu -> Clic droit sur le Haut-parleur "Volume Control" -> Analog -> ok le son fonctionne
OK avec VLC Media Player
OK avec Web Browser
OK avec les 2 en même temps
OK avec Processing TextGrid4.pde ou /minim/examples/Basics/DrawWaveformAndLevel
mais pas Processing avec un autre logiciel en même temps
La prise mini-jack de l'écran 7 pouces ne fonctionne pas ("Volume Control" en Analog ou en HDMI)
Configurer la Raspberry:
Terminal:
$ sudo raspi-config
...
Processing
Lancement cartocentre_modif10_GP.pde
* failed to add service - already in use?
Could not run the sketch (Target VM failed to initialize).
For more information, read revisions.txt and Help → Troubleshooting.
cartocentre_modif11_GP.pde 12 13 14 error idem
loadJSONArray2
TextGrid2
TextGrid4 OK
minim/examples/Basics/DrawWaveformAndLevel OK
Cause: size(1024, 600, P3D);
Solution 1: size(1024, 600);
Solution 2: Terminal:
$ sudo raspi-config
-> Advanced Options
-> GL Driver
-> GL (fake KMS) OpenGL desktop driver with fake KMS
(au lieu de Legacy Original non-GL desktop driver)
Redémarrer
4 novembre 2020
15 novembre 2020
Conversation1.zip
OK Processing 3.5.4 + library minim + MacOS
OK Processing 3.5.3 + library minim + Raspberry Pi OS (Raspbian 10 buster)
Ouvre un fichier Audio .mp3 et le fichier correspondant de transcription .json
Lit les 2 fichiers synchronisés
Affiche les changements de Speakers
L'affichage du texte permet de s'y retrouver pendant la lecture du fichier.
Le fichier .json a été généré avec
Happy Scribe
20 novembre 2020
Raspberry Pi 4 & Wifi:
"Le Wifi est le successeur de celui du
Pi 3. On retrouve l’antenne en forme de triangle dessinée sur le
circuit imprimé à proximité du circuit WiFi. Le Raspberry Pi fonctionne
sur 2,4GHz et sur 5GHz en 802.11 g/g/n/ac et en Bluetooth 5.0 et BLE."
framboise314.fr
25 novembre 2020
Ecran 10" 1280 x 800 pixels tactile pour Raspberry Pi chez Reichelt:
RPI LCD 10.1 IPS HDMI
Livraison prévue à partir du : 01.03.2021
27 novembre 2020 A Chalette
Attention haut-parleur
Les Mini
Haut-Parleurs USB D-05A achetés récemment chez Kubii sont mono.
Seul le canal gauche est diffusé dans les 2 hauts-parleurs.
Puissance annoncée: 5W
Bleu
6,95 € TTC
Les
Mini Haut-Parleurs USB AL-101 achetés précedemment chez Kubii sont bien Stereo et de meilleure qualité.
Puissance annoncée: 1.25W * 2
Jaune
6,90 € TTC
28 novembre 2020
cartocentre_16.zip = cartocentre_modif13_GP avec 3 options quand on touche ou clic l'écran:

// OK Processing 3.5.4 + MacOS
// OK Processing 3.5.3 + Raspberry Pi OS (Raspbian 10 buster)
4 décembre 2020

OK Processing 3.5.3 + Raspberry Pi OS (Raspbian 10 buster)
Le dossier cartocentre_17 doit être placé sur le bureau de la Raspberry
ATTENTION:
ShutDown Computer éteint la Raspberry sans message d'alerte!
ShutDown Computer exécute /home/pi/Desktop/cartocentre_17/ScriptShutDownLinux.sh
Le script ScriptShutDownLinux.sh:
#!/bin/bash
shutdown -h now
doit être exécutable:
Terminal:
$ chmod +x /home/pi/Desktop/cartocentre_17/ScriptShutDownLinux.sh
ShutDown Computer ne fonctionne pas sous MacOSX (mot de passe exigé)
10 décembre 2020
Gerard, un texte de présentation:
10 totems, 10 voix, 10 écrans.
La polyphonie sonore des 10 voix diffusées par les 10 totems des
"Conversations excentrées" est confrontée à 10 images photographiques
mises en mouvement au niveau de leur forme et de leur matière sur 10
écrans.
Le logiciel, imaginé spécifiquement pour cette installation, travaille
en temps réel l'image numérique au niveau de chaque pixel. La couleur,
la saturation, la luminosité est d'abord analysée, comparée avec celles
d'autres pixels proches ou lointains. Puis l'image est transformée par
regroupement de pixels, translation haut/bas ou gauche/droite, rotation
de pixels etc...
On peut voir des zones de l'image se pulvériser, se fluidifier, s'agiter, se calmer.
Des lignes, des directions qui n'existaient pas, apparaissent.
Des lignes existantes, au contraire, s'accentuent ou se dissolvent.
Tous ces mouvements, leur amplitude, leur vitesse, leur accélération,
leur direction évoluent progressivement, durant le déroulement des
conversations, en liaison avec la lecture synchronisée d'un fichier de
"data".
Les data peuvent être l'enregistrement jour après jour de la hauteur
d'eau en cm de la Loire à Saumur pendant un siècle ou l'énergie en
décibel des voix seconde après seconde lors d'une conversation animée
de 12 minutes.
L'installation contient donc 3 types de données numériques: fichiers audio, fichiers image et fichiers de data.
La déambulation du spectateur dans cette forêt de totems lui fait
percevoir de manière toujours changeante la polyphonie sonore des 10
voix et la polyphonie visuelle des 10 images sur les 10 écrans.
5 janvier 2021
SoundFilter de Google
Audio samples for the paper "One-shot conditional audio filtering of arbitrary sounds"
->
FSD50k dataset:
"an open dataset of human-labeled sound
events containing 51,197 Freesound clips distributed in 200 classes
drawn from the AudioSet Ontology"
->
AudioSet Ontology:
-> Human voice
-> Speech
-> 1010480 annotations = 2793.5 hours !!!
6 janvier 2021
Conversation3.zip
OK Processing 3.5.4 + library minim + MacOS
OK Processing 3.5.3 + library minim + Raspberry Pi OS (Raspbian 10 buster)
Ouvre un fichier Audio .mp3 et le fichier correspondant de transcription .json
Lit les 2 fichiers synchronisés
Le fichier .json a été généré avec Happy Scribe
Speaker S1 entendu a gauche
Speaker S2 entendu a droite
Speaker S3 & S4 entendu au centre
7 janvier 2021
17 février 2021
Test haut-parleur
Test excitateur électrodynamique
27 mars 2021
J'ai monté dans une mini enceinte un Visaton FRS 5 8Ohm 5W Diamètre 52mm
C'est mieux que les
Mini Haut-Parleurs USB RA264 Kubii:
ou que les
Mini Haut-Parleurs D-05A Kubii:
mais ceux-là ne seront bientôt plus dispo
C'est évidemment beaucoup + cher, mais mieux: les voix sont plus claires, distinctes, il y a moins de distorsion dans le grave.
Ça vaut le prix.
Essais avec Ampli + Alim FOSI:
6 avril 2021
TextGrid5: Sketch Processing qui ouvre un fichier .TextGrid et l'affiche en synchro avec la lecture Audio.
idem TextGrid4 sans utiliser la class Table pour être compatible Processing 1.5
TextGrid5.zip OK Processing 1.5.1 Windows 10
OK Processing 2
OK Processing 3
25 avril 2021
Question: Refaire sketch Processing Conversation3 qui ouvre directement un .TextGrid au lieu d'un .json?
26 avril 2021
Conversations excentrées:
28 avril 2021

Reçu Amazon écran:
Waveshare Raspberry Pi 10.1" HDMI LCD 1024 × 600
IPS Tactile résistif LCD
Connexion directe avec Raspberry Pi 4B/3B+/3A+/3B/2B/1B+/1A+
Site Waveshare -> 10.1inch-hdmi-lcd -> Doc
10.1inch HDMI LCD (New RTD2660 Version) User Manual
10.1inch_HDMI_LCD_User_Manual_EN.pdf
Compatible and Direct-connect with any revision of Raspberry Pi
Raspbian/Ubuntu Drivers are provided (works with your own Raspbian/Ubuntu directly)
OSD menu, supports brightness/contrast ratio adjustable manually.
Hardware Connection
1 Plug the LCD to your Raspberry Pi:
There are 40 pins on Raspberry Pi but
only 26 pins on the LCD, so you should pay attention to connecting the
pins to your Pi accordingly.
2 Connect the HDMI Connector to both the HDMI interfaces on the LCD and the Pi.
3 Turn on the "backlight" switch on the back of the LCD.
OK l'écran fonctionne mais pas le tactile.
You can enable the touch in two ways:
Method 1. install driver to your Raspbian/Ubuntu Mate OS.
Method 2. use the Ready-to-use image file of which LCD driver was pre-installed.
...
C'est une vieille technologie (resistive) qui utilise un stylet.
Il y a 2 autres écrans Waveshare 10.1" 1024 × 600 à technologie capacitive:
18 mai 2021

cartocentre_18.zip avec StopEnTouchant
A partir de cartocentre_modif13_GK_GP et de cartocentre_17
Avec Attente après affichage nouvelle image:
Ligne 60: int Attente = 3000; // ms
Ligne 59 -> variable StopEnTouchant (= true/false) qui
affiche ou pas l’écran noir et les 4 options quand on clic ou touche.
21 mai 2021
Présentation à la Médiathèque Gambetta à Orléans. 10h30 à 11h30
Retrouvez la Capsule conversationnelle
Médiathèque Saint Marceau 2, rue des Roses - 45100 Orléans
Vendredi 28 et samedi 29 mai 14h-18h
Médiathèque Blossières
Mardi 1er juin 10h-12h et mercredi 2 juin 14h-18h
Médiathèque Madeleine
Jeudi 3 juin 14-18h et samedi 5 juin 10h-12h et 14h-17h
Médiathèque M-Genevoix
Jeudi 10, vendredi 11 et samedi 12 juin 14h-18h
Médiathèque Argonne
Mercredi 16 juin 10h-12h et 14h-18h et jeudi 17 juin 14h-18h
"En entrant dans la Capsule conversationnelle, les habitants livrent
des voix uniques et libres qui participeront à composer un riche
portait des langues au quotidien. Le coordinateur du projet accueille
les participants et leur propose de prolonger dans la capsule la
discussion qu’ils avaient entamé à l’extérieur... ou bien sûr d'en
démarrer de nouvelles !
Dans le respect des règles sanitaires."
"Associant Arts numériques et recherche en Sciences du langage, les
Conversations excentrées s'inscrivent dans le projet national de
Laboratoire Mobile des Langues. A partir du portrait sonore des
médiathèques de quartier d’Orléans mais aussi de cinq communes du
Montargois (dont une partie de Points lecture), Guykayser proposera un
dispositif visuel et sonore s’appuyant sur ces lieux de vie et la
parole qui y circule. "
"Cela prendra la forme d'une exposition prévue à l'automne 2021 à la
médiathèque Gambetta (Orléans centre), la médiathèque Maurice-Genevoix
(Orléans La Source) ainsi qu'à celle de Montargis."
28 mai .. 15 juillet 2021
3 août 2021
TextGrid6: Sketch Processing qui ouvre un fichier .TextGrid et l'affiche en synchro avec la lecture Audio.
idem TextGrid5 avec Pause
TextGrid6.zip OK Processing 1.5.1 Windows 10
OK Processing 2
OK Processing 3
4 août 2021
Sketch Processing 3:
ConvEx2.zip = cartocentre_18 + Conversation3
// Noms des fichiers (exemples):
// l1_c3.mp3 Lieu 1 Conversation 3 Audio
// l12_c1.mp3 Lieu 12 Conversation 1 Audio
// l12_c1.json Lieu 12 Conversation 1 json
// l6_i1.jpg Lieu 6 Image 1 Image
// l6_i5.jpg Lieu 6 Image 5 Image
// 12 Lieux: l1 .. l12
// 5 Conversations par Lieu: c1 .. c5 (par exemple)
// 5 Images par Lieu: i1 .. i5 (par exemple)
// 10 Totems: t1 .. t10
5 août 2021
OSCSendOSC.zip 4 sketches Processing 3
pour tester OSC en local ou sur un réseau:
OscP5SendInt
OscP5ReceiveInt
OscP5SendString
OscP5ReceiveString
5 août 2021 A Chalette
Problème du fonctionnement intempestif en Bluetooth de l'ampli Audio Foci avec les smartphones qui sont présents alentours...
Installation Raspberry:
Changer le password au premier allumage ou sinon:
"default user name is pi, with password raspberry"
$ sudo raspi-config
-> 1 System Options
-> S3 Password
-> g
-> ok
Changer le Hostname (raspberrypi par défaut) Par exemple pour Totem3: raspberry3
$ sudo raspi-config
-> 1 System Options
-> S4 Hostname
-> raspberry3
ok
Créer un dossier partagé (Samba):
"Totem1" dans Totem1
...
"Totem2" dans Totem2
"Totem10" dans Totem10
sur le réseau des 10 Totems, avec tous les droits: Lecture Ecriture... , sur le bureau
par exemple: /home/pi/Desktop/Totem3
Propriétés -> Droits d'accés -> Tout le monde / Tout le monde / Tout le monde
Install Samba
Terminal:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install samba
Le paquets dhcp-client doit être installé durant l’installation si demandé:
Accepter.
Faire une copie de sécurité de smb.conf avant de le modifier:
$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old
Création d'un nouveau fichier de configuration:
/etc/samba/smb.conf
et partage Samba du dossier:
/home/pi/Desktop/Totem3
$ sudo nano /etc/samba/smb.conf
...
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = raspberrypi3
security = user
map to guest = bad user
dns proxy = no
[Totem3]
comment = Dossier partage sur le bureau de Raspberry Pi OS
path = /home/pi/Desktop/Totem3
writeable=Yes
create mask=0777
directory mask=0777
public=yes
0777 permet aux utilisateurs Samba de lire, écrire et exécuter les fichiers et les dossiers.
...
Définir le mot de passe Samba:
$ sudo smbpasswd -a pi
New SMB password: g
Retype new SMB password: g
Added user pi.
...
reboot
...
Relancer le service Samba:
$ sudo systemctl restart smbd.service
Installer Processing sous Raspbian
$ curl https://processing.org/download/install-arm.sh | sudo sh
...
Installing in usr/local...
Processing 3.5.3 est installé
Installer libraries minim, oscP5, Ketai
Fixer l'adresse IP du WIFI:
192.168.1.101 dans Totem1
192.168.1.102 dans Totem2
...
192.168.1.110 dans Totem10
en éditant le fichier: /etc/dhcpcd.conf
$
sudo nano /etc/dhcpcd.conf
Ajouter (pour le Totem3 en 192.168.1.103):
interface wlan0
static ip_address=192.168.1.103/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Ajouter un logiciel de clavier virtuel pour éviter le branchement d'un clavier USB
$ sudo apt update
$ sudo apt install matchbox-keyboard
Menu Raspberry -> Accessories -> Keyboard
Ou Florence Virtual Keyboard? qui disparait automatiquement:
Problèmes d'écran: bords noirs, mauvaise résolution, déformation... éditer:
$ sudo nano /boot/config.txt
...
Ou:
$ sudo raspi-config
-> 2 Display Options
-> ...
Les tailles sont bonnes:
10 août 2021
MacOSX 10.13 Partage (Samba) d'un dossier:
Menu Pomme
-> Préférences Système...
-> Partage
-> Partage de fichiers -> Cocher
-> Options...
-> Partager les fichiers et les dossiers via SMB -> Cocher
-> Partage de fichiers Windows -> Compte xx -> Cocher Activer
-> Dossiers partagés:
-> + Nom du dossier...
-> Utilisateurs
-> xx -> Lecture/écriture Lecture/écriture Lecture/écriture
11 août 2021

Schema-Raspberry7
Schema-Raspberry7.pdf
Schema-Raspberry7.odg
...
Ajouter une alim pour l'écran pour soulager la Raspberry?
La Borne WIFI Swissonic connectée câble Ethernet à l'une des 10 Raspberry?
12 août 2021
ConvEx4.zip Sketch Processing 3
ConvEx4 master envoie des messages OSC vers les autres Convex4 sur le même réseau.
13 août 2021 A Chalette
14 août 2021
17 août 2021
Raspberry 4: problème d'interférence entre WIFI et HDMI?
Problème DHCP avec dynamic (Non static Non fix) IP addressing: DHCP Lease Time
Problème des Raspberry avec IP Address fixée qui change!
Parce que le Router Swissonic est toujours en IP Address dynamique?
OUI
18 août 2021
Problème de date & heure d'une Raspberry non connectée à Internet: perdues à chaque redémérrage.
Mettre à l'heure:
$ sudo date -s '2021-17-08 15:36:00'
Installer fake-hwclock:
$ sudo apt-get install fake-hwclock
"This approach can only provide a
crude approximation of what a real
hardware clock provides"
...
Ajout carte horloge (avec pile) Real Time Clock (RTC):
Commande:
Compteur d'énergie RS PRO (Wattmètre)
Fil à souder 250g, Plomb 40%, Etain 60%, fusion à 183°C
Raspberry: GPIO and the 40-pin Header
19 août 2021
ConvEx5 master envoie des messages OSC vers les autres Convex5 sur le même réseau.
ConvEx5 lit un fichier "Qui.txt" de 3 lignes::
Qui.txt
Totem = 5
Master = 0
Quelle Raspberry?
$ cat /proc/cpuinfo
20 août 2021 A Chalette
Install Horloge:
Amazon DS3231 Real Time Clock RTC
az-delivery.de/fr/products/ds3231-real-time-clock
-> Wichtige Downloads & Links
-> Raspberry Pi Librearies
-> DS3231_Ras_Pi.zip
-> Et aprés? rien sur le site az-delivery
Câblage:

avec les: Amazon câbles: 40 x Mâle vers Femelle, 40 x Mâle vers Mâle, 40 x Femelle vers Femelle Longueur 20cm
Installation du logiciel:
ajout-dun-module-rtc-au-raspberry-pi
$ sudo apt update
...
$ sudo apt upgrade
...
$ sudo raspi-config
-> Interfacing Options
–> I2C
–> Enable
–> OK
Reboot
$ sudo apt install python-smbus i2c-tools
...
$ sudo i2cdetect -y 1
...
0 1 2 3 4
5 6 7 8 9 a b c d
e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
...
$ sudo nano /boot/config.txt
Ajouter à la fin:
dtoverlay=i2c-rtc,ds3231
Reboot
Vérification:
$ sudo i2cdetect -y 1
...
0 1 2 3 4
5 6 7 8 9 a b c d
e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
...
$ sudo apt -y remove fake-hwclock
$ sudo update-rc.d -f fake-hwclock remove
$ sudo nano /lib/udev/hwclock-set
Commenter les 3 lignes:
if [ -e /run/systemd/system ] ; then
exit 0
fi
Vérification de l’heure du module RTC:
$ sudo hwclock -D -r
Mettre à l'heure la Raspberry en la connectant au Web.
Vérification:
$ date
Ecriture date dans le module RTC:
$ sudo hwclock -w
Vérification:
$ sudo hwclock -r
Reboot
21 août 2021
A essayer pour le problème d'interférence entre WIFI et HDMI: Mise à jour du firmware de la Raspberry
Vérification:
$ sudo rpi-eeprom-update
BOOTLOADER: up to date
...
Pas de update à faire
Sinon:
$ sudo apt update
...
$ sudo apt full-upgrade
...
$ sudo rpi-update
...
Reboot
Vérification:
$ sudo rpi-eeprom-update
NON inutile: la dernière version du firmware était installée
23 août 2021
Install Arcueil Router TP-Link 06435394
http://192.168.0.1/ ... admin admin
-> Network
-> WAN
-> Connection Type: Dynamic IP
Modif:
-> Connection Type: Static IP
-> IP Address: 192.168.1.1
-> Subnet Mask: 255.255.255.0
-> Gateway: 192.168.1.1
-> Primary DNS Server: 192.168.1.1
-> Secondary DNS Server: 0.0.0.0 (optional)
Pb:
interface wlan0
static ip_address=192.168.1.103/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
essai modif:
interface wlan0
static ip_address=192.168.1.103/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
Connection avec Raspberry:
Pre Shared Key: 06435394 = WirelessPassword/PIN
1 septembre 2021
2 septembre 2021
3 septembre 2021
Changement des noms de fichiers:
l1_c3.mp3 ->
Lieu1_conv3.mp3 Lieu 1 Conversation 3
Audio (ou .wav)
l12_c1.json -> Lieu12_conv1.json Lieu 12 Conversation 1 json
l6_i1.jpg ->
Lieu6_img1.jpg Lieu 6 Image
1 Image
En résumé:
// Noms des fichiers (exemples):
// Lieu1_conv3.mp3 Lieu 1 Conversation 3
Audio (ou .wav)
// Lieu12_conv1.mp3 Lieu 12 Conversation 1 Audio (ou .wav)
// Lieu12_conv1.json Lieu 12 Conversation 1 json
// Lieu6_img1.jpg Lieu 6 Image
1 Image
// Lieu6_img15.jpg
Lieu 6 Image 15
Image
// 12
Lieux:
Lieu1 .. Lieu12
// 1 .. 8 Conversations par Lieu: conv1 .. conv8 (par exemple)
// 1 .. 4 Speaker par Conversation: S1 .. S4 (par exemple)
//
15 Images par
Lieu: img1 .. img5 Carte
//
img6 .. img10 Photo Capsule
//
img11 .. img15 Photo
Bibliothèque
// 10
Totems:
totem1 .. totem10
Les 12 Lieux x 15 images = 180 images .jpg
test3.json -> renommé -> Lieu2_conv1.json
troisextraits.wav -> renommé -> Lieu2_conv1.wav
Lieu2_conv1.wav -> Audacity -> Lieu2_conv1.mp3
15 septembre 2021
Guy -> 32 fichiers .wav et 32 .json de 32 conversations dans 6 lieux à Orléans.
(De 2 à 8 conversations par lieu)
Happyscribe -> Format JSON -> Fichier -> Json formatter -> Fichier
A faire: Renommer les fichiers
Renommer chaque Speaker de chaque fichier .json S1 S2 S3...
au lieu de "Femme 1" "Fille 1" "Orateur 1" "Speaker 1" "Intervenant 1"
etc...
Convention: Thomas = S1 ?
Guy = S2 ?
...
Lieu6_img3.jpg fait planter ConvEx8.pde pcq 1024 x 599 pixels et pas 1024 x 600
23 septembre 2021
ATTENTION
Le dossier data ne contient que les 17 fichiers de Lieu1 et conv1:
Lieu1_conv1.wav
Lieu1_conv1.json
Lieu1_img1.jpg ... Lieu1_img15.jpg
227 fichiers manquent:
Lieu1_* .. Lieu12_*
24 septembre 2021 A Chalette
25 septembre 2021
Problème sous Raspbian et pas sous MacOS des fichiers Audio qui font planter Convex8:
==== JavaSound Minim Error ====
==== Couldn’t open the line: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
C'est toujours le 4e fichier ouvert qui fait planter, quelquesoit le fichier.
Voir:
Début de solution: close FilePlayer avant d'en créer un nouveau:
Parole.close();
Parole = new FilePlayer( MonMinim.loadFileStream(NomFichierAudio) );
Maintenant c'est le 7e fichier ouvert qui fait planter, quelquesoit le fichier!
Avec une nouvelle erreur:
==== JavaSound Minim Error ====
==== Unable to return a SourceDataLine: unsupported format - PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
A essayer:
(Voir:
Playing sound with Minim on Pi breaks)
Parole.close();
Parole.unpatch(Sortie);
Parole = new FilePlayer( MonMinim.loadFileStream(NomFichierAudio) );
delay(100);
Parole.patch(Sortie)
OK OK
Library: PureData
https://pi.processing.org/technical/
The
puredatap5 library
allows you to write sketches in Processing that control and interact
with musical patches prepared in Pure Data. See the accompanying
HelloPd example for how it works. This library requires PortAudio to be
installed, which seems to be the case for current releases of the
Raspbian distribution. This library is not yet available through the
Contribution Manager, but support for ARM was merged into its main
repository.
5 octobre 2021
Pronomic MAMP-215 amplificateur
puissance (RMS): 2x 8 Watt @ 8 Ohm
2x 15 Watt @ 4 Ohm
distorsion (THD): <0,4% @ 1W par canal
boîtier (B x H x P): 95 x 31 x 119 mm
6 octobre 2021
7 octobre 2021
8 octobre 2021 A Chalette
Avec Totem 3 4 5 6
Les 10 Totems en groupes: 1-2-3-4 5-6-7 8-9-10
Regles:
Conversation à 4: Totem 1-2-3-4
Conversation à 3: Totem 1-2-3 ou 2-3-4 ou 5-6-7 ou 8-9-10
Transformer les Conversations à 5 ou 6 en Conversations à 4
Ecrire la liste ordonnée des 59 Conversations avec 1 colonne indiquant son 1er Totem
Eviter 2 Conversations à 4 successives
Départ à l'allumage au hasard dans la liste
Pas + de 2 Conversations simultanées
9 octobre 2021
Médiathèque Orléans La Source
13 octobre 2021
14 octobre 2021
tableau_convEx_tri.ods ouvert dans LibreOffice:
-> Suppression ".wav" et remplacer "conv" par "_conv"
-> Enregistrer sous...
-> Text CSV (.csv)
-> tableau_convEx_tri.csv
-> Ajout Titres, Colonne PremierTotem
-> Renommer ->
LieuconvListe.csv
Avec les options:
Jeu de caractères: Unicode (UTF-8)
Séparateur de champs: ,
Séparateur de texte: "
Enregistrer le contenu de la cellule comme affiché
Nom,
Duree, NbrSpeaker,
PremierTotem
Lieu1_conv1, 00:02:00.579, 3, 1
Lieu9_conv4, 00:01:55.433, 3, 5
Lieu1_conv2, 00:02:06.822, 4, 1
...
Lieu12_conv3, 00:01:58.385, 3, 1
Du point de vue du MaitreOSC:
23h 55min 56sec
2 Ouverture de: Lieu1_conv1.json
Discussion.size()=34
SpeakerArray[0]=s1
SpeakerArray[1]=t
SpeakerArray[2]=s2
NbrSpeaker=3
Duree=119610ms
PremierTotem=1
Envoi 192.168.1.101:7000 Lieu1_conv1
Envoi 192.168.1.102:7000 Lieu1_conv1
Envoi 192.168.1.103:7000 Lieu1_conv1
Envoi 192.168.1.101:7000 s1
Envoi 192.168.1.102:7000 t
Envoi 192.168.1.103:7000 s2
Envoi 192.168.1.101:7000 Play_
Envoi 192.168.1.102:7000 Play_
Envoi 192.168.1.103:7000 Play_
4 Ouverture de: Lieu1_conv1.wav
23h 57min 59sec
2 Ouverture de: Lieu9_conv4.json
Discussion.size()=48
SpeakerArray[0]=t
SpeakerArray[1]=s1
SpeakerArray[2]=s2
NbrSpeaker=3
Duree=111013ms
PremierTotem=5
Envoi 192.168.1.105:7000 Lieu9_conv4
Envoi 192.168.1.106:7000 Lieu9_conv4
Envoi 192.168.1.107:7000 Lieu9_conv4
Envoi 192.168.1.105:7000 t
Envoi 192.168.1.106:7000 s1
Envoi 192.168.1.107:7000 s2
Envoi 192.168.1.105:7000 Play_
Envoi 192.168.1.106:7000 Play_
Envoi 192.168.1.107:7000 Play_
4 Ouverture de: Lieu9_conv4.wav
23h 59min 55sec
2 Ouverture de: Lieu1_conv2.json
Discussion.size()=35
SpeakerArray[0]=s1
SpeakerArray[1]=s2
SpeakerArray[2]=t
SpeakerArray[3]=s3
NbrSpeaker=4
Duree=126310ms
PremierTotem=1
Envoi 192.168.1.101:7000 Lieu1_conv2
Envoi 192.168.1.102:7000 Lieu1_conv2
Envoi 192.168.1.103:7000 Lieu1_conv2
Envoi 192.168.1.104:7000 Lieu1_conv2
Envoi 192.168.1.101:7000 s1
Envoi 192.168.1.102:7000 s2
Envoi 192.168.1.103:7000 t
Envoi 192.168.1.104:7000 s3
Envoi 192.168.1.101:7000 Play_
Envoi 192.168.1.102:7000 Play_
Envoi 192.168.1.103:7000 Play_
Envoi 192.168.1.104:7000 Play_
4 Ouverture de: Lieu1_conv2.wav
14 octobre 2021 A Chalette
19 octobre 2021
Un texte
L’exposition présentée par l’artiste
Guykayser dans les médiathèques d’Orléans et Montargis constitue
l’aboutissement du projet « Conversations excentrées ». Sa première
phase avait eu lieu en mai et juin 2021 et consistait en une collecte
sonore de discussions libres. En livrant leurs voix dans la Capsule
conversationnelle, les habitants de cinq quartiers d’Orléans et de 5
villages du Montargois ont participé à composer un riche portait des
langues du quotidien. C’est à partir de celui-ci que Guykayser a
composé un dispositif visuel et sonore s’appuyant sur ces lieux de vie
et la parole qui y circule.
C’est un dispositif composé de dix totems « audiovisuels », permettant
une articulation entre les conversations et un ensemble d’images.
Celle-ci sont d’une part topographiques (fond de cartes et données de
l’IGN) et d’autre part photographiques (intérieur des médiathèques et
reportage sur les collectes sonores). Une fois passées entre les mains
de l’artiste, toutes ces images voient s’opérer, au rythme des échanges
vocaux, une transformation de l'image photographique par le mouvement
des pixels dû à la variabilité des données.
Le public chemine entre les conversations initiales, reconstruites
aléatoirement par un programme informatique dédié. Au total, ce sont
près de soixante extraits de discussions qui sont données à entendre.
En développant le programme informatique aux côtés de son partenaire
Gérard Parésys, Guykayser a élaboré des boucles de diffusion des voix
comprenant trois parties. La première est composée d’extraits non
montés des conversations, la suivante de bribes de discussions se
mélangeant les unes aux autres et enfin la troisième consiste en une
déstructuration des conversations réalisée à l’échelle du mot, devenu
alors simple matière sonore.
Associant donc Arts numériques et recherche en Sciences du langage, les
Conversations excentrées s'inscrivent dans le projet national de
Laboratoire Mobile des Langues.
La restitution du projet "Conversations excentrées" de l'artiste
Guykayser prendra la forme d'une installation exposée du 16 au 27
novembre à la médiathèque Maurice Genevoix (La Source), du 30 novembre
au 18 décembre à la médiathèque Gambetta (Orléans Centre) et à la
médiathèque de l’AME à Montargis du 8 au 29 Janvier 2022.
20 octobre 2021
ConvEx15sansdata.zip (11ko) Sketch Processing 3 + Script
data-59json.zip (245ko) Les 59 .json avec 4 locuteurs max
data-180jpg.zip (41Mo) Les 12 x 15 = 180 .jpg
Le "MaitreOSC" émet une conversation comme les autres Totems.
Taper L sur le "MaitreOSC" lance la lecture de la liste: LieuconvListe.csv
Taper J ou K sur le "MaitreOSC" recule ou avance dans la liste.
Attenuation = -30; // -80 .. -1 dB ajuste l'attenuation d'un locuteur
quand un Totem ne doit pas l'emettre: (-80dB = attenuation max)
Problème aprés plusieurs heures de fonctionnement: Null Pointer Exception:
ligne 423 image(img, 0, 0);
21 octobre 2021
22 octobre 2021
Problème aprés plusieurs heures de fonctionnement: Null Pointer Exception à la ligne:
image(img, 0, 0);
Solution essayée:
if (img != null) image(img, 0, 0);
else {
println("Erreur img");
NouvelleImage();
}
NON... ne fonctionne pas...
ConvEx17sansdata.zip (12ko) Sketch Processing 3 + Script
- Avec mode Touch sur les principaux contrôles: les touches J K L R P...
- GaindB -1dB / +1dB contrôlé par le MaitreOSC
- Le bonnes images sont choisies en mode Solo.
- Pour contrôler le choix des images j'ai ajouté la possibilité de superposer le nom à l'image:
J'ai ajouté au début :
boolean AfficheNomImage = true ;
- 3 erreurs corrigées dans: LieuconvListe.csv:
Lieu9_conv2 a 3 Speakers et pas 4
Lieu8_conv1 a 2 Speakers et pas 3
Lieu11_conv4 a 2 Speakers et pas 3
- Il y a toujours le bug "NullPointer Exception" qui plante le sketch sur la ligne 843:
if (img != null) image(img, 0, 0);
après plus de 2h de fonctionnement.
Ça ne se produit jamais sur le même fichier image.
Ce foutu bug me tracasse.
Il passe au travers de: if (img != null)
23 octobre 2021
Problème: Null Pointer Exception à la ligne:
image(img, 0, 0);
Nouvelle solution essayée:
try {
image(img, 0, 0);
}
catch (Exception e) {
}
Installation des 10 Totems en résumé:
Dans chacune des 10 Raspberry 4 (4Go ou 8Go) des 10 Totems (exemples avec le Totem3):
Raspbian 10 buster pré-installé sur la carte SD livrée avec les Raspberry 4Go achetées chez
Labists.
(et non Raspbian 9 stretch comme indiqué dans la doc Labists.)
$ lsb_release -a
Description: Raspbian GNU/Linux 10 (buster)
Changer le password au premier allumage ou sinon:
"default user name is pi, with password raspberry"
$ sudo raspi-config
-> 1 System Options
-> S3 Password
-> g
-> ok
Changer le Hostname
(raspberrypi par défaut) Par exemple pour Totem3: raspberry3
$ sudo raspi-config
-> 1 System Options
-> S4 Hostname
-> raspberry3
ok
Créer un dossier:
"Totem1" dans Totem1
...
"Totem2" dans Totem2
"Totem10" dans Totem10
Avec tous les droits: Lecture Ecriture... , sur le bureau
par exemple: /home/pi/Desktop/Totem3
Ou le logiciel ConvEx (Processing 3) sera installé:
ConvEx
ConvEx.pde
OSC.pde
Qui.txt
LieuconvListe.csv
data folder (1.39Go: 59 xxx.json 59 xxx.wav 180 xxx.jpg = 298 fichiers)
Propriétés / Properties
-> Droits d'accés / Permissions
-> Tout le monde Tout le monde Tout le monde / Anyone Anyone Anyone
Installer Processing sous Raspbian
$ curl https://processing.org/download/install-arm.sh | sudo sh
...
Installing in usr/local...
Processing 3.5.3 est installé
dans: usr/local/lib/Processing-3.5.3/processing
Si problème d'installation, installer dans le dossier Totem3 sur le bureau (par exemple)
Installer libraries minim, oscP5, Ketai
Processing -> Preferences -> Augmenter la mémoire vive disponible: 2048MB
Empêcher la mise en veille de l'écran
Installer un économiseur d'écran:
$ sudo apt-get install xscreensaver
Menu Raspberry -> Preferences -> Screensaver -> Display Modes -> Mode: Disable Screen Saver
Autre solution:
Wiki Waveshare
$ sudo nano /etc/lightdm/lightdm.conf
Décommenter et modifier la ligne:
xserver-command=X -s 0 -dpms
Reboot
WIFI: adresse IP fixe (statique locale) (Router & 10 Raspberry):
Fixer l'adresse IP des 10 Raspberry:
192.168.1.101 dans Totem1
192.168.1.102 dans Totem2
...
192.168.1.110 dans Totem10
en éditant le fichier: /etc/dhcpcd.conf
$
sudo nano /etc/dhcpcd.conf
Ajouter (pour le Totem3 en 192.168.1.103):
interface wlan0
static ip_address=192.168.1.103/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
Reboot
Vérification (ne fonctionne que si la connection WIFI au router est OK):
$ ip -a address
ou:
$ ifconfig
IP address du router:
$ ip r
Vérifier (pour le Totem3):
Clic droit Menu Réseau
-> Wireless & Wired Network Settings -> Network Preferences
-> wlan0
-> Disable IPv6
IPv4 Address 192.168.1.103/24
Router 192.168.1.1
DNS Servers 192.168.1.1
En cas de problème de connection WIFI: A essayer...
1 Allumer le router WIFI avant les Raspberry.
2 Changer la connection HDMI de l'écran: prise 0 (près de la prise d'alimentation) ou prise 1.
3 Changer le câble HDMI de l'écran.
(Les Raspberry 4 ont des problèmes d'interférence entre WIFI et HDMI) Voir: 17 août 2021
4 Eteindre puis rallumer le router WIFI
5 Pre Shared Key router Swissonic: gggggggg
Pre Shared Key router TP-Link : 06435394
6 Raspberry: Turn Off Wi-Fi -> Turn On Wi-Fi
Ajouter un logiciel de clavier virtuel pour éviter le branchement d'un clavier USB
$ sudo apt update
$ sudo apt install matchbox-keyboard
Menu Raspberry -> Accessories -> Keyboard
Ou Florence Virtual Keyboard? qui disparait automatiquement:
Right click emulation pour éviter le branchement d'une souris
Problèmes d'écran: bords noirs, mauvaise résolution, déformation... éditer:
$ sudo nano /boot/config.txt
...
max_usb_current=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 1023 599 60 6 0 0 0
Ou:
$ sudo raspi-config
-> 2 Display Options
-> ...
Si problème Processing en P3D
"* failed to add service - already in use?"
$ sudo raspi-config
-> Advanced Options
-> GL Driver
-> GL (fake KMS) OpenGL desktop driver with fake KMS
Activer SSH - Utiliser FileZilla
Menu Raspberry
-> Preferences
-> Raspberry Pi Configuration
-> Interfaces
-> SSH -> Enable
-> OK
Install
FileZilla Client sur MacOS ou PC Windows
Connection à la Raspberry Totem3 sur un réseau WIFI OK:
Hôte: sftp://192.168.1.103
Identifiant: pi
Mot de passe: g
Connexion rapide
Acces SSH au Terminal d'une Raspberry depuis un Mac:
Terminal Mac:
MacBook-Pro-de-g:~ g$ ssh root@192.168.1.103
...
root@192.168.1.103's password:
...
root@raspberry3:~# sudo nano /etc/xdg/lxsession/LXDE-pi/autostart (par exemple)
Installer une RTC: carte Real Time Clock
Voir: 20 août 2021 A Chalette
Script Shell
Placer un dossier "Script" sur le bureau
Placer dans le dossier "Script":
ScriptShutDownLinux.sh
myScript.sh
Lancement d'un Shell au boot lançant le sketch Processing ConvEx
$ sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
On a new line at the bottom of the file, enter the following text:"
@lxterminal -e bash /home/pi/Desktop/Script/myScript.sh
Le script myScript.sh est placé dans le dossier "Script" placé sur le bureau de la Raspberry:
(Exemple avec Processing installé avec curl donc dans: usr/local/lib/Processing-3.5.3):
#!/bin/bash
echo Lancement de Processing
echo Lancement du sketch ConvEx.pde
usr/local/lib/Processing-3.5.3/processing-java --sketch=/home/pi/Desktop/Totem3/ConvEx --run
(Exemple avec Processing installé dans Desktop/Totem3/processing-3.5.3):
#!/bin/bash
echo Lancement de Processing
echo Ouverture du sketch ConvEx.pde
/home/pi/Desktop/Totem3/processing-3.5.3/processing-java --sketch=/home/pi/Desktop/Totem3/ConvEx --run
ATTENTION le script doit se terminer avec --run sans Retour à la ligne
On peut tester myScript.sh en l'executant depuis le Terminal:
$ sh /home/pi/Desktop/Script/myScript.sh
Qui.txt
Editer le fichier Desktop/Totem3/ConvEx/Qui.txt:
Qui.txt
Totem = 3
Master = 0
ou pour le MaitreOSC:
Qui.txt
Totem = 10
Master = 1
Audio
Raspberry: Régler "Volume Control" dans la barre de menu à 85. Au-delà (maxi 100) il y a saturation.
Problème: Pas de Preferences -> Audio Device Settings
Pas de Panel Control dans la barre de Menus (Speaker icon)
Solution:
$ sudo apt install pimixer
Redémarrer
Clic droit Barre de menus
-> Ajouter/Enlever des éléments au tableau de bord
-> Ajouter
-> Contrôle du volume
Problème: Aucun son
Solution 1:
Barre de menus
-> Clic droit Contrôle du volume
-> Choisir Sortie "AV Jack" ou Headphones et pas HDMI
Solution 2:
$ sudo raspi-config
1 System Options
-> S2 Audio
-> Choose the audio output
-> 0 Headphones
Problème: Pas de son avec Processing + minim mais son OK avec Processing + sound library ou autre logiciel
Solution: Supprimer pulseaudio
$ apt policy pulseaudio
...
$ sudo apt -y purge "pulseaudio"
Reboot
$ sudo raspi-config
1 System Options
-> S2 Audio
-> Choose the audio output
-> 0 Headphones
24 octobre 2021
ConvEx19sansdata.zip (12ko) Sketch Processing 3 + Script
2 conversations simultanées avec gestion des Totems libres
"Run Liste" et "Random" et "Random Solo" fonctionnent.
"Liste +1" et "Liste -1" ne fonctionnent plus pour l'instant.
Un déroulé vu du MaitreOSC:
loadImage Lieu11_img6.jpg
width=1024 height=600
WW=1024 HH=600
1 Ouverture de: Qui.txt 3 lignes:
0 Qui.txt
1 Totem = 10
2 Master = 1
setupOSC()
OscP5 0.9.9 infos, comments, questions at http://www.sojamo.de/oscP5
...
3 Ouverture de: LieuconvListe.csv 60 lignes:
Nom NbrSpeaker PremierTotem
0 Lieu1_conv1 3 1
1 Lieu9_conv4 3 5
2 Lieu1_conv2 4 1
3 Lieu8_conv5 2 9
4 Lieu2_conv1 3 2
5 Lieu5_conv1 2 5
6 Lieu2_conv2 4 1
7 Lieu2_conv3 3 8
8 Lieu2_conv4 4 1
9 Lieu2_conv5 1 5
10 Lieu2_conv6 2 8
11 Lieu9_conv2 3 1
12 Lieu3_conv1 2 5
13 Lieu3_conv2 4 1
14 Lieu3_conv4 2 9
15 Lieu9_conv8 4 1
16 Lieu3_conv5 2 5
17 Lieu11_conv2 3 2
18 Lieu3_conv6 2 6
19 Lieu4_conv1 3 8
20 Lieu4_conv2 4 1
21 Lieu4_conv3 1 5
22 Lieu4_conv5 3 2
23 Lieu4_conv8 3 8
24 Lieu9_conv3 4 1
25 Lieu5_conv2 2 6
26 Lieu5_conv5 3 2
27 Lieu5_conv7 2 9
28 Lieu5_conv8 3 5
29 Lieu6_conv1 3 8
30 Lieu6_conv2 4 1
31 Lieu6_conv3 2 6
32 Lieu6_conv4 3 8
33 Lieu6_conv5 4 1
34 Lieu8_conv3 3 6
35 Lieu6_conv6 4 1
36 Lieu9_conv5 2 7
37 Lieu6_conv7 4 1
38 Lieu7_conv1 2 5
39 Lieu7_conv2 4 1
40 Lieu7_conv3 2 7
41 Lieu8_conv1 2 2
42 Lieu8_conv2 2 5
43 Lieu11_conv3 3 1
44 Lieu8_conv4 3 8
45 Lieu9_conv1 4 1
46 Lieu9_conv6 3 5
47 Lieu9_conv7 4 1
48 Lieu9_conv9 3 8
49 Lieu10_conv1 3 2
50 Lieu10_conv2 2 5
51 Lieu10_conv3 4 1
52 Lieu10_conv4 2 7
53 Lieu4_conv7 2 1
54 Lieu11_conv1 3 5
55 Lieu11_conv4 2 9
56 Lieu12_conv1 4 1
57 Lieu12_conv2 2 5
58 Lieu12_conv3 3 8
TableauTotemOccupe1 = false false false false false false false false false false
TableauTotemOccupe2 = false false false false false false false false false false
------------------------- FIN setup
8h 53min 40sec NouveauMaitreOSC(1)
2 Ouverture de: Lieu12_conv1.json
Discussion.size()=32
SpeakerArray [0]=s1 [1]=s2 [2]=s3 [3]=s4
Duree=137400ms
NbrSpeaker=4
PremierTotem=1
Envoi 192.168.1.101:7000 Lieu12_conv1
Envoi 192.168.1.102:7000 Lieu12_conv1
Envoi 192.168.1.103:7000 Lieu12_conv1
Envoi 192.168.1.104:7000 Lieu12_conv1
TableauTotemOccupe1 = true true true true false false false false false false
TableauTotemOccupe2 = false false false false false false false false false false
Envoi 192.168.1.101:7000 speaker_s1
Envoi 192.168.1.102:7000 speaker_s2
Envoi 192.168.1.103:7000 speaker_s3
Envoi 192.168.1.104:7000 speaker_s4
Envoi 192.168.1.101:7000 Play_
Envoi 192.168.1.102:7000 Play_
Envoi 192.168.1.103:7000 Play_
Envoi 192.168.1.104:7000 Play_
8h 53min 44sec NouveauMaitreOSC(2)
2 Ouverture de: Lieu12_conv2.json
Discussion.size()=28
SpeakerArray [0]=g [1]=s2
Duree=121530ms
NbrSpeaker=2
PremierTotem=5
Envoi 192.168.1.105:7000 Lieu12_conv2
Envoi 192.168.1.106:7000 Lieu12_conv2
TableauTotemOccupe1 = true true true true false false false false false false
TableauTotemOccupe2 = false false false false true true false false false false
Envoi 192.168.1.105:7000 speaker_g
Envoi 192.168.1.106:7000 speaker_s2
Envoi 192.168.1.105:7000 Play_
Envoi 192.168.1.106:7000 Play_
8h 55min 50sec NouveauMaitreOSC(2)
2 Ouverture de: Lieu12_conv3.json
Discussion.size()=26
SpeakerArray [0]=s1 [1]=s2 [2]=s3
Duree=117780ms
NbrSpeaker=3
PremierTotem=8
Envoi 192.168.1.108:7000 Lieu12_conv3
Envoi 192.168.1.109:7000 Lieu12_conv3
Envoi 192.168.1.110:7000 Lieu12_conv3
TableauTotemOccupe1 = true true true true false false false false false false
TableauTotemOccupe2 = false false false false false false false true true true
Recu: Lieu12_conv3
oscEvent Lieu = Lieu12
oscEvent Conversation = conv3
8h 55min 50sec
NomFichier = Lieu12_conv3
2 Ouverture de: Lieu12_conv3.json
Discussion.size()=26
SpeakerArray [0]=s1 [1]=s2 [2]=s3
Duree=117780ms
NbrSpeaker=3
4 Ouverture de: Lieu12_conv3.wav
loadImage Lieu12_img7.jpg
Envoi 192.168.1.108:7000 speaker_s1
Envoi 192.168.1.109:7000 speaker_s2
Envoi 192.168.1.110:7000 speaker_s3
Recu: speaker_s3
oscEvent Speaker = s3
Envoi 192.168.1.108:7000 Play_
Envoi 192.168.1.109:7000 Play_
Envoi 192.168.1.110:7000 Play_
Recu: Play_
8h 56min 2sec NouveauMaitreOSC(1)
2 Ouverture de: Lieu1_conv1.json
Discussion.size()=34
SpeakerArray [0]=s1 [1]=t [2]=s2
Duree=119610ms
NbrSpeaker=3
PremierTotem=1
Envoi 192.168.1.101:7000 Lieu1_conv1
Envoi 192.168.1.102:7000 Lieu1_conv1
Envoi 192.168.1.103:7000 Lieu1_conv1
TableauTotemOccupe1 = true true true false false false false false false false
TableauTotemOccupe2 = false false false false false false false true true true
Envoi 192.168.1.101:7000 speaker_s1
Envoi 192.168.1.102:7000 speaker_t
Envoi 192.168.1.103:7000 speaker_s2
Envoi 192.168.1.101:7000 Play_
Envoi 192.168.1.102:7000 Play_
Envoi 192.168.1.103:7000 Play_
loadImage Lieu1_img1.jpg
loadImage Lieu1_img10.jpg
loadImage Lieu1_img13.jpg
loadImage Lieu1_img4.jpg
8h 57min 54sec NouveauMaitreOSC(2)
2 Ouverture de: Lieu9_conv4.json
Discussion.size()=48
SpeakerArray [0]=t [1]=s1 [2]=s2
Duree=111013ms
NbrSpeaker=3
PremierTotem=5
Envoi 192.168.1.105:7000 Lieu9_conv4
Envoi 192.168.1.106:7000 Lieu9_conv4
Envoi 192.168.1.107:7000 Lieu9_conv4
TableauTotemOccupe1 = true true true false false false false false false false
TableauTotemOccupe2 = false false false false true true true false false false
Envoi 192.168.1.105:7000 speaker_t
Envoi 192.168.1.106:7000 speaker_s1
Envoi 192.168.1.107:7000 speaker_s2
Envoi 192.168.1.105:7000 Play_
Envoi 192.168.1.106:7000 Play_
Envoi 192.168.1.107:7000 Play_
8h 58min 5sec NouveauMaitreOSC(1)
2 Ouverture de: Lieu1_conv2.json
Discussion.size()=35
SpeakerArray [0]=s1 [1]=s2 [2]=t [3]=s3
Duree=126310ms
NbrSpeaker=4
PremierTotem=1
Envoi 192.168.1.101:7000 Lieu1_conv2
Envoi 192.168.1.102:7000 Lieu1_conv2
Envoi 192.168.1.103:7000 Lieu1_conv2
Envoi 192.168.1.104:7000 Lieu1_conv2
TableauTotemOccupe1 = true true true true false false false false false false
TableauTotemOccupe2 = false false false false true true true false false false
Envoi 192.168.1.101:7000 speaker_s1
Envoi 192.168.1.102:7000 speaker_s2
Envoi 192.168.1.103:7000 speaker_t
Envoi 192.168.1.104:7000 speaker_s3
Envoi 192.168.1.101:7000 Play_
Envoi 192.168.1.102:7000 Play_
Envoi 192.168.1.103:7000 Play_
Envoi 192.168.1.104:7000 Play_
...
27-28 octobre 2021 A la salle des fêtes de Montargis: test de l'installation des 10 Totems

A faire avant le lancement "officiel" sur les 10 totems:
fullScreen(P3D, SPAN);
boolean VisuCurseur = false ;
boolean AfficheNomImage = false ;
int TempsImageFixe = 4000; // ms
int GaindB = -10; // -80 .. +20 dB Niveau au demarrage
Lancement automatique du MaitreOSC
Script de lancement automatique à l'allumage des 10 Raspberry
Faire une petite zone pour afficher l'EcranStopEnTouchant()
Ajouter un anticlic ou antiplop:
shiffman/7603264
Pour Conversations excentriques:
minim/audioplayer_method_position
ConvEx21sansdata.zip
Nouvelle version utilisant
AudioPlayer au lieu de
FilePlayer de la library minim.
Pour pouvoir utiliser les methodes
shiftGain et
getGain pour faire des Fade In et des Fade Out pour éviter les clics et les plops.
shiffman/7603264
L'anticlic fonctionne trés bien, mais le son s'arrête sur chaque totem, successivement, au bout de + de 2h de fonctionnement!
Donc INUTILISABLE!
Citation (2015) de l'auteur de la library minim:
I'm loading about 100 files...
"It's probably just a resource availability issue in the Linux
JavaSound implementation. AudioPlayer is not a super good option when
dealing with a very large number of files. Each AudioPlayer requests an
output resource (SourceDataLine) and is continually pushing data to it
in its own Thread. I'm not so sure that's intended usage for that
JavaSound resource. It's my plan to rewrite how AudioPlayer works so
that this does not happen, but in the meantime you could request one
AudioOutput from Minim, and then load all of your audio files into
FilePlayer objects. You'd then patch the FilePlayers to the output
before playing them and unpatch them when they are finished playing.
...
Ok, I was just able to repro this in Ubuntu 14.04 using Processing
3.0b5. All I had to do was load the same file a bunch of times.
If I
load it 16 times, everything is fine. It's the 17th time and up that
the error occurs. What seems strange is that I still get an AudioPlayer
back and I can play it. No sound comes out..."
Minim/issues/45
29 octobre 2021
Processing & Command Line:
Shell au boot qui lance le sketch Processing ConvEx:
Pour savoir ce qui se passe quand le sketch ConvEx est lancé au démarrage:
Remplacer dans /etc/xdg/lxsession/LXDE-pi/autostart:
@bash
/home/pi/Desktop/Script/myScript.sh
par:
@lxterminal -e bash /home/pi/Desktop/Script/myScript.sh
Ça ouvre un Terminal (derrière la fenêtre du sketch ConvEx) et ça
affiche les infos et erreurs de la console de Processing qui
s’exécute...
Attention: ne pas quitter le sketch sinon le Terminal se ferme.
Dans ce cas on peut voir l'enregistrement de la console de Processing dans:
/home/pi/.processing/console/
30 octobre 2021
Fade &
FilePlayer
On revient à la version ConvEx20 qui utilise
FilePlayer de la library minim.
Line: A UGen that starts at a value and changes linearly to another value over a specified time?
Non + simple: La class
AudioOutput utilise les methodes
shiftGain et
getGain pour faire des Fade In et des Fade Out.
"AudioOutput can also be treated as a UGen for the purposes of patching, but it stands alone, different from the rest."
ConvEx22sansdata.zip (17ko) Sketch Processing 3 + Script + LieuconvListe.csv sur 4 Totems seulement.
Extrait vu du Maitre OSC en Totem1:
MaitreOSC 13h 36min 37sec NouveauMaitreOSC(1)
MaitreOSC 2 Ouverture de: Lieu9_conv3.json
MaitreOSC Discussion.size()=29
MaitreOSC SpeakerArray [0]=s1 [1]=s2 [2]=s3 [3]=s4
MaitreOSC Duree=91360ms
MaitreOSC NbrSpeaker=4
MaitreOSC PremierTotem=1
MaitreOSC Envoi 192.168.1.101:7000 Lieu9_conv3
MaitreOSC Envoi 192.168.1.102:7000 Lieu9_conv3
MaitreOSC Envoi 192.168.1.103:7000 Lieu9_conv3
MaitreOSC Envoi 192.168.1.104:7000 Lieu9_conv3
MaitreOSC TableauTotemOccupe1 = true true true true false false false false false false
MaitreOSC TableauTotemOccupe2 = false Recu: Lieu9_conv3
false false false false false false false false false
13h 36min 37sec
NomFichier = Lieu9_conv3
2 Ouverture de: Lieu9_conv3.json
Discussion.size()=29
SpeakerArray [0]=s1 [1]=s2 [2]=s3 [3]=s4
Duree=91360ms
NbrSpeaker=4
4 Ouverture de: Lieu9_conv3.wav
loadImage Lieu9_img9.jpg
MaitreOSC Envoi 192.168.1.101:7000 speaker_s1
MaitreOSC Envoi 192.168.1.102:7000 speaker_s2
MaitreOSC Envoi 192.168.1.103:7000 speaker_s3
Recu: speaker_s1
MaitreOSC Envoi 192.168.1.104:7000 speaker_s4
MaitreOSC Envoi 192.168.1.101:7000 Play_
MaitreOSC Envoi 192.168.1.102:7000 Play_
MaitreOSC Envoi 192.168.1.103:7000 Play_
Recu: Play_
MaitreOSC Envoi 192.168.1.104:7000 Play_
loadImage Lieu9_img15.jpg
loadImage Lieu9_img7.jpg
... bizarre comment "Recu: Lieu9_conv3" s'intercale.
Invitation:
31 octobre 2021
Il y a encore des petits clics avec ConvEx22 et
FilePlayer, essayer:
- Augmenter bufferSize de
getLineOut (1024 par defaut) ?
Sortie = MonMinim.getLineOut(); -> Sortie = MonMinim.getLineOut(Minim.STEREO, 2048);
- Fade avec
shiftVolume et
getVolume ?
Mais
getVolume -> === Minim Error === === Volume is not supported.
setVolume -> === Minim Error === === Volume is not supported.
shiftVolume OK
Voir:
minim/examples/Controller/shifting
"The output doesn't have a gain control."
-Doc minim:
www.javadoc.io
- Bizarre:
AudioOutput Sortie;
MonMinim = new Minim(this);
Sortie = MonMinim.getLineOut();
Sortie.printControls();
donne:
Available controls are:
Master Gain, which has a range of 6.0206 to -80.0 and doesn't support shifting.
Mute
Balance, which has a range of 1.0 to -1.0 and doesn't support shifting.
Pan, which has a range of 1.0 to -1.0 and doesn't support shifting.
Vu du MaitreOSC (= Totem1):
...
MaitreOSC 22h 58min 38sec NouveauMaitreOSC(2)
MaitreOSC 2 Ouverture de: Lieu3_conv2.json
MaitreOSC Discussion.size()=45
MaitreOSC SpeakerArray [0]=s1 [1]=s2 [2]=s3 [3]=s4
MaitreOSC Duree=203520ms
MaitreOSC NbrSpeaker=4
MaitreOSC PremierTotem=1
MaitreOSC Envoi 192.168.1.101:7000 Lieu3_conv2
MaitreOSC Envoi 192.168.1.102:7000 Lieu3_conv2
MaitreOSC Envoi 192.168.1.103:7000 Lieu3_conv2
Recu: Lieu3_conv2
MaitreOSC Envoi 192.168.1.104:7000 Lieu3_conv2
MaitreOSC TableauTotemOccupe1 = false false false false false false false false false false
MaitreOSC TableauTotemOccupe2 = true true true true false false false false false false
22h 58min 38sec
NomFichier = Lieu3_conv2
2 Ouverture de: Lieu3_conv2.json
Discussion.size()=45
SpeakerArray [0]=s1 [1]=s2 [2]=s3 [3]=s4
Duree=203520ms
NbrSpeaker=4
4 Ouverture de: Lieu3_conv2.wav
loadImage Lieu3_img11.jpg
MaitreOSC Envoi 192.168.1.101:7000 speaker_s1
MaitreOSC Envoi 192.168.1.102:7000 speaker_s2
MaitreOSC Envoi 192.168.1.103:7000 speaker_s3
Recu: speaker_s1
MaitreOSC Envoi 192.168.1.104:7000 speaker_s4
MaitreOSC Envoi 192.168.1.101:7000 Play_
MaitreOSC Envoi 192.168.1.102:7000 Play_
MaitreOSC Envoi 192.168.1.103:7000 Play_
Recu: Play_
MaitreOSC Envoi 192.168.1.104:7000 Play_
loadImage Lieu3_img10.jpg
loadImage Lieu3_img12.jpg
loadImage Lieu3_img15.jpg
loadImage Lieu3_img13.jpg
loadImage Lieu3_img14.jpg
loadImage Lieu3_img15.jpg
loadImage Lieu3_img9.jpg
MaitreOSC 23h 2min 5sec NouveauMaitreOSC(2)
MaitreOSC 2 Ouverture de: Lieu3_conv4.json
...
1 novembre 2021
Le déroulé des images:
pour 1 Totem
1
6
11
2
7
12
3
8
13
4
9
14
5
10
15
pour 2 Totems
6 11
7 12
8 13
9 14
10 15
1 6
2 7
3 8
4 9
5 10
pour 3 Totems
1 6 11
2 7 12
3 8 13
4 9 14
5 10 15
pour 4 Totems
1 6 11 10
2 7 12 9
3 8 13 5
4 9 14 7
5 10 15 6
En commençant au hasard
Ca donne:
int[][] OrdreImage = {
{1, 6, 11, 2, 7, 12, 3, 8, 13, 4, 9, 14, 5, 10, 15}, // 1 Totem
{6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, // 2 Totems
{11, 12, 13, 14, 15, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, // 2 Totems
{1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5}, // 3 Totems
{6, 7, 8, 9, 10, 6, 7, 8, 9, 10, 6, 7, 8, 9, 10}, // 3 Totems
{11, 12, 13, 14, 15, 11, 12, 13, 14, 15, 11, 12, 13, 14, 15}, // 3 Totems
{1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5}, // 4 Totems
{6, 7, 8, 9, 10, 6, 7, 8, 9, 10, 6, 7, 8, 9, 10}, // 4 Totems
{11, 12, 13, 14, 15, 11, 12, 13, 14, 15, 11, 12, 13, 14, 15}, // 4 Totems
{10, 9, 8, 7, 6, 10, 9, 8, 7, 6, 10, 9, 8, 7, 6} // 4 Totems
};
ConvEx23sansdata.zip (17ko) Sketch Processing 3 + Script
3 novembre 2021
- Lieu9_conv6 supprimé -> 58 restants
- Nouveau:
Lieu3_conv5.wav
Lieu3_conv6.wav
Lieu4_conv7.wav
Lieu5_conv7.wav
Lieu6_conv3.wav
Lieu6_conv5.wav
Lieu8_conv2.wav
Lieu8_conv5.wav
- 58 nouveaux json:
data-58json.zip (248kO)
->
ConvExdata1.zip (655Mo) +
ConvExdata2.zip (558Mo) à placer dans un dossier data dans le dossier ConvEx.
7 novembre 2021
Mesure de la consommation électrique de 4 totems avec le
compteur d'énergie RS PRO : 48W
donc 120W pour les 10 totems + consommation router WIFI
9 novembre 2021
10 novembre 2021
ConvEx25
Zone tactile pour écran de contrôle: 100x100 pixels en haut à gauche.
int ZoneTactile = 100; // 100x100 pixels en haut à gauche
Les conversations excentrées alternent avec les "conversations excentriques".
Choisir les durées:
int DureeConvExcentree = 1200000; // 1200000ms = 1200s = 20min
int DureeConvExcentrique = 300000; // 300000ms = 300s = 5min
Conversations excentriques:
Courts extraits tirés au hasard sur les 10 totems
Cycle des 10 Totems:
1 -> 8 -> 5 -> 2 -> 9 -> 6 -> 3 -> 10 -> 7 -> 4 -> 1 -> ...
Choisir durée max & min des extraits:
int DureeConvExcentriqueMax = 6000; // 6000ms = 6s
int DureeConvExcentriqueMin = 3000; // 3000ms = 3s
Image du lieu correspondant à l'extrait
Affichage du texte de l'extrait pour suivre ce qui se passe...
-> Effet Blur
Les conversations excentrées débutent:
int DebutConvExcentree = 0; //
les "conversations excentriques" débutent:
int DebutConvExcentrique = 30000; // 30000ms = 30s =
J'ai mis 30sec pour la mise au point, pour ne pas attendre...
Erreur dans LieuconvListe.csv:
Ligne 3: Lieu9_conv4 00:01:55.433 4 1 (et pas 2)
J'ai fait quelques corrections sur le texte et les temps de:
Lieu2_conv5.json
Lieu12_conv1.json
Lieu8_conv4.json
Lieu3_conv5.json
Lieu3_conv4.json
Lieu3_conv2.json
Lieu5_conv7.json
Lieu9_conv1.json
Lieu5_conv5.json
Lieu8_conv1.json
Lieu4_conv8.json
Lieu10_conv2.json
Quand le dernier "data_end" du json est + petit que la durée du fichier
wav, l'écoute s’arrête brusquement et il y a un clic -> Modif
certains fichiers.
Lieu8_conv5.wav mono
11 novembre 2021
Pb vu:
Ne pas confondre Fin et Duree = Fin - Debut
Conversation Excentrique 2:
(En rouge: MaitreOSC)
draw
if (millis() > DebutConvExcentrique) {
if ((millis() > FinConv1) && (millis() > FinConv2)) {
if (TypeExcentrique == 2) {
if (millis() > Finms + Accel) {
ConvExcentriqueMaster2();
Accel = Accel - IncrementAccel;
if (Accel <
(-DureeConvExcentriqueMax) + 1000) Accel = (-DureeConvExcentriqueMax) +
1000;
}
}
DebutConvExcentree = DebutConvExcentrique + DureeConvExcentrique;
}
}
-> ConvExcentriqueMaster2();
-> EnvoiOSC(AdresseTotem[TotemAuHasard], "Excentrique1_2");
-> EnvoiOSC(AdresseTotem[TotemAuHasard], NomFichier);
-> EnvoiOSC(AdresseTotem[TotemAuHasard], "Discussion_" + Hasar);
-> Speak = Discussion.getJSONObject(Hasar);
-> Finms = millis() +
min(int((Speak.getFloat("data_end") - Speak.getFloat("data_start")) *
1000), DureeConvExcentriqueMax);
-> oscEvent(OscMessage theOscMessage)
-> Recu Message Excentrique1_2
-> ConvEx2 = true;
-> Recu Message Lieu3_conv4 par exemple
-> Nouveau();
-> Discussion = loadJSONArray(NomFichierJSON);
-> Parole = new FilePlayer(MonMinim. loadFileStream(NomFichierAudio));
-> Parole.patch(Sortie); // patch the file player to the output
-> ParoleExist =true;
-> Recu Message Discussion_8 par exemple
-> NouveauConvExcentrique2(Discut); Discut=8 par exemple
-> Speak = Discussion.getJSONObject(Discut);
-> Debut = int(Speak.getFloat("data_start") * 1000);
-> Fin = int(Speak.getFloat("data_end") *
1000);
-> TempsFinExcentrique = millis() + min(Fin - Debut,
DureeConvExcentriqueMax);
-> Sortie.setGain(Attenuation); // Attenuation = -80 .. -1 dB
-> Parole.skip(Debut - 200);
-> Parole.play();
-> Sortie.shiftGain(Sortie.getGain(), GaindB,
FadeInExcentrique); // -80 .. +20 dB
draw
-> if (millis() > DebutConvExcentrique) {
if ((millis() > FinConv1) && (millis() > FinConv2)) {
if (TypeExcentrique == 2) {
if (millis() > Finms + 1000) ConvExcentriqueMaster2();
-> if (ConvEx2) ConvExcentrique2();
-> ConvExcentrique2()
-> if (millis() > TempsFinExcentrique) {
->
Sortie.shiftGain(Sortie.getGain(), Attenuation, FadeOutExcentrique); //
Attenuation = -80 .. -1 dB
-> } else {
->
Sortie.shiftGain(Sortie.getGain(), GaindB, FadeInExcentrique); //
-80 .. +20 dB
-> }
ConvEx29sansdata.zip 67Ko
+
ConvExdata1.zip (655Mo) +
ConvExdata2.zip (558Mo) à placer dans un dossier data dans le dossier ConvEx.
12 novembre 2021 A Chalette
ConvEx30sansdata.zip 238Ko
+
ConvExdata1.zip (655Mo) +
ConvExdata2.zip (558Mo) à placer dans un dossier data dans le dossier ConvEx.
Avec:
int DureeConvExcentree = 900000; // 900000ms = 900s = 15min
int DureeConvExcentrique = 300000; // 300000ms = 300s = 5min
int DureeConvExcentriqueMax = 6000; // 8000ms = 8s
int DureeConvExcentriqueMin = 3000; // 2000ms = 2s
int IncrementAccel = 40;
int DebutAccel = 0;
Excentrée
Excentrique
Excentrée
Excentrique
Excentrée
<------300------>
<--------------900-----------------><------300------><--------------900----------------><---------
5minutes
15minutes
5minutes
15minutes
0 ------ 100 ------------ 400 ------------------------------- 1300 ----------- 1600 ----------------------------- 2500 -------
Lancement ConvEx30 le soir...
13 novembre 2021
ConvEx30 a fonctionné 12h... sans
plantage de Processing... mais seuls 2 Totems fonctionnaient encore...
Tactile + Quit fonctionnait.
Problème de mémoire?
Processing -> Preferences -> Augmenter la mémoire vive disponible: était décoché donc 256MB?
-> On met 1024MB
Mais pour l'Appli processing-java ?
Totem 1 2 3 4 5 6 7 -> Preferences -> mémoire vive disponible -> 1024MB
Totem 8 9 10 ->
Preferences -> mémoire vive disponible -> Pas coché -> 256MB
par defaut?
Lancement ConvEx30 le soir...
AudioTest1.zip
14 novembre 2021
ConvEx30 a fonctionné + de 8h
-> Son de tous les Totems arretes avec messages répétés:
### [2021/10/2 16:41:0] ERROR @ OscP5 ERROR. an error occured while forwarding an OscMessage
to a method in your program. please check your code for any
possible errors that might occur in the method where incoming
OscMessages are parsed e.g. check for casting errors, possible
nullpointers, array overflows ... .
method in charge : oscEvent java.lang.reflect.InvocationTargetException
-> Totem 7 (1024MB) planté:
java.Lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt. <init>(DataBufferInt.java:75)
at java.awt.image.Raster. createPackedRaster(Raster.java:467)
...
OutOfMemoryError: you may need to increase the memory setting in preference
An OutOfMemoryError means that your code is either using up too much memory
because of a bug (e.g. creating an array that's too large, or unintentionally
loading thousands of images), or that your sketch may need more memory to run.
If your sketch uses a lot of memory (for instance if it loads a lot of data files)
you can increase the memory available to your sketch using the Preferences window.
Question: Preferences -> mémoire vive disponible -> 1024MB concerne t'il aussi processing-java ?
Réponse: Oui voir en-dessous maxMemory = 910MB
Totem 1 2 3 4 5 6 7 -> Preferences -> mémoire vive disponible -> 2048MB
Lancement ConvEx30
... 7h aprés ... un Totem 2048MB planté!!! ... Non.. il était configuré en 1024MB
ConvEx31sansdata.zip 17Ko
+
ConvExdata1.zip (655Mo) +
ConvExdata2.zip (558Mo) à placer dans un dossier data dans le dossier ConvEx.
Ajout:
Affichage mémoire (en MB) dans écran de contrôle:
int(Runtime.getRuntime().maxMemory()/1048576) + "MB"
int(Runtime.getRuntime().totalMemory()/1048576) + "MB"
int(Runtime.getRuntime().freeMemory()/1048576) + "MB"
Processing -> Preferences -> Augmenter la mémoire vive disponible: décoché (256MB en grisé)
-> maxMemory = 910MB
Processing -> Preferences -> Augmenter la mémoire vive disponible: 1024MB:
-> maxMemory = 910MB
Processing -> Preferences -> Augmenter la mémoire vive disponible: 2048MB:

-> maxMemory = 1820MB
Donc la mémoire vive disponible est 1024MB par défaut et pas 256MB.
Les 3 écrans ont été obtenu aprés Reboot et donc lancement de processing-java.
Donc les Preferences de Processing s'appliquent à processing-java.
Les images jpg chargées sont décompressées en mémoire et donc elles prennent plus de place que prévu.
1 image 1024 x 600 pixels RGB a 4 octets par pixel.
Donc 1 image = 1024 x 600 X 4 octets = 600 x 4 koctets = 2.3Mo
Les jpg pèsent entre 76ko et 439ko
Donc 180 x 2.3Mo = 421Mo en mémoire.
Lancement avec 2048Mo de mémoire vive de Totem1(Mac) + Totem2 + Totem3
totalMemory augmente doucement...
Bizarre, aprés plusieurs heures de fonctionnement, certaines images
réapparaissent en gardant la transformation faite dans la phase
ConvExcentre()...
-> Plantage de Totem1(MaitreOSC) et Totem2 aprés 9h de fonctionnement:
OutOfMemoryError: Java heap space
An OutOfMemoryError means that your code is either using up too much memory
because of a bug (e.g. creating an array that's too large, or unintentionally
loading thousands of images), or that your sketch may need more memory to run.
If your sketch uses a lot of memory (for instance if it loads a lot of data files)
you can increase the memory available to your sketch using the Preferences window.
... après de multiples erreurs:
### [2021/11/15 3:16:57] ERROR @ OscP5 ERROR. an error occured while forwarding an OscMessage
to a method in your program. please check your code for any
possible errors that might occur in the method where incoming
OscMessages are parsed e.g. check for casting errors, possible
nullpointers, array overflows ... .
method in charge : oscEvent java.lang.reflect.InvocationTargetException
On abandonne cette version ConvEx32 avec 180 images chargées pendant le setup()... pire! Pourquoi?
Lancement de ConvEx31 sur les 10 Totems avec 2048GB le soir...
15 novembre 2021
ConvEx31 sur les 10 Totems avec 2048GB fonctionne toujours...
totalMemory augmente doucement, environ:
500MB aprés 5h de fonctionnement
700MB aprés 7h
850MB à 1300MB selon le Totem aprés 13h, pas d'erreur OscP5
aprés 14h de fonctionnement: Totem8 plante avec
OutOfMemoryError: Java heap space...
et tous les Totems ont des: OscP5 ERROR. an error occured while forwarding an OscMessage...
Totem8 avait toujours totalMemory > les autres Totems
Bizarre, aprés plusieurs heures de fonctionnement, le texte en
rouge (option abandonnée de ConvExcentrique2) est réapparu en gardant
la transformation faite dans la phase
ConvExcentre()...
Problème audio: le niveau sonore monte brusquement (à 0dB?) alors que le niveau choisi est -10dB ou -27dB...
ConvEx33sansdata.zip
+
ConvExdata1.zip (655Mo) +
ConvExdata2.zip (558Mo) à placer dans un dossier data dans le dossier ConvEx.
ConvEx33 = ConvEx31 modifié pour qu'il n'y ait plus de "saute" de son.
-> C'est pire!!!
Deroule-ConvEx34-Totem2.txt:
...
Recu: GaindB_-27
...
Recu: Excentrique1_2
Recu: Lieu8_conv4
21h 40min 48sec 481274ms Lieu8_conv4
4 Ouverture de: Lieu8_conv4.wav
Recu: Discussion_7
ConvExcentrique2 Debut=32490
ConvExcentrique2 Fin=35390
ConvExcentrique2 Duree=3000
Sortie.getGain()=6.0
Sortie.getGain()=6.0
loadImage Lieu8_img13.jpg
Recu: Excentrique1_2
Recu: Lieu6_conv1
21h 40min 51sec 484941ms Lieu6_conv1
4 Ouverture de: Lieu6_conv1.wav
Recu: Discussion_20
ConvExcentrique2 Debut=131250
ConvExcentrique2 Fin=134220
ConvExcentrique2 Duree=3000
loadImage Lieu6_img6.jpg
Recu: Excentrique1_2
Recu: Lieu4_conv5
21h 40min 54sec 487402ms Lieu4_conv5
4 Ouverture de: Lieu4_conv5.wav
Recu: Discussion_10
ConvExcentrique2 Debut=74370
ConvExcentrique2 Fin=103490
ConvExcentrique2 Duree=6000
loadImage Lieu4_img2.jpg
*************** Erreur img ***************
img.width = 1024 img.height = 600
loadImage Lieu4_img8.jpg
Sortie.getGain()=6.0
Sortie.getGain()=6.0
Sortie.getGain()=6.0
Recu: Excentrique1_2
Recu: Lieu1_conv2
...
Sortie.getGain()= ne s'affiche que si getGain est > GaindB qui était à -27dB
2 "Sautes" de son (2 frames et 3 frames) à +6dB à 6sec d'intervalle
Aucune ligne du programme ne fixe le gain à +6dB!
Ce doit être un bug de la library minim.
Je remplace partout:
Sortie.shiftGain(Sortie.getGain(), , );
par:
Sortie.shiftGain(min(Sortie.getGain(), GaindB), , );
Le bug: Sortie.getGain() = +6dB est toujours + grand que GaindB
... si le bug est sur getGain()
->
ConvEx34sansdata.zip -> encore des "sautes" Audio...
+
ConvExdata1.zip (655Mo) +
ConvExdata2.zip (558Mo) à placer dans un dossier data dans le dossier ConvEx.
16 novembre 2021
AudioTest2.zip

Ca sature à +6dB...
ConvEx34 -> Ajout:
Sortie.setGain(Attenuation); // 16 11 2021
avant:
Parole.close();
et aprés:
Parole.patch(Sortie);
...
->
ConvEx35sansdata.zip
Peut-être un peu mieux...
A écouter...
17 novembre 2021
Convex35 pas utilisé, pas essayé...
Est-ce que je vois Thomas Chrétien réellement pour la 1ère fois? ? ?
Installation à la
médiathèque "Maurice-Genevoix" (Orléans La Source)
Google Map
ConvEx34sansdata.zip (17Ko) +
ConvExdata1.zip (655Mo) +
ConvExdata2.zip (558Mo)
installés sur les 10 Totems. Avec:
GaindB = -4; ''
int DureeConvExcentree = 900000; // 900000ms = 900s = 15min
int DureeConvExcentrique = 300000; // 300000ms = 300s = 5min
int DureeConvExcentriqueMax = 6000; // 6000ms = 6s
int DureeConvExcentriqueMin = 3000; // 3000ms = 3s
int IncrementAccel = 40;
int DebutAccel = 0;
fullScreen(P3D, SPAN);
Placer les contenus de ConvExdata1 et ConvExdata2 dans un dossier data dans le dossier ConvEx.
(La taille maximale des fichiers déposable sur free.fr est de 1 Go. Le dossier data a donc était divisé en 2)
Raspberry: "Volume Control" dans la barre de menu réglé à 85. Au-delà (maxi 100) il y a saturation.
Ajustement des niveaux des 10 amplis des 10 totems "à l'oreille" avec
AudioTest1.zip
Si c'était à refaire...
1 Avec library minim
Sans .shiftGain() .getGain() .setGain() qui provoquent des "sautes" de son imprévisibles.
Avec
ADSR?
Avec
Line?
2 Avec library Sound
Enregistrer le niveau sonore GaindB dans Qui.txt du MaitreOSC
20 novembre 2021 samedi 14h Vernissage à la médiathèque "Maurice-Genevoix" (Orléans La Source)
Olivier Baude, Gabriel Bergounioux, Thomas Chrétien, Céline Dugua...
27 novembre 2021
30 novembre 2021 Fin à la médiathèque "Maurice-Genevoix" (Orléans La Source)
1 décembre 2021 Démontage à la médiathèque "Maurice-Genevoix" (Orléans La Source)
Installation à la médiathèque "Gambetta" (Orléans centre) Google Map

Logiciels et réglages inchangés. (Voir
17 novembre 2021)
2 décembre 2021 Début à la médiathèque "Gambetta" (Orléans centre)
6 décembre 2021
Ma participation aux Conversations excentrées
Les Conversations excentrées ont été pour moi l’occasion d’une première
vraie collaboration avec Guykayser. J’ai en effet eu la chance de
travailler avec lui depuis les étapes fondatrices au cours desquelles
il a imaginé ce dispositif artistique jusqu’au montage de l’exposition
finale, en passant par les collectes sonores.
Pour les premières étapes, j’ai pu me faire en partie le relai
d’Olivier Baude dans la discussion entre arts et sciences. Il
s’agissait d’imbriquer l’intérêt de la constitution d’un portrait
sonore pour la recherche en linguistique avec la vision artistique de
Guy. Cela s’est rapidement matérialisé par des échanges avec les
partenaires, au premier chef desquels les réseaux des médiathèques
d’Orléans et du Montargois. Du grain à moudre de mon côté concernant la
recherche contributive, thème qui m’intéresse particulièrement dans mon
travail de thèse. Dossiers à présenter aux financeurs et autres
calendriers prévisionnels « légèrement » impactés par les
confinements successifs : voilà pour l’envers du décor…
La phase de collecte au printemps et à l’été nous a permis de réunir le
matériau sonore que Guy a ensuite traité avec Gérard Paresys pour
donner naissance à l’exposition. Mais il s’agissait aussi pour nous,
sur l’ensemble d’un projet, de tester le protocole d’écoute,
d’enregistrement et de gestion des données et des métadonnées du
Laboratoire mobile des langues.
Enfin, le montage de l’exposition a été pour moi l’occasion
d’appréhender encore un peu mieux de l’intérieur le travail de Guy et
Gérard. Et comme pour les collectes sonores, me rendre compte que
porter un projet longuement mûri au devant du public apporte une réelle
satisfaction.
Thomas Chrétien
7 décembre 2021
Ma participation aux Conversations excentrées
En juin 2020 Guy me dit: "Après les hauteurs d’eau: les piles de livres…"
Les hauteurs d’eau c’était l’autoportrait collectif "Trop près du
Loing" : des dizaines de voix nous racontaient la crue de 2016. Le
travail sur le son de ces voix m’avait passionné: les projeter dans
l’espace, les entremêler… Quelle musique!
Les 10 "totems" des conversations excentrées me rappellent les
limnimètres : ces règles verticales qui mesurent la hauteur d’eau le
long des rivières, sur les ponts, les barrages… Mais les "totems" ne
mesurent rien, ils parlent et ils montrent.
Les "totems" nous font entendre 58 conversations "libres", nous font voir 180 images des 12 lieux d’enregistrement.
Thomas Chrétien a collecté toutes ces conversations cet été dans la
"capsule" dont j’ai participé à la conception depuis 4 ans maintenant.
J’ai fabriqué le logiciel qui fonctionne dans le petit ordinateur
contenu dans chacun des 10 totems des Conversations excentrées. Donc 10
logiciels tournent en même temps.
Le son de chacune des conversations est bien complexe : il y a 1,2 ..
jusqu’à 5 locuteurs qui parlent, parfois en même temps! Le pari de
cette installation est de restituer ces conversations en distribuant
les locuteurs: un par totem. La restitution doit être claire,
évidente: le visiteur qui se promène dans l’installation doit avoir
l’illusion d’entendre une discussion…
La synchronisation, le choix des conversations, des locuteurs, des totems, des images sont controlés par l’un des totems.
Et puis il y a le moment "excentrique" des Conversations excentrées :
après 15 minutes de discussions polies, les 10 totems parlent tous:
chacun émettant une bribe d’une des conversations tirée au hasard, ça
s‘accélère de plus en plus, ça se superpose, ils parlent tous en même
temps, on ne peut plus comprendre que les rares mots qui émergent de
cette crue. Et tout s’arrête. Silence. Et les discussions peuvent
reprendre dans le calme. J’espère que ce climax de matière sonore
pourra être perçu comme musical!
Le logiciel de chaque totem contrôle aussi les images et leur
décomposition/recomposition au niveau du pixel. En regardant
soigneusement on voit que la direction du mouvement des pixels (comme
du sable agité) change avec le locuteur.
Le son est dans l’image et l’image est dans le son.
Gérard Paresys
11 décembre 2021
médiathèque "Gambetta" (Orléans centre)
Matin: Installation éteinte!
Pas de son!
Tous les boutons des amplificateurs avaient été mis à zéro!
10h30 Visite commentée de l'exposition
22 décembre 2021 Démontage à la médiathèque "Gambetta" (Orléans centre)
7 janvier 2022 Installation à la médiathèque de l’AME à Montargis
Un minuteur allume l'installation à 9h30 et l'éteint à 18h chaque jour.

8 janvier 2022 Début à la médiathèque de l’AME à Montargis

15 janvier 2022 15h "Présentation par l'artiste" à la médiathèque de l’AME à Montargis
29 janvier 2022 Fin à la médiathèque de l’AME à Montargis
24 mars 2022
4 captures écran & Audio du sketch Processing ConvEx34
(MacOS + QuickTimePlayer 10 + SoundFlower + QuickTimePlayer 7)

Le sketch est lancé dans l’écran de contrôle en cliquant Random Solo:
on entends une conversation complète (tous les locuteurs) sur un seul
totem.
Convex1.mp4
Convex2.mp4
Convex3.mp4
Convex4.mp4
...
Sur le web...
Toute personne dont le nom, la
photographie, la voix
apparaît sur ce site peut à tout moment demander la suppression ou la
modification
des informations la concernant en contactant: gerard.paresys
page mise à jour 20 9
2023