logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 22-10-2014 21:51:41

temps
Membre
Inscription : 01-03-2014

PianoBaul

Bonjour,
Je viens de démarrer ce soir un nouveau projet que j'ai placé sous github ici
https://github.com/temps9/PianoBaul
C'est un piano virtuel contenant la BAUL (bibliothèque Acoustique Universelle sous Linux)

Le premier problème que je rencontre, c'est dans la représentation de sélection du piano car la BAUL contient 4.5 expo53 constructions de note.
En fait la BAUL appelle ses notes à l'aide de 16 octets, mais comment donner le choix des 256 cas de chaque octet ?

Peut-être faut-il envisager une fenêtre spéciale pour la sélection qui en même temps efface la mémoire des piano précédents.

Si quelqu'un a une idée, je suis preneur.

Cordialement

Hors ligne

#2 23-10-2014 19:33:34

temps
Membre
Inscription : 01-03-2014

Re : PianoBaul

Bonjour,
J'ai commencé en mettant le git à jour avec 16 QSpinBox (réglables de 0 à 255), placés dans l'espace récupéré par la diminution du bouton d'arrêt.

 piano2 = new QSpinBox(this);
 piano2->setGeometry (220 * calcul_position.width () / 400,
        600 * calcul_position.height () / 700,
        20 * calcul_position.width () / 400,
        50 * calcul_position.height () / 700);
piano2->setMaximum(255);
QString nombre2=QString::number(piano2->value());
QObject::connect (piano2, SIGNAL(valueChanged(int)), this, SLOT (fonctionpiano1 (int)));



C'est maintenant qu'il faut optimiser.
Les deux premier octets représentent les mouvements , à priori ça va pas être facile de réduire, la question se pose sur la construction des objets et de leurs propriétés.

Tout le code est construit sur la logique, peut-être pas celle qui recherche le beau et des absolues,
peut-être sur une logique d'une perception particulière, mais sur de la logique.
Une logique qui fait ses preuves depuis 4 ans puisqu'elle permet d'avoir un format audio très léger.
En restant dans la même logique, nous manipulons des états d'équilibres à l'aide de deux éléments de nature contraire, d'ou nous pouvons déduire que nous aurons besoin d'écrire que la moitié des informations que l'on peut trouver dans la somme globale, en d'autres mots que nous pouvons diviser le code par 2.
Car nous travaillons par rapport à un référentiel d'une pression, à l'aide d'états d'équilibres.

En exemple si nous avons une suite de fronts montant d'amplitude a et de durée b, et de fronts descendants d'amplitude c et de durée d, cela donnera exactement le même son, qu'une suite de fronts descendants d'amplitude a et de durée b, , et de fronts montant d'amplitude c et de durée det nous permet de diviser par deux les cas possibles, et le code en profite (attention l'ordre des durées est important)

Considérons à nouveau les 16 octets,

Nous avons besoin de 2 octets pour les mouvements. (les boucles)

Si dans lmfab pour garder un aspect éducatif nous avons créé des références sur plus de 2 fronts, ici pour alléger, ce n'est pas nécessaire car il suffit de donner les suites et leurs manière de varier dans la partie action. Ce qui fait que nous avons besoin de 2 fonts contenant 2 octets pour les amplitudes de départ, 2 octets pour les durées de départ, et de 4 octets pour les variations des deux. Soit un total de 8 octets.

Nous avons besoin d'un octet pour indiquer combien de fois la forme va se répéter

Nous avons besoin d'un octet pour indiquer les pentes

Nous avons besoin d'un octet pour les plateaux

nous avons besoin d'un octet pour les tremolo


nous avons besoin d'un octet pour les forces

Et nous avons besoin d'un octet spécial pouvant servir  à différentes choses selon le code, comme pour un deuxième plateau ou avoir des pentes différentes.

Cordialement

Dernière modification par temps (24-10-2014 07:44:27)

Hors ligne

#3 30-10-2014 09:02:08

temps
Membre
Inscription : 01-03-2014

Re : PianoBaul

Bonjour,
J'ai avancé un peu dans le projet, il ne me manque qu'à écrire les 65536 formes de variations, j'en ai mis qu'une actuellement.
J'ai commencé à créer un mode d'emploi que je vais remplir au fur et à mesure que j'ajouterai les formes.
Le voici
PianoBaul a été conçu pour apporter un instrument de musique contenant un nombre astronomique de notes, plus de  4 suivit 10 puissance 50 sons, un instrument pesant dans les 100 ko tout compris.

Comme cet instrument est construit sur le format audio abadie.jo, son utilisation est interdite en dehors du système d'exploitation linux ou FreeBSD.

Une fois lancée, l'application ouvre une fenêtre contenant 26 touches de piano, et quelques touches de réglages en bas à droite.

