MSX Village forum

Le Kiosque à Musique Faire une musique sur MSX à partir d'une partition

granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1500

Le 27/12/2010 à 15h35

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 ! :D
Site web    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1500

Le 27/12/2010 à 15h59
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 !!



MSX un jour, MSX toujours ! :D
Site web    
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 27/12/2010 à 23h27
J'ai un tableau des valeurs à entrer dans les registres pour reproduire une note suivant l'octave. Je ne l'ai pas sous la main là, je le posterai à mon retour!

:tchin


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1500

Le 28/12/2010 à 10h51
Je l'ai aussi mon bon Osaure, je le fournis de suite : Tableau des notes


MSX un jour, MSX toujours ! :D
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10328

Le 28/12/2010 à 11h59
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


:noel
Site web    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1500

Le 28/12/2010 à 12h12
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 :p)

Le tableau est ici : une feuille pour les valeurs décimales, l'autre pour les héxa


MSX un jour, MSX toujours ! :D
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10328

Le 28/12/2010 à 12h23
sur la page décimales on a que des #NOM? car le lien entre les 2 tableaux na fonctionne pas
mon excel 2000 est t'il obsoléte ?


:noel
Site web    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1500

Le 28/12/2010 à 12h26
:(

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 ! :D
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10328

Le 28/12/2010 à 12h35
j'ai aussi open office ;)


:noel
Site web    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1500

Le 28/12/2010 à 12h38
Ah ben alors là, mystère et boule de gomme !! :lol
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 :p :lol


MSX un jour, MSX toujours ! :D
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10328

Le 28/12/2010 à 12h49
STOP , j'ai pas remis le xls dans open office attends un peu

ça marche avec open office ;)


:noel
Site web    
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 05/01/2011 à 22h22
Puisqu'on parle de faire une musique à partir d'une partition, ce petit tableau peut s'avérer nécessaire:


Sinon pour les valeur à entrer dans les registres, il y a une formule, non?


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2695

Le 11/02/2011 à 17h53
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.
Github    
popolon Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 28/07/2010 à 22h07

Messages: 218

Le 01/04/2011 à 23h57
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 :lol

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
   
Franck Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 22h54

Messages: 3295

Le 02/04/2011 à 18h35
:(

On y va pour la traduction ;)

Voilà, c'est fait :gne
   
BibiZen Membre non connecté

Maire-adjoint

Rang

Avatar

Inscrit le : 03/10/2009 à 18h34

Messages: 1455

Le 02/01/2014 à 11h51
Vous trouverez plus de 300 partitions de jeux sur ce site, il y a de quoi faire ^^

http://www.emuparadise.me/sheet-music/
E-mail    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie