Un sens parmi les sens.

André pierre jocelyn pour LAC2017

Réponse de LAC : Your submission could not been accepted for the conference "Linux Audio Conference 2017". Que reste-t-il du libre quand les découvreurs ne peuvent plus s'exprimer en ce lieu ?


Je me penche attendri sur les lois et les mots, Rêveur, grand-frère aussi des acteurs et scénarios ;
J'ai l’amitié sacrée et profonde des doses ; J'empêche les enfants de maltraiter les choses ;
Je dis : Ne nommer point la plante et l'animal ; Liez sans faire peur, montrez sans faire mal.
Le concept ne se dit pas, des lois se déduit, Rayonnent au milieu des être épanouis ;
J'erre, sans le troubler, dans tout ce paradis ; Du japonais à l’européen d’aujourd’hui,
Qu'ils sont inattentifs, dans leurs charmants langages, A la pénombre que font en se tournant les sages
Du mystérieux, Ivre où le sort est décrit, Ajuste les lois, ce qu’il te reste de vie.

Au commencement il y avait l’homme.

Domaine de définition et étude aux limites

L’archiviste trouve de nombreuses définitions pour décrire les sons, mais comme celle qui plaît, est celle que nous nous créons, je vais garder la mienne.
Le son est un variation de pression de l’air, au travers d’une capacité physiologique, au travers de ce que notre entendement sélectionne.
Nous trouvons dans cette phrase, la construction de tout ce qui suit.
Une variation de pression de l’air peut s’écrire sur une brique minimum de trois facteurs.
Un facteur qui indique la pression, un facteur qui indique la durée et un facteur qui indique la distance du récepteur par rapport à la source sonore (déformation due au mouvement des fluides).
Les capacités physiologiques dépendent de beaucoup de facteurs, en passant par la génétique au mode de vie.
L’entendement selon comment il est préparé va pouvoir reconnaître tel type de codage sonore ou encore tel type. C’est un savoir qui ne peut se transmettre que d’homme à homme après des années d’apprentissage, c’est pourquoi souvent certains sons, ne sont entendue que par des personnes préparées.

Conclusion

Comme dans l’introduction sur l’utilisation du langage, le tout donne l’idée, pour les sons, la variation n’existe pas par elle même, elle existe au travers des autres variations, et à travers les filtres de notre entendement et de notre physiologie. Un même mot, peut avoir plusieurs sens, une même forme acoustique peut avoir plusieurs sons, une même cause peut avoir plusieurs effets. Plusieurs mots peuvent avoir le même sens, le même son peut être produit d’une multitude de manière, plusieurs causes peuvent avoir le même effet. En considérant que toutes les sources sonores sont au même endroit, deux facteurs suffisent pour générer un format audio théorique.
Pour déployer cette brique acoustique, au travers des différentes dimensions sonores aux lois différentes, nous créons des facteurs différents qui vont diriger les formes de variations, en profitant que plusieurs causes peuvent avoir le même effet, pour compenser la distance fixe de la source acoustique.

De Lecjoa à Lecjo

Je code comme je parle

Le code a des contraintes machine, le code a des conventions fixées, mais le code n’existe pas par lui même ou pour lui même. Le code existe pour les effets qu’il produit, en fonction des ressources qu’il nous demande en échange. L’homme décris le monde qui l’entoure par la modélisation, l’animal imite. Parler une langue, ce n’est pas aligner une suite de mots, c’est structurer des sons pour au final transmettre un entendement.

Etude aux limites

- La technologie d’aujourd’hui est construite sur l’idée qu’il faut imiter d’une manière de plus en plus précise les variations de pression de l’air pour produire un son. Elle n’est pas adaptée à l’entendement humain, ce qui va nécessiter un code de conversion "homme/technologie".(constructeur.js)
- Les conventions des langages informatiques demandent qu’un fichier informatique déclare son contenue. Ceci permet pour un fichier audio d’ouvrir un lecteur audio. Ce qui va nécessiter un code pour générer un fichier audio avec une entête.(adaptateur.js)
- La technologie d’aujourd’hui permet de lire rapidement, de comparer rapidement, d’imiter rapidement, mais ne permet pas d’effectuer un grand nombre d’opérations mathématique de logique pure sans faire d’erreurs. Ce qui va nécessiter un tableau contenant toutes les réponses mathématiques possibles, pour aller chercher les réponses mathématiques sans faire d’opérations. (table.js)
- Les pratiques d’aujourd’hui donne le langage HTML avec ses extensions.
Un phare se trouve dans Firefox et ses extensions. Lecjo est présenté sous forme d’extension Firefox, un plugin audio. (manifest.json).
- La bonne gestion des ressources machine pousse à écrire une fois le concept d’une forme acoustique, et d’appeler autant de fois nécessaire avec des coefficients correcteurs cette forme acoustique.(background.js)

Conclusion

En reprenant les différents fichiers induit par la logique pure, notre extension Lecjo est composé d’un fichier manifest.json, d’un fichier background.js, d’un fichier adaptateur.js, d’un fichier table.js, d’un fichier constructeur.js, auquel nous ajoutons un logo dans la barre des taches pour identifier quand il est actif

Ouvertures des dimensions acoustiques à l’aide de briques acoustiques

Qui que quoi donc ou

Nous avons plusieurs niveaux d’utilisation de l’extension Lecjo.
Si nous les classons en 4 catégories, cela donne :

Simple utilisateur

L’utilisateur profite du plugin audio après avoir installé l’extension lecjo en utilisant la page des modules de Firefox

Simple compositeur

La composition de musique générée avec Lecjo, ne demande pas de compétences en développement web ou encore acoustique.
Il faut télécharger un exemple dans la page de support.
Ouvrir avec son éditeur de texte la page javascript téléchargée.
Dans cette page au début se trouve des noms contenant 75 valeurs (cela peut-être des lettres indicées) , ce sont les briques acoustiques.
L’utilisateur place selon l’ordre et la répétition, selon son choix, les briques acoustiques dans la variable nommée : don
L’utilisateur compte combien de briques acoustiques il a placé, puis indique ce nombre à trois endroits. En premier en remplaçant la dernière valeur de chaque forme de brique acoustique par ce nombre, en deuxième en ajoutant 1 dans la boucle ui, et en troisième dans la boucle du i

Compositeur avancé
théorique

La composition avancée ne demande toujours pas de compétence web, mais demande l’apprentissage d’un système logique et de conventions que j’ai créés.
Le principe est de générer les briques acoustiques au travers de différentes dimensions aux lois différentes par la construction d’une suite de deux facteurs. Plusieurs dimensions sont en équilibres, selon comment ces deux facteurs évolues, permet de favoriser telle ou telle dimension.
Dans la version Lecjo de linux créé en 2010, j’utilisais 8 octets puis 16 octets pour naviguer entre les dimensions. Mes sept années d’expériences m’ont conduit à proposer un générateur de briques acoustiques plus parlant. Un générateur qui cloisonne les taches. Ce générateur contient 75 valeurs.
Pour rectifier cette augmentation de poids car 75 valeurs correspond à 75 octets, j’ai mis au point une technique qui fait varier les valeurs à l’intérieur des briques, multipliant par la même à une infinité de briques possibles en partant de 75 octets et quelques octets de plus.

Compositeur avancé
appliqué

La brique acoustique est composée de 75 valeurs.
-La première valeur n’est pas utilisée. Je la nomme don0n. Par convention j’incrémente dans la brique acoustique et nomme la deuxième valeur don1n. -don1n indique la position haute de l’amplitude. En science physique cette valeur correspond au pourcentage d’augmentation de la pression de l’air. En visualisation à l’aide d’une application informatique type audacity, cela correspond à une position haute sur l’axe des ordonnées. Cette valeur est comprise entre 30 et 220. La variation de cette valeur est celle qui va le plus influencer le son généré, que ce soit du grave ou aigu ou encore du marteau acoustique à la licorne acoustique. -don2n indique la durée du front. En science physique, c’est le temps que va mettre la variation de pression pour passer de l’ancienne pression à la nouvelle pression, l’unité est de 1/44100 s. En visualisation à l’aide d’une application informatique type audacity, cela correspond à la variation de position sur l’axe des abscisses. Cette valeur accompagne don1n et est comprise entre 4 et 250. -don3n indique le nombre de répétitions des deux premières variations d’amplitude. Selon les dimensions utilisées, donner de la force utilise des techniques différentes. Cette valeur permet d’en utiliser une particulière. -don4n indique la durée d’un effet plateau qui permet de piloter une dimension particulière. Cette valeur est liée à don72n. -don5n indique la variation de l’amplitude de don1n. Cette variation est une diminution d’amplitude, mais peut devenir une augmentation d’amplitude, si nous donnons une valeur négative. -don6n indique la limite de variation d’amplitude de don1n, cette valeur est très pratique pour passer d’un son de piano ou guitare à un son d’orgue. -don7n indique la variation de durée de don1n. Cette variation est une diminution durée, mais peut devenir une augmentation durée, si nous donnons une valeur négative. -don8n indique la limite de variation durée de don1n. Fin du premier front d’onde
-don9n indique la position basse de l’amplitude pour composer avec don1n, ce qui se nomme une onde. La valeur don1n avec don9n donne l’onde 1. -don10n indique la durée du front de don9n. -don11n indique le nombre de fronts d’onde utilisé. -don12n indique la durée d’un effet plateau sur don9n. Cette valeur est liée à don73n. -don13n indique la variation de l’amplitude de don9n. Cette variation est une augmentation d’amplitude, mais peut devenir une diminution d’amplitude, si nous donnons une valeur négative. -don14n indique la limite de variation d’amplitude de don9n. -don15n indique la variation de durée de don9n. Cette variation est une diminution durée, mais peut devenir une augmentation durée, si nous donnons une valeur négative. -don16n indique la limite de variation durée de don9n. Fin du deuxième front d’onde
-don17n répétition.-don18n indique l'amplitude du troisième front -don19n indique la durée de don18n. -don20n indique la répétition de don18n. -don21n indique la durée d’un effet plateau sur don18n. -don22n indique la variation de l’amplitude de don18n. Cette variation est une diminution d’amplitude, mais peut devenir une augmentation d’amplitude, si nous donnons une valeur négative. -don23n indique la limite de variation d’amplitude de don18n. -don24n indique la variation de durée de don18n. Cette variation est une diminution durée, mais peut devenir une augmentation durée, si nous donnons une valeur négative. -don25n indique la limite de variation durée de don18n. Fin du front d’onde 3
-don26n libre. -don27n indique l'amplitude du quatrième front -don28n indique la durée de don27n. -don29n indique la répétition de don27n. -don30n indique la durée d’un effet plateau sur don28n. -don31n indique la variation de l’amplitude de don27n. Cette variation est une augmentation d’amplitude, mais peut devenir une diminution d’amplitude, si nous donnons une valeur négative. -don32n indique la limite de variation d’amplitude de don27n. -don33n indique la variation de durée de don27n. Cette variation est une diminution durée, mais peut devenir une augmentation durée, si nous donnons une valeur négative. -don34n indique la limite de variation durée de don27n. Fin du front d’onde 4 -don35n libre. -don36n indique l'amplitude du cinquième front -don37n indique la durée de don36n. -don38n indique la répétition de don36n. -don39n indique la durée d’un effet plateau sur don36n. -don40n indique la variation de l’amplitude de don36n. Cette variation est une diminution d’amplitude, mais peut devenir une augmentation d’amplitude, si nous donnons une valeur négative. -don41n indique la limite de variation d’amplitude de don36n. -don42n indique la variation de durée de don36n. Cette variation est une diminution durée, mais peut devenir une augmentation durée, si nous donnons une valeur négative. -don43n indique la limite de variation durée de don27n. Fin du front d’onde 5
-don44n libre. -don45n indique l'amplitude du sixième front. -don46n indique la durée de don45n. -don47n indique la répétition de don45n. -don48n indique la durée d’un effet plateau sur don45n. -don49n indique la variation de l’amplitude de don45n. Cette variation est une augmentation d’amplitude, mais peut devenir une diminution d’amplitude, si nous donnons une valeur négative. -don50n indique la limite de variation d’amplitude de don45n. -don51n indique la variation de durée de don45n. Cette variation est une diminution durée, mais peut devenir une augmentation durée, si nous donnons une valeur négative. -don52n indique la limite de variation durée de don45n. -don53n supérieur à 0, indique l’activtion du mode licorne, un outil qui permet le surf acoustique. Activation du mode surf en position 1: donne53 height delta (+/- 128): donne54 ; width:donne55 ; height repeat:donne56 ; width for height stays in place: donne57 ; height variation added: donne58 ; limit of the height variation: donne59 ; width variation: donne60 ; limit of the width variation: donne61 ; case donne53 egal 2 : Enabling surf mode en inversion de durée ; height delta (+/- 128): donne54 ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; height repeat:donne56 ; case donne53 egal 3 : Enabling surf mode en inversion assymetrique de durée 3 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; height repeat:donne56 ; case donne53 egal 4 : Enabling surf mode en inversion symetrique de durée 3 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; height repeat:donne56 case donne53 egal 5 : Enabling surf mode en inversion assymetrique de durée 4 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; Wave front 4 width: donne28 ; height repeat:donne56Make surfing an audio (unicorn, White work) ; Activation du mode surf en position 1: donne53 ; height delta (+/- 128): donne54 ; width:donne55 ; height repeat:donne56 ; width for height stays in place: donne57 ; height variation added: donne58 ; limit of the height variation: donne59 ; width variation: donne60 ; limit of the width variation: donne61 ; case donne53 egal 2 : Enabling surf mode en inversion de durée ; height delta (+/- 128): donne54 ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; height repeat:donne56 ; case donne53 egal 3 : Enabling surf mode en inversion assymetrique de durée 3 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; height repeat:donne56 ; case donne53 egal 4 : Enabling surf mode en inversion symetrique de durée 3 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; height repeat:donne56 ; case donne53 egal 5 : Enabling surf mode en inversion assymetrique de durée 4 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; Wave front 4 width: donne28 ; height repeat:donne56 ; case donne53 egal 6 : Enabling surf mode en inversion symetrique de durée 4 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; Wave front 4 width: donne28 ; height repeat:donne56 ; ; case donne53 egal 7 : Enabling surf mode in symmetrical inversion of duration 5 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; Wave front 4 width: donne28 ; Wave front 5 width: donne37 ; height repeat:donne56 ; ; Final inertia manager ; Activation du mode inertia en position 1: done62 ; height : donne63 ; width: donne64 ; height repeat: donne65 ; width for height stays in place: donne66 ; height variation: donne67 ; limit of the height variation: donne68 ; width variation: donne69 ; limit of the width variation: donne70 ; ; donne74 Number of generated sound forms ; ; case donne53 egal 6 : Enabling surf mode en inversion symetrique de durée 4 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; Wave front 4 width: donne28 ; height repeat:donne56 ; ; case donne53 egal 7 : Enabling surf mode in symmetrical inversion of duration 5 fronts ; Wave front 1 width: donne2 ; Wave front 2 width: donne10 ; Wave front 3 width: donne19 ; Wave front 4 width: donne28 ; Wave front 5 width: donne37 ; height repeat:donne56 ; ; Final inertia manager ; Activation du mode inertia en position 1: done62 ; height : donne63 ; width: donne64 ; height repeat: donne65 ; width for height stays in place: donne66 ; height variation: donne67 ; limit of the height variation: donne68 ; width variation: donne69 ; limit of the width variation: donne70 ; ; -don74n indique le nombre de briques acoustiques contenue dans la composition

