Générateur de grilles musicales

Soyez le premier à donner votre avis sur cette source.

Vue 7 852 fois - Téléchargée 831 fois

Description

Créez vos "GRILLES", transposez, jouez, sauvez les en format Midi. Imprimez la grille et faites un Boeuf avec vos potes musicos.
Programme sympa mais pas prof de musique.
On peut toujours et encore l'améliorer et vos remarques sont les bienvenues.

Version 3.1
Ajout de GRILLES.DOC pour mode d'emploi.
Correction des Delta Time
Ajout de notion de LOOP
Correction du meta Event 51.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Afyn
Messages postés
613
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016
-
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és
613
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016
-
...
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és
6
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
14 décembre 2003
-
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és
613
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016
-
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és
73
Date d'inscription
dimanche 8 juin 2003
Statut
Membre
Dernière intervention
8 mars 2005
-
C'est génial, justement le code que je cherchais

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.