FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Jeu de dames
Aujourd'hui à 22:52 par papydall

» Une boîte à rythmes DRUMBOX
Aujourd'hui à 22:38 par papydall

» Version instantanée du 16 mai 2012: PANORAMIC V 0.9.23i6
Aujourd'hui à 21:52 par Klaus

» MÉTHODE du plus petit carré (régression linéaire)
Aujourd'hui à 21:01 par Severin

» libérer toutes les variables d'un programme sans le fermer
Aujourd'hui à 20:02 par Jean Claude

» boîtes de messages multi-langue
Aujourd'hui à 19:54 par Severin

» BAR und FORM keine Möglichkeit
Aujourd'hui à 19:38 par Severin

» Plugicielle pour Panoramic
Aujourd'hui à 18:39 par Klaus

» Exécution d'un script en Panoramic SANS compiler !
Hier à 13:00 par Klaus

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2012
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partager | 
 

 proposition de commandes midi

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
musicgames



Nombre de messages: 55
Date d'inscription: 21/01/2008

MessageSujet: proposition de commandes midi   Jeu 29 Jan 2009 - 17:20

J' aurais une demande à adresser à Panoramic. Je suis conscient que cela n' intéresse pas beacoup de gens, mais ce serait important pour la création d applications musicales.
Serait-il possible d' ajouter des commandes permettant de générer des notes en midi ? C' est théoriquement faisable avec l'API de Windows, mais ce dernier est très mal documenté. Je suis sûr que Panoramic arriverait à traduire les commandes de l' API en quelque chose de simple. Cela me faciliterait énormément plusieurs projets importants pour moi.
Merci d' avance !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
lutcho74



Nombre de messages: 139
Age: 17
Date d'inscription: 21/11/2008

MessageSujet: Re: proposition de commandes midi   Jeu 29 Jan 2009 - 18:02

Salut,
Excuse moi, cette question va peu être te paraitre bête mais c'est quoi des notes en midi ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
musicgames



Nombre de messages: 55
Date d'inscription: 21/01/2008

MessageSujet: Re: proposition de commandes midi   Jeu 29 Jan 2009 - 19:30

Salut,
Non, ta question n' est pas bête du tout.
Je vais essayer d' expliquer. Dans PANORAMIC il y a déjà la possibilité de jouer des fichiers midi, mais des fois on a besoin de produire du son via midi, sans passer par un fichier midi prédeterminé. De cette façon, les notes jouées peuvent être controlées dynamiquement par les algorithmes qu' on programme.
Pour te donner un exemple précis, imagine que je veux faire entendre à l' utilisateur une note aléatoire dans un programme d' entraînement de l' oreille. Pour chaque note il faudrait que j' enregistre un fichier midi différent, ce qui n' est pas souple du tout. Si en plus je veux permettre aux utilisateurs de modifier l' instrument ou la durée de la note etc, cela multiplie horriblement les fichiers à créer. Par contre, si je peux programmer la note par une commande, ça simplifie beaucoup les choses.
Une telle commande pourrait être :
PLAYMIDI 60 I0
où 60 serait le chiffre correspondant à la note et I0 signifierait que l' instrument est le 0 dans la liste des instruments midi, c' est-à-dire le piano.
Il existe un module de java qui permet de faire des choses pareilles, mais java est trop compliqué pour moi, au moins pour l' instant.
Je serais donc très reconnaissant à PANORAMIC s' il pouvait me faciliter ces travaux.
J' espère t' avoir éclairé un peu ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
lutcho74



Nombre de messages: 139
Age: 17
Date d'inscription: 21/11/2008

MessageSujet: Re: proposition de commandes midi   Jeu 29 Jan 2009 - 20:31

Re,
A en faite c'est une extension de fichier audio je croyé que c'était une genre de note... Razz
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin


Nombre de messages: 1100
Date d'inscription: 28/05/2007

MessageSujet: Re: proposition de commandes midi   Ven 30 Jan 2009 - 21:50

La vocation de PANORAMIC, c'est de pouvoir faire des choses très différentes les unes des autres, et cela de façon simple. Il faut donc que PANORAMIC puisse jouer des notes de musique.

Depuis ta proposition, j'ai regardé la faisabilité, et je suis arrivé à des choses qui commencent à me donner satisfaction...
Bonne nouvelle: pouvoir émettre une note donnée par un instrument donné sera possible dans la prochaine version.

Je suis arrivé à une utilisation qui pourrait être:

MIDI_ON : va utiliser la carte son
MIDI_INSTRUMENT I : joue de l'instrument I
MIDI_PLAY N,V : joue la note N avec la vélocité V (N=60 pour un DO, V de 0 à 127)
MIDI_OFF : n'utilise plus la carte son