Les briques acoustiques de base par l’exemple

L’utilisation de cette partie de la présentation, nécessite l’installation de l’extension lecjo qui se trouve à cette adresse internet https://addons.mozilla.org/en-US/firefox/addon/lecjo/

Deux fronts sans variation

Nous écrivons en premier un fichier javascript que nous appelons dans la page HTML.

Dans ce fichier nous créons une ou des variables qui pourrons être appelées dans la variable don.
Ici la variable m sous forme de tableau
var m={0:[],1:[],2:[],3:[],4:[],5:[],6:[],7:[],8:[],9:[],10:[],11:[],12:[],13:[],14:[],15:[],16:[],17:[]
,18:[],19:[],20:[],21:[],22:[],23:[],24:[],25:[],26:[],27:[],28:[],29:[],30:[],31:[],32:[]
,33:[],34:[],35:[],36:[],37:[],38:[],39:[],40:[],41:[],42:[],43:[],44:[],45:[],46:[],47:[]};
Nous créons une forme de brique acoustique, ici nous indiquons qu’il y a deux fronts :
var val21 = [1, 220, 6, 0, 0, 0, 0, 0, 0, 30,
194, 2, 120, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 100, 0, 1, 1];
Nous construisons des tableaux de variations pour faire varier la ou les valeurs de la brique acoustique, en exemple sur la durée :
var val = [169, 159, 150, 142, 134, 126, 119, 113, 106, 100, 95, 89,
84, 80, 75, 71, 67, 63, 60, 56, 53, 50, 47, 45,
42, 40, 38, 35, 33, 32, 30, 28, 27, 25, 24, 22,
21, 20, 19, 18, 17, 16, 15, 14, 13, 13, 12, 11];
Nous générons les variantes de m :
for(var b1= 0; b1 < 48; b1++){
for(var b2= 0; b2 < 2; b2++){
m[b1][b2]=val21[b2];}
for(var b3= 3; b3 < 10; b3++){
m[b1][b3]=val21[b3];}
for(var b4= 11; b4 < 75; b4++){
m[b1][b4]=val21[b4];}}
m[b1][2]=6;
m[b1][10]=194;
Nous plaçons notre brique acoustique dans la variable don :
var don=[m[44]];
Nous ajustons les variables de boucles ui à 2 et i à 1 pour indiquer le nombre de brique acoustique, et nous lançons le fichier audio adn au plugin lecjo :
var total =new Array;
var total1 =new Array;
for(var uiu= 1; uiu < 2; uiu++){
total[uiu -1] = "don"+[uiu]+"n";
total1[uiu -1]=don[uiu -1];}
for(var ui= 0; ui < 1; ui++){
for(var i= 0; i < 75; i++){
var nouveauinput;
function ajouteElemen() {
var body = document.body || document.getElementsByTagName('body')[0],
nouveauinput = document.createElement("input");
nouveauinput.setAttribute("type", "number");
nouveauinput.setAttribute("id", total[ui]+i);
nouveauinput.setAttribute("value", total1[ui][i]);
nouveauinput.setAttribute("style", "display: none;");
body.insertBefore(nouveauinput,body.childNodes[0]);}
ajouteElemen();}}

p1.html

Deux fronts avec une variation de 5

var val21 = [1, 220, 6, 0, 0, 5, 130, 0, 0, 30,
194, 2, 120, 5, 129, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 20, 0, 1, 1];

p2.html

Deux fronts avec une variation de 5 en augmentant la force par répétition

var val21 = [1, 220, 6, 10, 0, 5, 130, 0, 0, 30,
194, 2, 120, 5, 129, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 20, 0, 1, 1];



p3.html

Deux fronts avec une variation de 5 en augmentant la force par plateau et augmentation de durée

var m1 = [1, 220, 10, 1, 50, 5, 130, -5, 250, 30,
10, 2, 50, 5, 128, -5, 250, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 30, 3, 3, 1];



p4.html

Le Développement de Lecjo

Les fichiers

manifest.json permet d’indiquer le numéro de version, le nom de l’application, et les fichiers utiles en respectant l’ordre d’utilisation.
adaptateur.js permet de créer l’entête du fichier audio
table.js permet de donner toutes les solutions possibles aux opérations mathématiques afin de corriger la technologie
constructeur.js permet de construire le contenue du fichier audio compatible avec les normes actuelles.
background.js qui piste l’ouverture des page HTML pour vois si elles contiennent un fichier audio au format abadie.adn

adaptateur.js

adaptateur.js

table.js

table.js

constructeur.js

constructeur.js

background.js

background.js

Projets associés à Lecjo

Deux projets sont principalement associés à Lecjo.

Lecjoa qui est générateur de langage multidirectionnel, en passant par la création de vidéo interactives.

La carte audio linux qui remplace le fichier de conversion de lecjo. L’apport de cette carte est de ne plus à avoir à convertir, gain de temps, d’énergie, de qualité acoustique, de cout de fabrication des cartes audio.