Publicité

Annonce

Réduire
Aucune annonce.

Projet de développement d'un programme pour Radias.

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Projet de développement d'un programme pour Radias.

    Bonjour.
    J'avais présenté il y a quelque temps un projet d'un compositeur virtuel pour instrument Midi.
    Me heurtant au problème de norme general midi avec mon Radias, j'ai entrepris d'écrire un programme spécifique pour le Radias.
    Je vous présente aujourd'hui http://www.toofiles.com/fr/oip/docum...an-000a-5.html, un programme écrit pour PC Linux avec le langage Ada nécessitant l'installation des bibliothèque portmidi et porttime pour partager d'abord mon expérience, puis éventuellement pour unir celles qui nous sont commune dans le but de promouvoir ce compagnon pour le Radias.
    J'ai dans l'idée de mettre en place un certain nombre de technique informatique pour parvenir à ma fin (produire de la musique automatiquement).
    Le programme est sensé prendre des donnée en entrée pour les traiter afin de généré des message en sortie. Il a vocation d'accompagner l'artiste.
    Cela vous branche t-il ?
    Lightman : a small MIDI composer : download

  • #2
    Ca ne me branche pas du tout...

    ... Mais uniquement parce que je n'ai pas de Radias !
    Kronoscopie, tout sur le Kronos

    http://www.kronoscopie.fr

    Commentaire


    • #3
      Envoyé par DMNL Voir le message
      Le programme est sensé prendre des donnée en entrée pour les traiter afin de généré des message en sortie.
      :o En quoi est-il spécifique du Radias ? As-tu établi une spécification fonctionnelle ?

      Commentaire


      • #4
        Le type manipulé est architecturé comme le Radias.

        C'est à dire qu'on manipule un instrument multi-timbre dont un peut être spécialisé pour les drums avec des timbre synth de 2 oscillateur un filtre double avec tous les paramêtre qui vont bien, un eq 2 bandes... etc. Donc à chaque sous système du Radias est associé un sous système logiciel.
        Bien sur il est possible d'architecturé les même élément de diverse manière pour garder la cohérence avec d'autre instrument. En ce qui concerne les messages Midi, je ne sais pas si il sont spécifique au Radias.
        Je suis encore loin d'avoir terminer l'implémentation. Mais je suis à présent dessus à plein temps.
        En espérant avoir répondu à ta question.
        Lightman : a small MIDI composer : download

        Commentaire


        • #5
          Envoyé par DMNL Voir le message
          En espérant avoir répondu à ta question.
          Oui : en fait, tu te focalises actuellement sur l'implémentation d'une interface MIDI avec le Radias ?

          La couche supérieure du projet - les fonctions de composition du compositeur virtuel - seront abordées plus tard ? Mais les as-tu déjà spécifiées, même si ce n'est qu'une ébauche ? Car AMHA c'est beaucoup plus intéressant pour nous que des détails de protocoles de com' et de routines utilitaires présentées dans ton lien (qu'il faut bien implémenter un jour ou l'autre, c'est d'accord !).

          Commentaire


          • #6
            En faite à chaque composant est associé un "driver".
            Il y en à un au niveau du radias, un au niveau des timbre, et après un pour chaque composant du timbre.
            Pour le moment je m'attache à transmettre les bon message au bon composant.
            Mais je fais aussi un peu de recherche sur les technique de composition.
            Vous pouvez trouver dans le fichier generic_orchester.adb contenu dans les sources, un passage sur la génération de note-on et note-off.
            Il s'agit d'un réseaux de neurones artificiel auquel j'ai donné en dure quelque connaissance et je tourne avec. Mais c'est loin d'être un compositeur de musique. De ce côté là effectivement tout reste à faire.
            Lightman : a small MIDI composer : download

            Commentaire


            • #7
              Je vous poste les dernière sources avec essentiellement quelques correction des spécification du type T_Radias et l'implémentation de quelques sous-fonctionnalité. Le message reçus du Radias sont acheminé aux composants correspondant mais ne sont pas encore traité.


              Pour utiliser ce programme en sont état :
              décompressez l'archive.
              désarchivez l'archive.
              Placez vous dans le répertoire Mutan-0.0.0a-9.
              tapez la commande "make" ; Un compilateur Gnat et Make son nécessaire. Vous devez installer également la bibliothèque portmidi.
              tapez ./mutan pour démarrer le programme.

              Dans le programme :
              tapez la commande "configure".
              Choisissez "ajouter un instrument" (par défaut) (Ici il y a un bug (oui déjà).. il faut s'y prendre à deux fois.)
              Renseignez le programme.
              Puis...
              Choisissez configurer un instrument. (par defaut)
              Renseigner le programme.
              Quitter le menu de configuration pour revenir à l'écran principal.
              Tapez Start en spécifiant au cas échéant le tempo (compris entre 20.0 et 300.0 : défaut 120.0)
              ou tapez la barre espace.

              Tapez à nouveau espace ou la commande Stop pour interrompre le programme.

              Pour quitter, tapez 'esc' (escape) puis entrée.
              Si vous avez initialiser l'instrument avec un contrôleur, actionner un des boutons de l'instrument pour libérer la lecture des entrée.

              Charger une configuration et sauvegarder une configuration ne son pas encore implémentés.
              Si un détail m'avait échappé, n'ésitez pas à me le faire remarquer. Merci.
              Lightman : a small MIDI composer : download

              Commentaire


              • #8
                Je pense que tu auras plus de testeurs si tu fournis une version exe. La majorite des membres d'AK ne sotn pas informaticiens.
                Kronoscopie, tout sur le Kronos

                http://www.kronoscopie.fr

                Commentaire


                • #9
                  Voici le binaire statique, strippé, dans une archive compressée.
                  Il est probable que l'installation de la bibliothèque portmidi soit indispenssable.
                  Pour désarchiver le binaire tapez "tar -x -v -z -f Mutan-0.0.0a-9bin_linux.tgz".
                  Merci François. :super

                  J'oublie le binaire : http://www.toofiles.com/fr/oip/docum...bin_linux.html
                  Lightman : a small MIDI composer : download

                  Commentaire


                  • #10
                    Bonjour,
                    Alors, désolé pour les erreurs, j'avais vraiment bâclé les dernière modif.
                    Voici les dernière sources+exécutable ::= http://www.toofiles.com/fr/oip/docum...-11srcbin.html sans les erreurs et sans le bug cité ci-dessus.
                    Ce matin, avant de me lancé dans de nouvelles itération d'analyse/implémentation, j'ai dispatché au maximum, les différent éléments constituant précédemment le paquetage generic_orchester.
                    On se retouve avec un répertoire supplémentaire nommé drivers dans lequel on trouve la spécification du Radias.
                    A+
                    Lightman : a small MIDI composer : download

                    Commentaire


                    • #11
                      Bonjour,

                      Pour avancer un peu côté composition, j'ai défini 3 format de fichier.
                      D'abord, si vous ne l'aviez pas remarqué, vous devez savoir que le jeu et géré par des réseaux de neurones artificiel. Cependant, cela est sensé être transparent pour l'utilisateur.
                      Néanmoins, la configuration de l'instrument passe par la génération de ces réseaux.
                      Pour chaque timbre, vous devez fournir un premier fichier, qui est l'index des parties du morceau.
                      Il est constitué d'une liste d'autre nom de fichier (partie)
                      Ensuite un fichier de partie contient le nom du fichier du réseau de neurones pour la partie, la table d'entrée dans le réseau, et le nombre d'itération à effectué pour ce réseau, ce qui constitue la partie.
                      Une entrée est un groupe de 3 valeurs, la note, la vélocité, et la duré de la note.

                      Ex :
                      1) Dans mon fichier d'index de timbre drums.txt j'aurais ::=
                      drums1.txt
                      drums2.txt
                      drums3.txt
                      drums2.txt
                      drums3.txt
                      drums2.txt
                      drums4.txt
                      ... ainsi de suite pour constituer le morceau de drums.
                      2) Dans un fichier de partie de drums j'aurais ::=
                      drums1.wgt
                      36 100 45 44 100 45 0 0 0 0 0 0 0 0 0
                      2

                      (Ou 45 ici représente un double croche), la taille des accords est limité à 5 notes.


                      3) Dans le fichier source des réseaux de neurones, j'aurais les accord à enchainer :=
                      36 100 45 44 100 45
                      41 100 45 47 100 45
                      41 100 45 45 100 45
                      41 100 45
                      .../...

                      Qu'en pensez vous ? Merci.
                      Lightman : a small MIDI composer : download

                      Commentaire


                      • #12
                        Bonjour,

                        J'ai légèrement changé d'avis. Au lieu de faire un fichier d'index de fichier de données j'ai fait un seul fichier de données, donc un par timbre tout de même.
                        On se retrouve donc avec un fichier de timbre contenant un liste d'enregistrement constitué de trois données :
                        - le fichier de réseau de neurones artificiel.
                        - la table d'entrées dans le réseau (celle-ci correspondant au dernier pas de la sequence)
                        - le nombre d'itération pour ce réseau.

                        Voici mes sources+ binaire pour PC Linux ::=http://www.toofiles.com/fr/dl/docume...-000a-014.html

                        Vous trouverais dans cette archive un répertoire Mutan contenant un exemple de fichiers pour des drums.

                        Pour générer vos réseaux de neurone, le générateur "network_generator" prend 3 ou 4 arguments en ligne de commande :
                        - le nom du fichier source contenant la suite de pas à jouer
                        - le nom du fichier cible (donnez lui une extension ".wgt")
                        - un paramètre "True" ou "False" selon lequel on réutilisera le fichier cible pour l'apprentissage.
                        - un réel communément compris entre 0.1 et 0.0001 ... plutôt au alentour de 0.02 qu'il vous faut adapter en fonction de l'architecture de vos séquences de pas et des performances du réseau.

                        Je n'ai toujours pas implémenté la sauvegarde de config.

                        Je cherche un compositeur pour les drums.

                        Merci.
                        Lightman : a small MIDI composer : download

                        Commentaire


                        • #13
                          Bonjour à vous.
                          Voilà donc, je préciser quelque point mai j'aurais voulu savoir si il est possible de faire de la musque selon ces spécifications ?

                          En plus des renseignement que je vous ai donné, j'ai ajouté un paramètre "Résolution" à au groupe de paramètre pour les fichier de partition. Celui-ci correspond à la vitesse d'itération, et prend une parmi 7 valeurs entre quadruple et ronde. C'est à dire qu'on fera une itération avec le réseau courant toute les croche pour simple, double croche pour double.... Etc.
                          Et je lis le fichier en boucle.

                          Les sources + binaires, mais je me suis dis qu'avec les binaires vous auriez des problème quand même alors comptez pas trop dessus... http://www.toofiles.com/fr/dl/docume...-000a-015.html
                          J'ai implémenté la sauvegarde et la restoration

                          Merci pour votre aide.
                          Dernière modification par jovalise, 21 juin 2010, 15h18.
                          Lightman : a small MIDI composer : download

                          Commentaire


                          • #14
                            En fait, j'ai oublié plein de chose, pardon.

                            Je suis encore loin d'avoir terminé.
                            J'ai écris les bases.
                            Reste à travailler chaque point en détail.
                            Pour le principe donc, je travail avec des réseaux de neurones artificiels parce-qu'il sont très intéressant... Je suis curieux de leur fonctionnement en fait.
                            je compte donc implémenter pour chaque composant du Radias des effet varié et divers basé sur les réseaux de neurone avec la possibilité d'interagir avec eux via une entrée (un contrôleur) au cas échéant ; Et je comptais un peu sur vous pour me donner des idées ou votre expérience pour programmer ces effets.
                            Je doit encore implémenter un système pour la variation de signature et de tempo, de changement de programme et autre services.
                            Lightman : a small MIDI composer : download

                            Commentaire


                            • #15
                              La documentation pour utiliser le programme.

                              Bonjour,

                              Je viens essayer de faire monter la côte du sujet en proposant une synthèse de documentation pour utiliser ce programme.

                              Je vous en fait un copier/coller.

                              -------------------------------------------------------------------------------
                              --Fichier TODO du programme Mutan (C) Copyright 2010 Manuel De Girardi --
                              -------------------------------------------------------------------------------

                              Table des Matieres

                              0.0 Installation
                              1.0 Preambule
                              1.1 Les notes
                              1.2 Partie de partition
                              1.3 Index de partition
                              1.3.1 Fichier de partie
                              1.3.2 Table d'entree dans le reseau
                              1.3.3 Le nombre d'iterations
                              1.3.4 La resolution
                              2.0 Configuration
                              3.0 Utilisation de mutan
                              3.1 Demarrage du jeu
                              3.2 Arret du jeu
                              3.3 Arret du programme
                              4.0 Fonctionnement de mutan
                              5.0 Network_Generator


                              Mode d'emploi de Mutan


                              0.0 Pour utiliser ce programme en sont état :

                              ouvrez une console text.
                              Placez vous dans le répertoire contenant le fichier Mutan-0.0.0a-016.tar.gz ::=
                              "cd PATH" ou PATH est le nom du repretoire contenant Mutan-0.0.0a-016.tar.gz
                              décompressez l'archive ::= "gunzip Mutan-0.0.0a-016.tar.gz"
                              désarchivez l'archive ::= "tar -x -v -f Mutan-0.0.0a-016.tar"
                              Placez vous dans le répertoire Mutan-0.0.0a-016 := "cd Mutan-0.0.0a-016"
                              tapez la commande "make" ; Un compilateur Gnat et Make son nécessaire. Vous
                              devez installer également la bibliothèque portmidi.
                              copiez mutan et network_generator en /usr/bin/mutan et /usr/bin/mutan_generator

                              1.0 Preambule :

                              1.1 Les notes :

                              Les notes sont des triplets de valeurs qui vont de 0 a 127.

                              La premiere valeur de ces triplets represente la tonalite de la note ; un Do, Re, Mi... Etc. La valeur 64 represente le a peu pres le milieu du clavier d'un piano, c'est le C3, un Do.
                              La seconde valeur de ces triplets represente la velocite de la note : c'est la force avec laquelle on joue la note.
                              LA troisieme valeur represente la duree de la note ; elle prendra donc une des 7 valeurs parmis celle des figures de temps musicales par tranche de 18 dans la division de 127. une croche vaudra donc entre 18*3+1 et 18*4, moyennement 63.


                              1.2 Partie de partition :

                              Vous devez produire pour chaque timbre le fichier d'index de partition et les reseaux de neurones artificiels correspondant aux parties de parition.

                              Pour produire une partie de partition vous devez fournir une sequence de pas de
                              5 notes maximum en specifiant pour chaque note, la tonalite, la velocite, et la
                              duree des notes, avec une virgule pour separer chaque valeur.

                              ex : 36, 105, 45,
                              44, 95, 45,
                              38, 95, 45, 41, 100, 45,
                              44, 85, 45,

                              Pour obtenir le reseau de neurone associe, utilizer le network_generator de mutan (voir Chapitre 5).


                              1.3 Index de partition :

                              L'index de partition contient les partie successive a jouer.
                              Il est construit par une suite de quadruplets constituer du nom di fichier de reseau de partie a jouer, de la table d'entree dans le reseau, du nombre d'iteration pour dans cette partie et un chiffre additionnel du systeme donnant la vittesse de jeu.


                              exe : Radias_01/Timbre_4/net/intro_00.wgt
                              44 90 45 0 0 0 0 0 0 0 0 0 0 0 0
                              24
                              double
                              Radias_01/Timbre_4/net/intro_01.wgt
                              44 90 45 0 0 0 0 0 0 0 0 0 0 0 0
                              8
                              double

                              0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                              2
                              double
                              Radias_01/Timbre_4/net/intro_00.wgt
                              44 90 45 0 0 0 0 0 0 0 0 0 0 0 0
                              30
                              double
                              Radias_01/Timbre_4/net/intro_01.wgt
                              44 90 45 0 0 0 0 0 0 0 0 0 0 0 0
                              8
                              double
                              .../... Etc.


                              1.3.1 Fichier de partie :

                              Vous devez fournir le nom complet du fichier de partie a partir du point duquel vous appelez mutan.

                              1.3.2 Table d'entree dans le reseau :
                              La table d'une entree dans le reseau est la precedente de celle que l'on souhaite jouer a l'exception de la priere, pour laquel il faut fournir la derniere entree. Elle est construite des 5 triplets de note avec les zero de completion.

                              1.3.3 Le nombre d'iterations :
                              Ce nombre est un entier compris de 1 a N correspond au nombre de fois qu l'on va jouer avec ce fichier de partie a ce momment du temps.

                              1.3.4 La resolution :
                              C'est une chaine de caracteres valant une des 7 figure d'indication de duree de note (voir Chapitre 1.1), elle indique le temps que l'on va attendre avant de jouer entre chaque accord (c'est un peu une valeur obscure pour moi).


                              2.0 Configuration :

                              lancez mutan ::= "mutan"
                              tapez la commande "configure".
                              Choisissez "ajouter un instrument" (par défaut)
                              Renseignez le programme.
                              Puis...
                              Choisissez configurer un instrument. (par defaut)
                              Renseignez le programme.
                              Note : Donnez le nom complet du fichier d'index de partition pour chaque timbre a partir du point duquel vous appellez mutan.

                              Quitter le menu de configuration pour revenir à l'écran principal.

                              3.0 Utilisation de mutan :

                              3.1 Demarrage du jeu :

                              Tapez Start en spécifiant au cas échéant le tempo (compris entre 20.0 et 300.0 : défaut 120.0) ::= "start 186.0"
                              ou tapez la barre espace.

                              3.2 Arret du jeu :

                              Tapez à nouveau espace ou la commande Stop pour interrompre le jeu.


                              3.3 Arret du programme :

                              Pour quitter, tapez 'esc' (escape), et actionner un bouton du controleur au cas echeant.

                              4.0 Fonctionnement de mutan :
                              L'agorythme de mutan est une lecture en boucle des partie de partition pour N iteration et de partition entiere entre les commandes start et stop.

                              5.0 Network_Generator :

                              Pour utiliser le network_generator vous devez fournir en ligne de commande le
                              nom du fichier de partie de partition, le nom du fichier cible communement le
                              meme avec l'extension ".wgt", une chaine de caracters valant "True" ou "False" indequant si vous souhaitez ne pas utiliser un reseau existant, optionnelement une valeur comprise entre 1.0 et 0.0 expriment un point d'apprentissage du reseau de neurones artificiels communement au alentour de 0.02.

                              ex : "mutan_generator Fichier_de_Partie.txt Fichier_Cible.wgt True 0.015"

                              Notes : Ce programme genere en plus un fichier supplementaire du meme nom
                              avec une extention ".bin".



                              Mail::degirardi.manuel@neuf.fr



                              Les dernières sources ::= http://www.toofiles.com/fr/oip/docum...-000a-016.html contenant la documentation.



                              Voila Good Luck !

                              Désolé pour les caractère obscure.
                              Lightman : a small MIDI composer : download

                              Commentaire

                              Chargement...
                              X