Un compositeur interprète avec Ada. [Ada] [Conception] - Ada - Programmation
Marsh Posté le 12-08-2009 à 20:49:49
Bonjour,
En attendant d'avoir conseil, j'ai fait ceci.
@+
Marsh Posté le 13-08-2009 à 08:04:07
Bonjour , j'ai oublié de préciser que pour ce projet, je souhaite modéliser une solution orienté objet.
N'ayant suivit que 30minutes de cours sur le sujet, toute précisions sera la bienvenue.
J'utilise une bibliothèque MIDI, libportmidi, pour envoyer les messages MIDI aux instruments.
Je ne sais pourtant pas si une modélisation objet serait adapté à ce programme temps réel.
Par temps réel, j'entends un programme qui va suivre une horloge.
Merci pour votre contribution.
Marsh Posté le 13-08-2009 à 08:17:28
Pour vous faire un topo... J'ai :
- un orchestre composé de :
- N musicien(s)
- N instrument(s)
- une œuvre composé de :
- N partitions
- un compositeur qui
- écrit les partitions (l'œuvre) sans fin et en continu.
- un chef d'orchestre qui
- donne la mesure
- démarre le concert
- stop le concert
- reprend le concert.
Marsh Posté le 13-08-2009 à 08:36:08
Quelqu'un pour m'aider à établir le graphe de dépendance ?
Marsh Posté le 13-08-2009 à 08:42:11
C'est pas très clair, ton histoire. Il y a des données quelque part ? Si oui elles sont modélisées comment ? Tes musiciens, ce sont des agents indépendants ? Tu veux faire quoi ? Modéliser un échange de messages entre le chef et les musiciens ?
Marsh Posté le 13-08-2009 à 08:54:18
el muchacho a écrit : C'est pas très clair, ton histoire. |
C'est la vue que j'ai d'un concert (symphonique)
el muchacho a écrit : |
Bonne question, qu'entends-tu par donnée ?
el muchacho a écrit : |
Pas compris le sens de la question Tu peux reformuler ?
el muchacho a écrit : |
Un concert.
el muchacho a écrit : |
Entre autre oui, mes musicien reçoive les partitions de du compositeur et le tempo ainsi qu'un "start" et "stop" du chef d'orchestre.
A priori, pour le moment.
Marsh Posté le 13-08-2009 à 11:17:07
OK, j'avais pas vu ta référence à MIDI. En fait, tu veux coder un séquenceur MIDI. Tu aurais mis ça dès le départ, ça aurait été tout de suite plus clair. Je crains qu'on ne puisse pas te répondre correctement si on ne connait pas précisément la norme MIDI et si on n'a pas jeté un oeil à ta lib, parce que là on fait du temps réel dur (càd avec des délais fixes à ne pas dépasser). C'est pas incompatible avec de l'objet, mais il y a des impératifs de performance qui vont fortement influer sur l'architecture du programme. Donc ça va être un peu dur de répondre comme ça.
Mais si tu changes ton titre en "un séquenceur MIDI avec ADA", p-ê que ça peut intéresser des gens.
Marsh Posté le 13-08-2009 à 11:31:54
Merci pour ta réponse el muchacho,
J'ai une grande interrogation sur l'avantage à tirer d'une modélisation orienté objet.
Par ailleurs, bien que mon programme soit constitué en partie comme un séquenceur, un point important est la partie composition. En effet, le programme est sensé composer la musique seul.
Donc, c'est plus qu'un séquenceur. Voilà pour le titre. Mais je vais découper le projet en deux, tu as raison, deux problème, - le séquenceur temps-réel et le compositeur.
Merci pour ton aide, ton attention...
Marsh Posté le 16-08-2009 à 08:53:46
J'en suis là harmonie-0.0.1-0a.tar.gz,
README=Faites : "modeprobe snd_seq" dans la console root si nécessaire.
TODO="Hello !
make !
call harmonie !
initialize and run or load file betwen and try START and STOP or 'Esc' to return to main menu."
Je ne sais pas encore exactement comment je vais exploiter les ANN mais, j'ai mon idée.
Je même peut-être utiliser A* en combinaison.
J'ai trouvé une bibliothèque MIDI, MIDI.FILE , ada-midi, avec Ada, mais un soucis, pas moyen d'extraire directement le contenu d'un fichier. Obligé de le ré-écrire par une bidouille de l'implémentation de la bibliothèque.
Good luck !
Marsh Posté le 18-08-2009 à 14:26:40
Bonjour, voici l'évolution du développement ::= Harmonie-0.0.1-3a.tar.gz exploitant les réseaux de neurones artificiels.
Un fichier midi est fourni en exemple, Au clair de la lune . Mais j'ai pas testé encore.
Le code est pas terrible.. mais ça tourne. Et j'ai oublié de supprimer les infos de tracage. Masi toujours 'Esc' pour sortir. Enfin débrouillez-vous jusqu'à la prochaine version.
Bien sûr, si vous souhaitez participer ... n'hésitez pas !
Voilou !
Marsh Posté le 19-08-2009 à 11:16:08
Salut,
Je comprends pas pourquoi j'ai 145 au lieu de 144 dans mon octet de Status.
Et j'ai l'impression que je parcoure plusieurs fois la même section du registre au décodage.
C'est plus qu'un impression, mais ça fais dix fois que je relis le code, je trouve pas.
Vous avez jeter un œil au code ? Qu'en pensez-vous ?
Marsh Posté le 20-08-2009 à 12:46:43
Bonjour,
Vous êtes quelque uns à vous intéresser au projet...Voici quelques corrections du paquet précédent ::= Harmonie-0.0.1-4a.tar.gz
Vous trouverais un fichier Hello.mid, le fichier avec lequel j'ai testé le programme qui génère un note-on suivie d'un note-off et ce en boucle. j'ai ajouter une note dans le fichier TODO, Les meta évènements ne sont pas gérés, et la gestion du temps n'est pas implémentée.
Merci à ceux qui me filent des coups de pouce pour réaliser ce programme.
Voilou !
Good luck !
Edit : j'ai encore oublié de supprimer les info de traçage et de décommenter quelque ligne dans la tache Harmonie dans midi_engine.adb !
Marsh Posté le 22-08-2009 à 15:25:48
The matrix a écrit : Bonjour, |
Ah non, cette fois j'ai tout mis propre !
Up et Link ::= Harmonie-0.0.1-5b
N'hésitez pas...
What else? Merci, bien à vous !
Marsh Posté le 22-08-2009 à 17:58:06
Re- !
En attendant que je gère les méta évènements, il semble qu'un instruction "Buffer_Length := 0;" dans le case Meta de Section s'impose. C'est dans les ligne 610 du fichier midi_engine.adb , mais je suis tout décalé là.
Marsh Posté le 26-08-2009 à 18:09:12
Bonjour,
je viens vous soumettre pour analyse un petit bout de code. Mon projet est copieux, je vais y allez petit à petit. Sans prétention, j'aimerai parvenir à écrire du code correct avec Ada, n'ayant suivi que 300 en gros de cours de prog je ne sais pas si je suis bon.
Il s'agit du que du main file dans le lequel je réalise l'acquisition de paramètres nécessaire à l'exploitation de la suite du programme.
Pseudo-Code ::
Si aucun nom de fichier n'est fournit en ligne de commande, on lit le fichier par défault;
En cas d'exception, on saisie les données, puis selon l'utilisateur, on les enregistre.
Si non (si un nom de fichier est founit), on lit le fichier dont le nom est donné en ligne de commande ;
En cas d'exception, on saisie les données, puis selon l'utilisateur, on les enregistre.
Pour le code, c'est un poil plus fastidieux :
Les boucle Prepare0 et Prepare1 sont strictement les même.
Code :
|
Voilà, manque t-il quelque chose ?
S'il vos plaît, merci, bien à vous.
Marsh Posté le 16-09-2009 à 21:33:22
Bonjour,
Je viens poster les dernière sources du projet,
Alors, je ne peux pas bien tester les dernière fonctionnalités...Car je n'ai pas de clavier et en plus je ne sais pas en jouer, enfin bon, j'aurais pu mieux faire.... Donc, j'ai pas tester si l'interaction entre le jeu au clavier et le jeu de l'ordinateur étaient équilibré... Car les dernière modif, justement, c'est la lecture du jeu au clavier. Ca passe dans un réseaux de neurones et c'est sensé modifier le jeu de l'ordinateur.
Voila. Et le lien Harmonie-1.1.0.7a pour Gnu/linux, nécessité la lib portmidi0-dev
Marsh Posté le 16-10-2012 à 17:53:58
Hey !
Salutations à tous les accro de technologie, pour vous satisfaire sur ce sujet, j'ai un peu de code.
Mais là n'est pas la question, ce que je veux ces comparer le les codes d'année en année.
Voici comment je génère mes drums aujourd'hui !
Code :
|
Code :
|
J'accorde 5 à 10 degrés d'efficacité à cette méthode.
Ce que je veux c'est comparer les code avec ce de demain ou de dans dix ans.
En même temps si vous avez un avis sur la question... Bienvenue.
Marsh Posté le 09-08-2009 à 15:52:34
Bonjour,
j'ai rien fais, parce que je reprend tout depuis le début.
Donc, je souhaite modéliser un compositeur interprète de musique avec Ada.
Seulement, malgré mon expérience de quelque 10 de programmes, je ne sais toujours pas programmer correctement. Je viens donc chercher conseil ou modèle pour ce nouveau projet.
Merci de votre contribution.
Message édité par The matrix le 13-08-2009 à 09:39:10
---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter