FAIRE JOUER DU MIDI À PARTIR DES SYMBOLES DE MUSIQUE.

Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016 - 7 juil. 2003 à 09:56
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016 - 9 juil. 2003 à 09:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/7813-faire-jouer-du-midi-a-partir-des-symboles-de-musique

Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
9 juil. 2003 à 09:57
Voilà une adresse pour un article Sur les Timers Multimedia.
Pour ceux que ça peut intéresser...

http://www.vbaccelerator.com/home/VB/Code/Libraries/HiResTimer/article.asp

A+
Afyn
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
9 juil. 2003 à 08:57
Voilà les fonctions citées dans la doc

Multimedia Timer Functions
The following functions are used with multimedia timers.


timeBeginPeriod
timeEndPeriod
timeGetDevCaps
timeGetSystemTime
timeGetTime
timeKillEvent
TimeProc
timeSetEvent

Ca fonctionne bien et c'est stable.

A+

Afyn
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
9 juil. 2003 à 01:05
Voilà! La source a été mise à jour pour remplacer les 2 occurences de
xLc = Val(Left((Right(xPortée, 3)), 1))
par xLc = Val(Fix(Right(xPortée, 3)))

S'il y a d'autres prob, SVP dites le moi...
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
8 juil. 2003 à 21:17
Merci à Afyn et clementpat car j'aurais JAMAIS trouvé ce prob de compatibilité... Vive MS (MicroShit)
Je vais faire une mise à jour bientôt...

Pour ce qui est du pictureBox et de son scrollBar vertical, je me suis un peu gouré dans les explications car c'est totalement indépendant de la mémoire de l'ordi et croyez moi il n'y a vraiment pas de mystère dans cette fonction.

C'est vraiment simple:
Chaque fois que l'on actionne le scrollBar vertical ou horisontal, tout le pictureBox est redessiné en tenant compte des nouvelles coordonnées alors ya vraiment aucune limite. Par contre, le prix à payer est du temps de processeur et celà est parfois audible (sur mon Pentium 333MHz) quand on fait jouer une page très chargée de symboles.

Il y a 2 solutions à ce petit problème:
1- Ne pas updater le picturebox pendant qu'on joue (pas intéressant)
2- Remodeler le prog entier de la façon suivante:
Dessiner chaque mesure dans son propre picturebox que l'on gardera invisible et reconstituer l'affichage de la partition à partir d'un assemblage approprié de ces picturebox invisibles qui prendra moins de temps car moins d'opérations. Ouash... Ca me tente pas...