Les deux premières touches de réglages servent à sélectionner la forme de la variation, cela peut-être une licorne, un marteau acoustique …, il y a 65536 formes possibles
La touche de réglage 3 et 4 servent à donner les amplitudes de départ
La touche de réglage 5 et 6 servent à donner les durées de départ
La touche de réglage 7 et 8 servent à donner les variations d'amplitudes
La touche de réglage 9 et 10 servent à donner les variations de durées
La touche de réglage 11 sert à donner le nombre de répétition de la note
La touche de réglage 12 sert à donner la valeur de la pente
La touche de réglage 13 sert à donner la valeur du plateau
La touche de réglage 14 sert à donner la valeur du tremolo
La touche de réglage 15 sert à donner la valeur de force plus
La touche de réglage 16 sert à donner la valeur de la zone mémoire

Toutes les touches de réglages ne sont pas forcement utiles selon la forme utilisée.

Description des formes :
forme 1 : simple licorne composé d'une suite de fronts croissant en amplitude, d'un plateau sans variation, et d'une suite de front décroissant.
Valeurs de réglages préconisée : 133 133 50 50 12 12 0 0 7 50 0 0 0 0

J'ai gardé la structure pour retrouver les variations que nous avons dans les games musicales actuelles. Je passe l'info des QSpinBox à travers un int pour sélectionner les formes, et au travers d'un fichier externe nommé fronts.txt que je génère pour passer les 14 autres valeurs des QSpinBox, car une fois compiler je n'arrivait pas à changer les valeurs contenues dans la structure.
J'ai placé un bouton d'arrêt, un bouton pour effacer les notes audio du précédent clavier sélectionner, et un bouton act pour générer les notes du nouveau clavier sélectionné. Tout ceci car j'ai changé de technique, à savoir je ne génère plus la note au moment de la lecture, mais je génère les note au moment de la sélection du clavier.

Cordialement

Dernière modification par temps (30-10-2014 09:03:05)

Hors ligne

#4 30-10-2014 11:23:13

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : PianoBaul

Je trouve passionnante et très avenante ta recherche de réalisaton temps.

Nombre de musicos s'éloignent de GNU/Linux n'y trouvant pas de chaussures à leurs pieds.
Là, ils vont le prendre ! big_smile

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#5 01-11-2014 03:36:15

temps
Membre
Inscription : 01-03-2014

Re : PianoBaul

Bonjour,
Merci pour le commentaire.
Il y a 2 grandes parties séparées dans l'appli, les mouvement et les lieux ou on lieu les mouvements.
Actuellement, je suis entrain d'entrer les formes des mouvements, en exemple (le 9) les sons de violon sont un basculement de durées entre les fronts montants et les fronts descendants. La problématique est que comme les durées et les amplitudes sont de nature "contraire" (faute de terme juste comme pour homme et femme les Celtes avait un terme qui n’existe plus), nous allons avoir un son quand les amplitudes augmente, un son quand elles sont invariantes, et un son quand elles diminues. De plus nous pouvons avoir un basculement de 2 (1 front montant, un front descendant) un basculement de 3, de 4, de 5 ...
Pour la partie lieu aussi, je pense que je vais devoir retoucher, j'ai le sentiment que le fait d'avoir ajouter des Qspinbox gène, je voudrais utiliser la case restante pour mettre un bouton qui active ou désactive les spinbox de réglage. A l'instant t, j'imagine cette action, mais je n'ai aucune idée de comment faire et si c'est possible, je reste concentré sur la création des premières formes de variation, les basiques (celle que j'ai nommé :marteau acoustique, licorne, mariage, force ...)
Cordialement

Dernière modification par temps (01-11-2014 03:37:15)

Hors ligne

#6 01-11-2014 03:57:23

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : PianoBaul

Ça met sur l'cul ton propos, on n'imagine pas tout ce que son musical peut représenter à recréer !

Amitié, Jojo smile

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#7 01-11-2014 07:10:41

temps
Membre
Inscription : 01-03-2014

Re : PianoBaul

Bonjour,
"recréer" est bien le terme. Imaginer les gaulois avec seulement 5 caractères et 5 force différentes par caractère, il modélisaient et nommaient tout.
Pour eux qui vivaient en symbiose les romains étaient des monstres, car comment imaginer qu'on puisse jetrer du sel sur des terres arables. Les grecs de l'époques avaient bien réussit à modéliser le plus simple des techniques celtes en utilisant leur Dieu, la géométrie, mais c'était très lourd et difficile ) manipuler.

Bien sure tout ceci n'est que de la tradition orale transmise dans des baraques de chantier avant que les dernières grandes entreprises françaises ne soient placées en bourse. Mais en y réfléchissant, le format audio que j'utilise, n'utilise que 2 caractères qui me demandent réflexion, comment nos ancêtres arrivaient à manipuler 5 caractères ? Ils devaient avoir des contacts humains infiniment plus élevés qu"aujourd’hui.

Hors ligne

#8 03-11-2014 10:38:47

temps
Membre
Inscription : 01-03-2014

Re : PianoBaul

Bonjour,

L'objectif à présent est d'essayer de monter une asso, ou d'intégrer dans une asso, un groupe de travail, je vais placer les avancements dans ce fil.
D'ou trouver un responsable ou un président et un trésorier qui auront pour objectif de déploiement de PianoBaul en passant par :

1- Essayer de trouver les termes les plus intuitif pour aider au maniement de PianoBaul, ceux que j'utilise sont peut-être trop vieille gaule, orientés par une perception trop personnelle(en plus non conforme aux croyances).
2- Reprendre le code dans clavier.cpp pour que le réglage des qspin ne soit pas actif en permanence
3- réfléchir à comment classer les 65000 formes de variation (voir peut-être créer un lib)
4- trouver un partenaire pour produire la carte audio linux, pour éviter cette conversion bien lourde au format audio des cartes audio d'aujourd'hui.

En d'autres mots, ce serait d'essayer de trouver une équipe qui prenne en charge, le déploiement de PianoBaul de manière à pouvoir me libérer pour d'autres taches, ne jouant ici plus qu'un rôle d'éventuel consultant. Ce que je pouvait apporter pour ce projet, je l'ai apporté, il ne pourra continuer à se construire qu'en profitant du savoir des autres, un savoir qui peut leurs sembler simple qui pour moi demanderait énormément d’efforts pour peu d'effets.

Cordialement

Cordialement

Hors ligne

#9 08-11-2014 22:00:36

temps
Membre
Inscription : 01-03-2014

Re : PianoBaul

Bonjour,
J'ai un peu avancé, en créant un interupteur qui active ou désactive les qspinbox.
Pour l'équipe, c'est pas encore ça. pour alléger le code je suis entrain de réfléchir aux différentes techniques de gestion des 65536 formes.
Actuellement j'ai commencé à utiliser un switch sur des class, la question que je me pose, c'est s'il est possible d'intégrer dans une application, un code qui ne compile que la class qu'on va utiliser.
En d'autres mots, créer un application, (un truc compilé, qui une fois lancée puisse créer une compilation à chaque changement de piano.

Cas actuel la compilation contient une dizaine de fichiers compilés plus les 65536 class (je suis entrain d'écrire les class en fait il n'y en a que 40 à l'instant t).
Je voudrais arriver à créer une application ne contenant que la dizaine de fichiers compilés plus un compilateur à la demande de la class necessaire.

Est-ce que quelqu'un a déjà ru l'idée de cette technique et si oui comment il a fait. Sinon, est-ce que quelqu'un peu me dire si c'est réalisable ?

Pour faire le point sur la structure conceptuelle de l'application.
Il y a 65 mille class pour les mouvements, il y a 14 qspinbox pour créer les paysages ou les mouvement se déroulent, et il y a une structure pour différencier les 26 touches du piano. Il ne manque qu'à améliorer la gestion des 65k class et à décider comment les classer.
Le concept de la structure est basique, pour ceux qui connaissent l'histoire raconté aux enfants par l'homme sous le chêne.
Elle servait à l'apprentissage d'une ancienne langue.

Cordialement

Dernière modification par temps (08-11-2014 22:12:38)

Hors ligne

#10 21-11-2014 07:14:33

temps
Membre
Inscription : 01-03-2014

Re : PianoBaul

Bonjour,
J'ai avancé sur le projet en commençant l'écriture des AdnForme (bientot les 40 premières de 65000). Chaque AdnForme permet d'obtenir 256 puissance 14 piano différents.
Les évolutions prévues sont :
1- reprendre l'écriture de clavier.cpp car il me semble que dans sa forme d'écriture première, il y avait un meilleur rendue du toucher. J'ai commencé à tester avec des switch sans grande différence, je vais modifier comme suit, la construction actuelle est historique à savoir qu'elle est prévue pour générer la note. Mais comme il y a eu un changement et que les notes sont générées au choix du clavier, cela peut être simplifié et ensuite forker directement même si c'est plus lourd nous retrouvons un meilleur touché clavier qui est plus important qu'un code optimisé.
2- essayé de voir s'il est possible de factoriser une partie ou de créer des piles statiques dans les AdnForme, pour alléger l'application, car de 100ko avec quelques AdnForme, elle passe ) 200ko avec 40 AdnForme
3- Essayer d'ajouter une colonne d'effets sur les sons joués à droite du piano actuel, je pense à des effets d’écho ou d'étirement. Le fait que nous utilisons sox devrait grandement facilité l'écriture
4- Commencé à créer des points de repère pour les musiciens en exemple, indiquer les valeurs pour obtenir un piano de tambours, ou un piano classique, ou un violon, ou une voix humaine alto ... Peut-être même créer un sélecteur automatique à l'aide d'un Qspinbox, il suffit pour ça d'injecter les valeur dans les autres Qspinbox.
5- revenir au fil originale et essayer de faire de tout ça un paquet debian, une application bureau

En d'autres mots, du travail pour plusieurs vies si je continue tout seul, et je serai mort bien avant d'avoir fini.
Cordialement

P.S. la vidéo de la version actuelle est là http://youtu.be/gneaqi3Sa8I?list=UU8nvL … wggMIZbCEg 
Elle montre qu'il reste encore du travaille, l'application est bien mais pas extraordinaire comme je le voudrais.

Hors ligne

Pied de page des forums