Mais cela n'est pas définitif.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
musicgames



Nombre de messages: 55
Date d'inscription: 21/01/2008

MessageSujet: Re: proposition de commandes midi   Sam 31 Jan 2009 - 7:38

Un grand merci à Panoramic pour cette réponse rapide et, surtout, la bonne nouvelle ! cheers
Sans vouloir être trop exigeant, j' aurais quelques suggestions supplémentaires :
Il est assez rare qu' on doive modifier la vélocité à chaque note. Le réglage de la vélocité pourrait donc être effectué dans une commande à part, par exemple MIDI_VELOCITY.
Je pense qu' il doit également être facile pour Panoramic de créer une commande qui réglerait le tempo (la vitesse de la musique), par exemple MIDI_TEMPO.
Dans la future commande MIDI_PLAY, il serait peut-être préférable de passer la durée de la note en argument. Cette durée pourrait être exprimée en temps musicaux : si on règle la durée à 1, ça correspondrait à une noire en notation musicale conventionnelle. La durée absolue de la note serait ensuite calculée en fonction du tempo précédemment sélectionné.
La norme MIDI permet également la programmation de 16 canaux indépendants. Il serait trés intéressant de pouvoir faire jouer simultanément plusieurs canaux, pour créer plusieurs lignes musicales, des accords, ou une mélodie avec son accompagnement. Par exemple, une commande du type MIDI_CHANNEL déterminerait le canal midi des notes suivantes.
En tous cas, je suis de nouveau agréablement surpris par la qualité du travail de Panoramic, qui a pu me fournir en 24 heures une réponse aussi précise ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin


Nombre de messages: 1100
Date d'inscription: 28/05/2007

MessageSujet: Re: proposition de commandes midi   Sam 31 Jan 2009 - 16:44

Je suis en train de regarder comment faire durer une note pendant un temps programmable.

On tend vers une utilisation qui serait:

MIDI_ON : va utiliser la carte son pour des notes MIDI
MIDI_INSTRUMENT I : l'instrument utilisé est I
MIDI_VELOCITY V : la vélocité (ou le volume) est V
MIDI_TEMPO T : temps T (en millisecondes ?) de la durée d'une ronde
MIDI_CHANNEL C : le canal utilisé est C
MIDI_PLAY N, D : joue la note N (N=60 pour un DO) pendant la durée D (unité de D à préciser)
MIDI_OFF : n'utilise plus la carte son

La valeur D de MIDI_PLAY N, D pourrait effectivement être une fraction de la valeur MIDI_TEMPO T qui donnerait le temps T en millisecondes de la durée d'une ronde.

D'après mes faibles connaissances en musique, la ronde est la note qui dure le plus longtemps, les durées des autres types de notes étant des fractions de la durée de la ronde.
Si une ronde dure 1 unité,
- une blanche dure 1/2
- une noire dure 1/4
- une croche dure 1/8
- une double croche dure 1/16
- une triple croche dure 1/32

D pourrait donc être un codage comme 1 pour une ronde, 2 pour une blanche, 4 pour une noire, etc.

Il pourrait être intéressant d'étendre plus tard ces commandes à des sons quelconques (WAVE) et ne pas se limiter à la musique.

J'imagine des commandes comme:
WAVE_ON : va utiliser la carte son
WAVE_PLAY F, D, T : joue le son de fréquence F, de durée D, de timbre T
WAVE_OFF : n'utilise plus la carte son
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
musicgames



Nombre de messages: 55
Date d'inscription: 21/01/2008

MessageSujet: Re: proposition de commandes midi   Sam 31 Jan 2009 - 20:52

Concernant le tempo, je devrais préciser que celui-ci est lié à la pulsation, le temps musical, la pulsation étant la plupart du temps une noire. Si le tempo est à 60, ça veut dire qu' il y aura 60 noires par minute, donc chaque noire durera 1 seconde. En général, la valeur du tempo indique le nombre de pulsations par minute. Donc je pense que la commande MIDI_TEMPO recevrait une valeur du programmeur et la transformerait en durée absolue en millisecondes selon ce principe.
Par rapport aux durées de notes, il serait bien de pouvoir représenter également d' autres figures rythmiques, par exemple,une noire pointée (un temps et demi).
Juste une question encore : ce sera alors possible de faire jouer plusieurs canaux midi en même temps ? Et quand cette cersion de Panormic pourrait-elle être disponible ? (je suis trop impatient de l' essayer ! bounce )
Les commandes WAVE seraient aussi très intéressantes !
Encore merci !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
musicgames



Nombre de messages: 55
Date d'inscription: 21/01/2008

MessageSujet: Re: proposition de commandes midi   Dim 1 Fév 2009 - 7:33

Et encore une dernière suggestion : je pense que la durée de la note peut être calculée à l' intérieur du programme, par un algorithme spécifique.
Dans le code suivant, la durée absolue de la note en millisecondes est calculée en fonction du tempo et de sa durée en temps musicaux :
Code:

dim tempo : rem variable qui contient le tempo
dim figure : rem variable de la durée d' une note en temps musicaux,1 = noire etc.
dim duree : rem variable de la durée absolue de la note en millisecondes

tempo = 60
figure = 1

duree = figure * (60000 / tempo)

print duree

Donc je pense qu' une commande MIDI_TEMPO n' est peut-être pas forcément nécessaire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin


Nombre de messages: 1100
Date d'inscription: 28/05/2007

MessageSujet: Re: proposition de commandes midi   Dim 1 Fév 2009 - 10:51

C'est tout à fait vrai que la commande MIDI_TEMPO est superflue car on pourrait effectivement donner la durée absolue D de la note N dans la commande MIDI_PLAY N, D.
Mais...
Cela oblige à recalculer la durée absolue d'une note pendant que l'on joue une mélodie, à chaque fois qu'on change de type de note. Et qui dit calcul, dit "temps de calcul" et par conséquent "trou" dans le déroulement de la mélodie.

Je m'explique.
On est en train de jouer une mélodie.
Il y une série de n noires à jouer.
On calcule la durée d'une noire Dn.
On appelle n fois la commande MIDI_PLAY avec la durée Dn pour jouer ces n noires.
Puis, il y a une série de x croches à jouer.
On calcule la durée d'une croche Dc, on appelle x fois la commande MIDI_PLAY avec la durée Dc pour jouer ces x croches.

Eh bien, à chaque fois qu'il y a un calcul de durée à faire, cela va prendre du temps et je pense qu'une oreille musicale va entendre comme un "blanc" dans la mélodie.
Je n'en sais rien, MIDI_PLAY N,D n'est pas encore complètement codée, et je n'ai pas pu expérimenter; mais je pressens que cela va s'entendre.

A moins de faire autrement: calculer avant de jouer une mélodie toutes les durées des types de notes et n'utiliser le résultat du calcul qu'au moment d'appeler MIDI_PLAY, et cela toujours au nom de la fluidité de la mélodie. Et cela imposerait la manière d'utiliser MIDI_PLAY.
C'est ce que je comptais faire avec MIDI_TEMPO: calculer la durée de chaque note et utiliser ce résultat avec le codage de la durée absolue dans MIDI_PLAY Note, Codage_en_fonction_du_tempo
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
dragonno



Nombre de messages: 341
Localisation: Près de Toulouse
Date d'inscription: 22/01/2009

MessageSujet: Re: proposition de commandes midi   Dim 1 Fév 2009 - 11:39

d'abord :
Citation:
Je suis conscient que cela n' intéresse pas beacoup de gens

t'a tord Very Happy
Merci d'avoir posé la question et ainsi fait que Panoramic puisse y réfléchir.

Ensuite :
Citation:
à chaque fois qu'il y a un calcul de durée à faire, cela va prendre du temps

Complètement d'accord avec toi.

Et enfin :
Panoramic, t'est un gars génial de chez génial, tu réagit vite et très bien.

Ha oui, et musig game c'est notre encyclopédie musicale rien qu'à nous héhéhé...
cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin


Nombre de messages: 1100
Date d'inscription: 28/05/2007

MessageSujet: Re: proposition de commandes midi   Lun 2 Fév 2009 - 21:47

Devant m'absenter quelques jours (pour des raisons professionnelles), je mets à disposition une version courante de PANORAMIC, qui possède 3 commandes MIDI pour générer des notes de musique.

Il n'y a pas encore de commande MIDI_TEMPO, MIDI_CHANNEL, MIDI_VOLUME ni MIDI_INSTRUMENT, je ferai cela dès mon retour, mais il y a de quoi faire de la musique avec 3 commandes opérationnelles: MIDI_ON, MIDI_PLAY et MIDI_OFF avec des valeurs de tempo, de volume et de canal par défaut.
Bref, de quoi tester...

Utilisation des commandes:

MIDI_ON
Cette commande doit être la première quand on crée directement des notes MIDI. Elle crée des ressources pour pouvoir jouer des notes sur la carte son.

Erreur possible:
MIDI Output is Already ON: une commande MIDI_ON a déjà été exécutée


MIDI_PLAY NOTE, TYPE
Joue une note d'un certain type.
-> NOTE est défini par la convention MIDI: 60=Do, 62=Ré, ...
-> TYPE est défini par un code, qui en fait représente la durée de la note:
0 : ronde
1 : ronde pointée
2 : blanche
3 : blanche pointée
4 : noire
5 : noire pointée
6 : croche
7 : croche pointée
8 : double croche
9 : double croche pointée
10: triple croche
11: triple croche pointée
Les nombres pairs représentent des notes entières, les nombres impairs, les notes pointées.

Erreurs possibles:
MIDI Output is Not ON: il n'y a pas eu de commande MIDI_ON
Not Possible to use MIDI Output: impossible d'utiliser la carte son pour les notes MIDI
MIDI Note Out of Range: NOTE doit être entre 21 et 108 (piano)
MIDI Note Type Out of Range: TYPE doit être entre 0 et 11

REMARQUE: comme il n'y a pas encore de réglage du tempo, par défaut le tempo est de 60 noires par minute, c'est pour cela que provisoirement, la durée d'une noire est de 1 seconde:
0 : ronde : durée actuelle = 4000 millisecondes
1 : ronde pointée : durée actuelle = 6000 millisecondes
2 : blanche : durée actuelle = 2000 millisecondes
3 : blanche pointée : durée actuelle = 3000 millisecondes
4 : noire : durée actuelle = 1000 millisecondes
5 : noire pointée : durée actuelle = 1500 millisecondes
6 : croche : durée actuelle = 500 millisecondes
7 : croche pointée : durée actuelle = 750 millisecondes
8 : double croche : durée actuelle = 250 millisecondes
9 : double croche pointée : durée actuelle = 375 millisecondes
10: triple croche : durée actuelle = 125 millisecondes
11: triple croche pointée : durée actuelle = 188 millisecondes


MIDI_OFF
Cette commande libère les ressources permettant de jouer des notes sur la carte son.

Erreur possible:
MIDI Output is Not ON: la sortie MIDI n'est pas ON

Voici un petit exemple d'utilisation qui joue la suite de 2 noires Do, Ré, suivie de la suite de 3 croches Mi, Fa, Sol:

Code:
midi_on
midi_play 60,4
midi_play 62,4
midi_play 64,6
midi_play 65,6
midi_play 67,6
midi_off


Et voici la version de test:
www.panoramic-language.com/PANORAMIC_EDITOR.zip
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
musicgames



Nombre de messages: 55
Date d'inscription: 21/01/2008

MessageSujet: Re: proposition de commandes midi   Mar 3 Fév 2009 - 8:46

mille mercis !
je vais essayer de faire un petit programme study pour illustrer ces nouvelles possibilités du langage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin


Nombre de messages: 1100
Date d'inscription: 28/05/2007

MessageSujet: Re: proposition de commandes midi   Dim 8 Fév 2009 - 17:36

Ayant ouvert un bouquin de théorie de la musique (livre unique de musique et de chant de Paul Pittion), j'ai vu qu'il y a aussi des silences de même durée que les notes.
Pause = ronde,
demi-pause = blanche,
soupir = noire,
demi-soupir = croche,
quart-de-soupir = bouble-croche.
Il faut donc une commande pour les silences, de type MIDI_PAUSE D.

D'autre part, je n'ai vu mention nulle part de triple croche. la triple croche serait-elle une invention de ma part?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
musicgames



Nombre de messages: 55
Date d'inscription: 21/01/2008

MessageSujet: Re: proposition de commandes midi   Lun 9 Fév 2009 - 6:16

En effet, les silences sont également importants et j' aurais pu en parler.
La triple croche existe, mais elle est peut-être moins connue, parce que plus rarement utilisée. Voir par exemple cet article de wikipédia : http://fr.wikipedia.org/wiki/Repr%C3%A9sentation_des_dur%C3%A9es_en_musique.
Il existe également le triolet, un rythme qui divise la figure supérieure en trois parties égales. Le plus courant est le triolet de croches, qui divise une noire en trois parties, donc chaque croche prend un tiers d' un temps musical. Avec un tempo à 60, cela équivaut à 333 millisecondes.
C' est à cause de tous ces rythmes possibles que j' avais pensé que la durée de la note pourrait être exprimée en temps musicaux. Dans ce cas-là, le programmeur préciserait la durée avec un nombre réel :
1 = noire
0.5 = croche
0.75 = croche pointée etc.
Cela aurait aussi été plus intuitif pour les musiciens, mais le codage actuel de la durée n' est pas compliqué non plus. Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 

proposition de commandes midi

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant

 Sujets similaires

-
» Proposition pour un futur coussin
» proposition de commandes midi
» [MIDI] Note Worthy Composer
» [Astuce] Commandes de messages pour RMXP
» Nature : Flânerie le Long du Canal du Midi

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-