Ps(si tu avais utilisé un Timer pour déclencher des Ticks, la musique
ne se bloquerai pas quand on agit sur le scoll bar...
Merci du tuyau car j'ignorais ce qui causait cela. Mais il faut néanmoins TOUJOURS utiliser UNE SEULE référence de temps sinon tu vas avoir des problèmes de synchronisation. Pour le moment c'est GetTickCount qui est la référence unique mais si tu es capable d'utiliser 1 seul timer pour tout référencer alors...

PS:
On prend ca où un timer Multimédia? J'ai jamais entendu parler de ca...
Est-ce un composant? Si oui alors son nom SVP...
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
8 juil. 2003 à 19:10
N'est on pas limité par la taille de la picture Box ?
Non car il y a un scrollbar vertical donc pas de limite sauf cette de la mémoire de l'ordi.

Cette fonction là est terrible ...
Tu peus me la détailler ?
Ps(si tu avais utilisé un Timer pour déclencher des Ticks, la musique
ne se bloquerai pas quand on agit sur le scoll bar...
C'est vrai que les timers VB ne sont pas précis, mais un Timer
Multimedia descend au millième de seconde -si tu veux des exemples, va voir mes sources ! sinon je peux m'expliquer)
Merci encore
A+
Afyn
cs_clementpat Messages postés 406 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 25 janvier 2014
8 juil. 2003 à 14:18
Salut a toi boursicotteur , permet moi de te féliciter , pour ce super programme qui a du te demander un travail enorme ( bien que l'on ne compte pas no heures quand on est mordu de programmation ) j' ai moi aussi essayé de demarrer ton programme sur windows millenium ,
et je me suis apercu qu'il bloqué .en lisant les commentaire , je me suis dit "un travail pareil s'est con qu'il ne fonctionne que sur windows 98 " j'ai donc relut les commentaires , et j'ai essayer de faire , comme préconisé par [Afyn] de corriger la fonction . et bien cela marche impeccable sous windows millenium . en fait , : xLc = Val(Fix(Right(xPortée, 3))) fonctionne sous 98 , mais pour millenuim et XP il faut mettre
a la place : xLc = Val(Left((Right(xPortée, 3)), 1)) : bravo a AFYN pour avoir trouvé le probleme ( pas facile a trouvé dans ce programme ) mais bravo a toi pour cet enorme travail : 10/10
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
8 juil. 2003 à 08:52
xLc = Val(Left((Right(xPortée, 3)), 1)) est équivalent à
xLc = Val(Fix(Right(xPortée, 3)))

Je suis d'accord, c'est équivalent, mais ca plante sur NT et XP
Ca renvoi une erreur n° 13 Type incompatible (il doit falloir un Dble).
Moi, je dis ca pour ton info...
A+
Afyn
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
7 juil. 2003 à 23:33
xLc = Val(Left((Right(xPortée, 3)), 1)) est équivalent à
xLc = Val(Fix(Right(xPortée, 3)))
car xPortée a la forme ":CSol4:L2.5" et ce que je veux extraire est 2 donc non il n'y a pas d'erreur.

Combien de mesures peut on écrire ?
En théorie environ 250 mais en pratique ca risque de foirer car il n'y a que 16 canaux MIDI disponible (dont 1 est réservé pour DRUM) et on peut mettre 1 seul instrument par canal. Donc c'est faisable mais à cette condition et la je sais pas comment le processeur va gérer une aussi grosse tâche.

N'est on pas limité par la taille de la picture Box ?
Non car il y a un scrollbar vertical donc pas de limite sauf cette de la mémoire de l'ordi.

Pourquoi pas un timer pour jouer les notes ?
Trop compliqué et pas assez précis car le timer ne peut pas tenir compte des délais causés par le processeur quand il exécute des instructions. Il en résulterait une désynchronisation des mesures entre elles.

Pour quoi ne pas avoir pris le Format Midi pour Enregistrer les
Morceaux ?
J'y ai pensé mais cela doit se faire en 2 étaper.

La première étape consiste à mettre les données dans une base de données de manière facilement accessible afin de minimiser le travail du processeur. Le processeur va utiliser ces données pas seulement pour jouer des sons mais aussi pour fabriquer et afficher une partition.

La 2è étape consisterait à mettre tous ces sons dans un fichier .mid mais je sais pas comment faire et je suis pas intéressé non plus. Pour trouver c'est vraiment facile; Il suffit d'aller voir la source de Apophis.
-------
Plusieurs ont dit que ca ne fonctionne pas sous NT, ME et XP.
Qu'est-ce qui se passe au juste? Aidez moi si vous voulez que je puisse vous aider...

Si tout s'exécute bien mais qu'il n'y a pas de sons alors ca me dit qu'il y a une erreur dans une API. A l'époque je connaissais pas les API et j'ai bidouiller sans comprendre jusqu'à ce que ca fonctionne... sur mon ordi.

Aujourd'hui je connais mieux les API et en regardant mon code je vois des choses que je ne ferais plus...
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
7 juil. 2003 à 22:10
Sacré Boulot ...
C'est presque dommage que tu aies écrit ce prog tout seul.
A plusieurs on aurait pu rationaliser quelques trucs.

Combien de mesures peut on écrire ?
N'est on pas limité par la taille de la picture Box ?

Pourquoi pas un timer pour jouer les notes ?

Pour quoi ne pas avoir pris le Format Midi pour Enregistrer les
Morceaux ?

Pourrais tu nous expliquer un petit peu (si le coeur t'en dis bien sur) ?

A+
Afyn
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
7 juil. 2003 à 21:51
Y a t-il pas une petite erreur dans la fonction

x_DessinePartitionClip()



'Extrait (xNoteClef, xLc, xL) de xPortée

xLc = Val(Left((Right(xPortée, 3)), 1)) '2 No de la ligne où est située la Clef


essayer cette modif, chez moi ça charge sous XP .

Bon je continue a parcourir le Code

A+
Afyn
spy166 Messages postés 207 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 29 mars 2006
7 juil. 2003 à 21:31
Oups pardon boursicotteur...
C'est vrai, j'ai vut le clavier et la barre de volume, et j'ai laissé ce commentaire.
J'avais meme po regardé le code, encore pardon
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
7 juil. 2003 à 19:47
J'ai fait ce prog sous win98 1er édition et la je suis franchement déçu qu'il ne fonctionne pas sous NT, ME et XP quoique ca ne me surprend pas pour XP.

Comme je suis NUL en windows, je ne peux malheureusement pas vous aider mais il doit bien y avoir quelqu'un sur ce site qui le puisse.

J'ai dit avoir pris 6 mois pour l'écrire mais en fait j'ai commencé il y a 9 mois. Pendant ce temps, mes 2 parents sont décédés alors il y a eu plusieurs temps d'arrêt car j'étais pas capable de me concentrer.

Pour le crack, désolé mais j'en ai pas. Mon Sibelius 1.4 est sous forme d'un exe déjà cracké et le zip fait 7Mo donc...
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
7 juil. 2003 à 19:47
J'ai fait ce prog sous win98 1er édition et la je suis franchement déçu qu'il ne fonctionne pas sous NT, ME et XP quoique ca ne me surprend pas pour XP.

Comme je suis NUL en windows, je ne peux malheureusement pas vous aider mais il doit bien y avoir quelqu'un sur ce site qui le puisse.

J'ai dit avoir pris 6 mois pour l'écrire mais en fait j'ai commencé il y a 9 mois. Pendant ce temps, mes 2 parents sont décédés alors il y a eu plusieurs temps d'arrêt car j'étais pas capable de me concentrer.

Pour le crack, désolé mais j'en ai pas. Mon Sibelius 1.4 est sous forme d'un exe déjà cracké et le zip fait 7Mo donc...
drissoun Messages postés 10 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 27 juin 2004
7 juil. 2003 à 19:06
Bravo !! Bravo !! C du travail de titant tu m'etonne ke T mis 6 moi (nefin moi je débute je me rend pa bien compte mais bon) Mais ptit bemol (CT pa drole(si ct drole puisque ca me fé rire)) apparement ca marche pa sous WinMe et je suis trop novice pour remédier au problème . Et puis tout facon tu ve pa retoucher ta prog alors bon tampis
10/10 pour moi ossi

A propos kelkun aurait un crack pour sibélius 2.11 ?? (C juste comme ca je c c pa l'endroit pour ce jenre de truc je vs voi vnir)
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006
7 juil. 2003 à 17:54
Bravo pour ton travail, j'aprouve totalement ce que tu as fait qui a dû te donner beaucoup de travail. Evidemment tu as repris queleques éléments de mon programme, mais c'est fait pour ca sinon je ne l'aurais pas mis sur le site.
La création de partitions comme tu l'as fait a toujours été ce que je voulais faire sur mon programme.
Ps: Je me base uniquement sur l'image et le code car je n'ai pas réussi à le faire fonctionner sous windows xp

10/10 pour remonter la note moyenne de 5.5 qui ne reflète pas du tout la réalité

A+
Apophis
boursicotteur Messages postés 201 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 10 novembre 2007
7 juil. 2003 à 15:49
Pompé la source de Apophis?

Alors la pour dire une chose pareille tu n'a vraiment pas examiné mon code... et tu n'a certainement pas fait tourner le prog.

De plus, mon code est au moins 10 fois plus puissant que celui d'apophis qui ne fonctionne pas du tout de la même façon... sans rien enlever à Apophis car c'est lui qui a ouvert la route et il en a tout le mérite.

Tout ce que j'ai pris de la source d'Apophis c'est son clavier (que je n'utilise pas) et son Volume que je n'utilise pas non plus.

Alors... Pompé sa source?
Faut vraiment être un vrai con pour dire de telles conneries...
spy166 Messages postés 207 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 29 mars 2006
7 juil. 2003 à 11:00
"Pour faire ce projet, je me suis inspiré de Sybelius. C'est un logiciel professionnel que je possède."

Et mon cul c'est du poulet ??
Tu as tout simplement pompé la source de Apophis (http://www.vbfrance.com/article.aspx?ID=7129)

Gros naze.
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
7 juil. 2003 à 09:56
Trés intéressant. (Pour info ca ne marche pas sur NT).
J'examinerai de prés ce soir.
A+
Afyn