FirSteph
Messages postés60Date d'inscriptionlundi 21 octobre 2002StatutMembreDernière intervention 7 octobre 2007
-
20 nov. 2003 à 01:48
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016
-
20 août 2004 à 10:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 20 août 2004 à 10:26
Désolé de critiquer ton travail ... mais c'est juste pour améliorer ton code :
- Libèrer le périh ...
Private Sub MenuQuitter_Click()
midi_out_close
Quitter_Click
End Sub
- Retirer les DoEvents superflus
Sub note_off(ch As Integer, ByVal kk As Integer)
Call midi_outshort(&H90 + ch, kk, 0)
-> DoEvents ????????????
End Sub
Ces instructions ne servent à rien et consomme du CPU.
Bon j'espère que je ne blesse personne.
A plus
Afyn
Navedac
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 20 août 2004 à 09:55
...
Je repasse par ici !
A tout hazard ?
Il me semble que tu ne libères pas comme il faut le périphérique MIDI ... c pas trés grave mais bon ct a signaler.
A plus
Afyn
Navedac
SergeDD
Messages postés6Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention14 décembre 2003 24 nov. 2003 à 13:59
Ok Afyn, tes remarques sont pertinentes, il ne faut pas perdre de vue que Grilles est un outil pour créer des Grilles et accessoirement les écouter, une fois la grille créée, je la travaille dans un séquenceur quelconque (j'ai trouvé un bug sur le Méta Event 51 (Tempo) que je suis en train de corriger.
Pour l'utilisation CPU, il suffit de lancer 5 ou 6 occurences du programme pour voir que les Doevents font leur office de distribution de ressource et je pense qu'il est naturel que la CPU soit employée à 97% sur une sule occurence si c'est la seule tâche qui tourne... Essaie de lancer CakeWalk et de jouer un fichier midi; l'occupation de la CPU atteint allégrement les 95%.
De plus, il est assez exceptionnel que je travaille en même temps sur plusieurs applications quand je m'amuse en jouant avec des petites compositions musicales (ma CPU est presque mono tâche dans ce domaine).
J'ai essayé plusieurs méthodes pour diminuer l'occupation CPU sans aucun changement notoire.
J'ai donné ce source pour servir d'exemple et faire partager mes idées, ma prétention n'est pas d'écrire Band in a Box ou tout autre générateur de zique, ces produits existent déjà. Bien sur, je prends en compte les désidératas des utilisateurs potentiels mais, je programme en VB par goût et non pour vendre des logiciels.
De toute manière, si une prochaine version existe (à part les corrections de bugs), elle tiendra compte de tes idées qui sont très sympa.
A+ et merci d'avoir passé du temps sur mon modeste programme.
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 23 nov. 2003 à 15:56
C'est trés bien.
A conserver :
Le principe d'une interface simple ...
A améliorer (fonction du temps que l'on a souvent) :
L'interface (attention, pour les puristes le Fb (Fa bémol) se note E et le E est déja dans la liste de la Basse)
Je te propose plutôt cette notation : (et dans cet ordre)
C - C# - D - Eb - E - F - F# - G - G# - A - Bb - B
Le calcul des Delta Times (si tu as lu la Bible du MIDI
de Christian Braut, il y a une petite erreur
sur le livre page 407 et 408. Eventuellement regarde mes
sources pour le calcul des Delta Times).
Pour les autres : ISBN-2-7361-1400-0 (Livre d'or Tome 1)
La gestion du sequencer est trés mauvaise (si tu appuies
sur les touches Alt+Ctrl+Sup, tu verras que ton prog
consomme toutes les ressources du processeur !!!)
A ajouter :
C'est également bien de pouvoir faire tourner une boucle entre
2 Locators. (pour répéter un passage ou improviser).
Tu peux utiliser mon waitable timer, qui compte des Ticks
précisément. (En plus il ne consomme que trés peu de ressources
et il est cadeau sur VBfrance.com, alors plus d'excuses !)
Pour une résolution de 96, il comptera 96 ticks pour une noire.
(Tu n'as pas besoin de plus de précisions)
Si tu veux boucler entre la deuxième et troisième mesure
If Tick 383 then Tick 192 (par exemple)
Courage !
Afyn
NAVEDAC
MIDI-SDKVB@wanadoo.fr
samirog
Messages postés73Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 8 mars 2005 22 nov. 2003 à 15:36
C'est génial, justement le code que je cherchais
SergeDD
Messages postés6Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention14 décembre 2003 21 nov. 2003 à 13:15
Merci radada, je crois qu'il y a d'autres bons sources sur ce site, chacun a sa façon de programmer, j'ai derrière moi 17 années d'analyse et de projets sur gros système ou à l'époque (on dirait mon grand père) il fallait optimiser les sources pour les compiler; évidemment ça marque.
Merci aussi Neo.balastik, c'est vrai que l'interface est rustique. Je n'ai pas fait dans le bô programme, c'est au départ un outil mais, si on me demande quelques jolies fenêtres, je suis prêt a me lancer dans un relookage massif.
A+
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 21 nov. 2003 à 10:09
Joli effort ! Ca vaut un bon 9. Mais comme tout puriste, l'interface pourrait être améliorée, mais comme tu le dis dans l'aide, celle-ci est volontairement simple. Peut-être dans une prochaine version.
cs_radada
Messages postés488Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention21 avril 20091 20 nov. 2003 à 09:29
Ah ouais, d'enfer : ). Et ça change des sources habituelles : ). Je t'ai mis 9/10 : p
SergeDD
Messages postés6Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention14 décembre 2003 20 nov. 2003 à 07:50
Merci pour tes remarques pertinentes FirSteph.
Je vais me pencher sur ce vieux code (en fait il a été initialement écrit en VB 3 et à l'époque HTML...) Mais je n'avais pas pensé au Save en TXT. L'impression est en Preview chez moi, peut-être un bug que je n'ai pas vu (1).
D'accord pour l'option Sauver (2 et 3) , erreur de ma part.
Je n'ai pas bien saisi "ajouter ses propres gammes de son", on est en général Midi et la liste d'instruments permet déjà un choix. (4)
Le (5) était volontaire mais, je vais modifier.
Encore merci pour t'être penché sur ce code.
à + ;=)
FirSteph
Messages postés60Date d'inscriptionlundi 21 octobre 2002StatutMembreDernière intervention 7 octobre 2007 20 nov. 2003 à 01:49
Note: pour le code dans le 5) il faut le mettre dans la Form1.
FirSteph
Messages postés60Date d'inscriptionlundi 21 octobre 2002StatutMembreDernière intervention 7 octobre 2007 20 nov. 2003 à 01:48
Franchement, tres bonne source, a part qques trucs qui vont pas et la presentation :p Donc je met 8 / 10
Pour les ameliorations, voila une liste par ordre d'importance decroissante:
1) Deja ca serait bien qu'au lieu d'imprimer directement la partition generée, on puisse la voir, et qu'on puisse l'exporter (les 2 formats les + importants sont .txt et .html, mais .txt devrait deja suffire).
2) Ajouter un menu "Sauver" dans le menu "Fichier", sinon c'est un peu ennuyeux de devoir quitter ou faire un nouveau fichier pour pouvoir sauver.
3) Lorsque l'on clique sur Annuler dans la boite de dialogue de sauvegarde de la partition (ou on demande le nom du fichier), ca ne sauvegarde pas le fichier mais pourtant ca continue l'action (nouveau, ouvrir).
4) Pouvoir ajouter ses propres gammes de son pour jouer les paritions.
5) Ca serait quand meme bien de laisser la croix pour fermer la fenetre. Il suffit de mettre:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Quitter_Click
End Sub
Voila, je te souhaite une bonne continuation, bye =)
20 août 2004 à 10:26
- Libèrer le périh ...
Private Sub MenuQuitter_Click()
midi_out_close
Quitter_Click
End Sub
- Retirer les DoEvents superflus
Sub note_off(ch As Integer, ByVal kk As Integer)
Call midi_outshort(&H90 + ch, kk, 0)
-> DoEvents ????????????
End Sub
Ces instructions ne servent à rien et consomme du CPU.
Bon j'espère que je ne blesse personne.
A plus
Afyn
Navedac
20 août 2004 à 09:55
Je repasse par ici !
A tout hazard ?
Il me semble que tu ne libères pas comme il faut le périphérique MIDI ... c pas trés grave mais bon ct a signaler.
A plus
Afyn
Navedac
24 nov. 2003 à 13:59
Pour l'utilisation CPU, il suffit de lancer 5 ou 6 occurences du programme pour voir que les Doevents font leur office de distribution de ressource et je pense qu'il est naturel que la CPU soit employée à 97% sur une sule occurence si c'est la seule tâche qui tourne... Essaie de lancer CakeWalk et de jouer un fichier midi; l'occupation de la CPU atteint allégrement les 95%.
De plus, il est assez exceptionnel que je travaille en même temps sur plusieurs applications quand je m'amuse en jouant avec des petites compositions musicales (ma CPU est presque mono tâche dans ce domaine).
J'ai essayé plusieurs méthodes pour diminuer l'occupation CPU sans aucun changement notoire.
J'ai donné ce source pour servir d'exemple et faire partager mes idées, ma prétention n'est pas d'écrire Band in a Box ou tout autre générateur de zique, ces produits existent déjà. Bien sur, je prends en compte les désidératas des utilisateurs potentiels mais, je programme en VB par goût et non pour vendre des logiciels.
De toute manière, si une prochaine version existe (à part les corrections de bugs), elle tiendra compte de tes idées qui sont très sympa.
A+ et merci d'avoir passé du temps sur mon modeste programme.
23 nov. 2003 à 15:56
A conserver :
Le principe d'une interface simple ...
A améliorer (fonction du temps que l'on a souvent) :
L'interface (attention, pour les puristes le Fb (Fa bémol) se note E et le E est déja dans la liste de la Basse)
Je te propose plutôt cette notation : (et dans cet ordre)
C - C# - D - Eb - E - F - F# - G - G# - A - Bb - B
Le calcul des Delta Times (si tu as lu la Bible du MIDI
de Christian Braut, il y a une petite erreur
sur le livre page 407 et 408. Eventuellement regarde mes
sources pour le calcul des Delta Times).
Pour les autres : ISBN-2-7361-1400-0 (Livre d'or Tome 1)
La gestion du sequencer est trés mauvaise (si tu appuies
sur les touches Alt+Ctrl+Sup, tu verras que ton prog
consomme toutes les ressources du processeur !!!)
A ajouter :
C'est également bien de pouvoir faire tourner une boucle entre
2 Locators. (pour répéter un passage ou improviser).
Tu peux utiliser mon waitable timer, qui compte des Ticks
précisément. (En plus il ne consomme que trés peu de ressources
et il est cadeau sur VBfrance.com, alors plus d'excuses !)
Pour une résolution de 96, il comptera 96 ticks pour une noire.
(Tu n'as pas besoin de plus de précisions)
Si tu veux boucler entre la deuxième et troisième mesure
If Tick 383 then Tick 192 (par exemple)
Courage !
Afyn
NAVEDAC
MIDI-SDKVB@wanadoo.fr
22 nov. 2003 à 15:36
21 nov. 2003 à 13:15
Merci aussi Neo.balastik, c'est vrai que l'interface est rustique. Je n'ai pas fait dans le bô programme, c'est au départ un outil mais, si on me demande quelques jolies fenêtres, je suis prêt a me lancer dans un relookage massif.
A+
21 nov. 2003 à 10:09
20 nov. 2003 à 09:29
20 nov. 2003 à 07:50
Je vais me pencher sur ce vieux code (en fait il a été initialement écrit en VB 3 et à l'époque HTML...) Mais je n'avais pas pensé au Save en TXT. L'impression est en Preview chez moi, peut-être un bug que je n'ai pas vu (1).
D'accord pour l'option Sauver (2 et 3) , erreur de ma part.
Je n'ai pas bien saisi "ajouter ses propres gammes de son", on est en général Midi et la liste d'instruments permet déjà un choix. (4)
Le (5) était volontaire mais, je vais modifier.
Encore merci pour t'être penché sur ce code.
à + ;=)
20 nov. 2003 à 01:49
20 nov. 2003 à 01:48
Pour les ameliorations, voila une liste par ordre d'importance decroissante:
1) Deja ca serait bien qu'au lieu d'imprimer directement la partition generée, on puisse la voir, et qu'on puisse l'exporter (les 2 formats les + importants sont .txt et .html, mais .txt devrait deja suffire).
2) Ajouter un menu "Sauver" dans le menu "Fichier", sinon c'est un peu ennuyeux de devoir quitter ou faire un nouveau fichier pour pouvoir sauver.
3) Lorsque l'on clique sur Annuler dans la boite de dialogue de sauvegarde de la partition (ou on demande le nom du fichier), ca ne sauvegarde pas le fichier mais pourtant ca continue l'action (nouveau, ouvrir).
4) Pouvoir ajouter ses propres gammes de son pour jouer les paritions.
5) Ca serait quand meme bien de laisser la croix pour fermer la fenetre. Il suffit de mettre:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Quitter_Click
End Sub
Voila, je te souhaite une bonne continuation, bye =)