Le Kiosque à Musique Faire une musique sur MSX à partir d'une partition
Reprise du message précédent
En Basic, il y a donc une méthode un peu compliquée d'accès, mais qui a le mérite de bien prendre en compte le temps, c'est le ON INTERVAL=... GOSUB.En utilisant cette instruction, on prend en compte l'interruption générée par l'horloge interne du Z80 de votre MSX. Le décompte est mis en place dès que l'instruction INTERVAL ON est rencontrée. A compter de cet instant, chaque fois que la durée de temps définie dans le ON INTERVAL=... GOSUB s'écoule, on saut à la ligne du sous-programme ainsi défini. Le mieux est que je vous fournisse le code de suite, ce sera probablement plus explicite.
Code :
10 T=0 : ' T représente le nombre de notes, histoire d'avoir une variable qui nous permette de finir le programme.
20 ON INTERVAL=20 GOSUB 50 : 'On prend donc ici un intervalle de 20
30 INTERVAL ON : 'On lance le chronomètre !
40 GOTO 40 : 'On glande, le temps d'atteindre le temps voulu
50 T=T+1 : IF T>65 THEN INTERVAL OFF : GOTO 80 ELSE READ A, B : ' Si j'ai mon nombre de notes, je coupe le décompte et je file en ligne 80 pour finir le programme, sinon, je lis les valeurs
60 SOUND 0, A : SOUND 1, B : SOUND 7, &H38 : SOUND 8,8 : 'on charge les registres du PSG
70 RETURN : 'On reprend juste après le GOSUB, donc retour en début de programme
80 END : 'Fin du programme
100 DATA &HAC, 1, &HAC, 1, &H7D, 1, &H7D, 1, &H53, 1, &H53, 1, &HAC, 1, &HAC, 1
110 DATA &HAC, 1, &HAC, 1, &H7D, 1, &H7D, 1, &H53, 1, &H53, 1, &HAC, 1, &HAC, 1
120 DATA &H53, 1, &H53, 1, &H40, 1, &H40, 1, &H1D, 1, &H1D, 1, &H1D, 1, &H1D, 1
130 DATA &H53, 1, &H53, 1, &H40, 1, &H40, 1, &H1D, 1, &H1D, 1, &H1D, 1, &H1D, 1
140 DATA &H1D, 1, &HFE, 0, &H1D, 1, &H40, 1, &H53, 1, &H53, 1, &HAC, 1, &HAC, 1
150 DATA &H1D, 1, &HFE, 0, &H1D, 1, &H40, 1, &H53, 1, &H53, 1, &HAC, 1, &HAC, 1
160 DATA &HAC, 1, &HAC, 1, &H3B, 2, &H3B, 2, &HAC, 1, &HAC, 1, &HAC, 1, &HAC, 1
170 DATA 0, 0
Voilà le travail ! Je pense que cette méthode est la plus proche de celle qui doit être employée en assembleur. Vous remarquerez qu'encore une fois on prend pour unité de durée la croche (la plus petite durée de la partition).
A votre disposition pour toute question, et toute proposition d'amélioration, car tout cela reste perfectible (sinon, j'ai encore un petit chapitre sous le coude pour les plus acharnés et bidouilleurs) !
MSX un jour, MSX toujours !
Allez, le dernier pour la route : il faut aussi savoir qu'on peut envoyer du son grâce aux ports du PSG, et ce grâce à l'instruction OUT. On envoie le numéro du registre dans le port d'adresse &HA0, et on écrit la valeur dans le port d'adresse &HA1 : par exemple un SOUND 0,&HFE peut se traduire par :
OUT &HA0,0 : OUT &HA1,&HFE !!
OUT &HA0,0 : OUT &HA1,&HFE !!
MSX un jour, MSX toujours !
Je l'ai aussi mon bon Osaure, je le fournis de suite : Tableau des notes
MSX un jour, MSX toujours !
j'ai converti les programmes en DSK pour les moins courageux ou trop pressés d'entre nous
music.zip
il y a un bug au niveau du compteur pour lire les datas , corrigé dans les version "-"
granced as tu une version excel ou autre du tableau car il serait bien d'avoir les valeurs décimales et hexa dans le tableau
music.zip
il y a un bug au niveau du compteur pour lire les datas , corrigé dans les version "-"
granced as tu une version excel ou autre du tableau car il serait bien d'avoir les valeurs décimales et hexa dans le tableau
Pas de problème Jipe (je n'ai pas mis les &H devant les valeurs héxa, j'ose espérer que ceux qui l'utiliseront penseront à les ajouter )
Le tableau est ici : une feuille pour les valeurs décimales, l'autre pour les héxa
Le tableau est ici : une feuille pour les valeurs décimales, l'autre pour les héxa
MSX un jour, MSX toujours !
C'est sûrement lié au fait que je bosse avec Open Office, j'ai sauvegardé en xls mais si ça se trouve il y a des bugs lors de l'ouverture sous Excel. Chez moi sous OOO ça s'ouvre nickel... Je crois que je vais refaire un PDF des valeurs héxa.
MSX un jour, MSX toujours !
Ah ben alors là, mystère et boule de gomme !!
Bon pour finir je vais faire un PDF de 2 pages, un avec les valeurs décimales, l'autre en héxa. Je peux éventuellement aussi faire le binaire
Bon pour finir je vais faire un PDF de 2 pages, un avec les valeurs décimales, l'autre en héxa. Je peux éventuellement aussi faire le binaire
MSX un jour, MSX toujours !
aoineko
Membre non connecté
Conseiller Municipal
Personne n'aurait par hasard un outil qui converti un fichier .mid en donnée utilisable par le PLAY ou mieux, par le SOUND ?
On est toujours ignorant avant de savoir.
popolon
Membre non connecté
Villageois
aoineko :
Personne n'aurait par hasard un outil qui converti un fichier .mid en donnée utilisable par le PLAY ou mieux, par le SOUND ?
Alors c'est tout nouveau, tout chaud, même pas encore traduit par l'équipe Française de MRC
Oh les gars, réveillez vous
http://www.msx.org/news/software/en/midi-music-msx
Un Brésilien au pseudo de popolony2k a réfléchi sur comment transformer un midifile en MML type MSX, donc lisible avec le PLAY comme tu dis
Je résume ses 4 articles pleins de blablas (que je connaissais déjà d'ailleurs) :
1) import du midifile dans le logiciel 3mle qui est un éditeur MML pour le jeu en ligne Mabinogi.
2) export du mml format mabinogi
3) le + interessant : avec son programme DOS : mml2msd, on transforme le MML type mabinogi en MML type Musica
4) compilation du MML Musica en fichier BGM que l'on peut inclure dans son propre programme
Bon, j'ai fait quelques tests et c'est pas tout a fait au point mais dans les grosses lignes, ca fonctionne.
A suivre donc... Edité par popolon Le 18/01/2012 à 19h23
tout, tout, tout, vous saurez tout sur la zizi...que
Vous trouverez plus de 300 partitions de jeux sur ce site, il y a de quoi faire
http://www.emuparadise.me/sheet-music/
http://www.emuparadise.me/sheet-music/
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie