MSX Village forum

La Place des Développeurs Jouer de la musique en arrière plan en Basic ?

ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 27/06/2012 à 19h38

Reprise du message précédent

ton player Musica à l'air cool, il est tout simple, c'est bien, par contre quand je l'intègre dans mon jeu, ca fait faire des erreurs !
le basic me sort des erreur de style "return without Gosub " !? alors que tout est ok j'ai vérifié !!
et quand je veux refaire "run"
il me sort des "illegal function call" sur des lignes tout se qu'il y a de plus basique !!
Bref ca patine dans le yaourt ! :sick


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 28/06/2012 à 20h23
Bon... et bien ... De la musique en backgroud en basic c'est la vraie galère !
Et faire des effets sonores pareil !!

Est-ce que quelqu'un peut me dire à quoi sert la commande call bgm(1) ?


Puisque quand on veut envoyer plus de quelques notes à jouer ça rend pas la main aussitôt !! :sick
C'est un truc qui marche pas ou quoi ?


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 28/06/2012 à 20h31
call bgm(1) c'est spécifique au programme que tu emploi

il faut regarder si il y a d'autres instructions similaires dans le programme


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 28/06/2012 à 20h45
c'est spécifique au MSX Music, c'est dans la doc du FMPAC
C'est censé activer la musique FM en background, mais ca ne fonctionne pas... Dès qu'il a plus de 7-8 notes ça rends pas la main aussitôt... alors avec une mélodie ....pffff


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 28/06/2012 à 20h54
tu as des exemples ou c'est suite a un essai perso ?


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 28/06/2012 à 21h27
non justement je n ai pas d exemple probant de l utilisation de cette commande !
j ai récupéré des prog basic de musique fm, quelques un l utilisent , mais ca ne permet pas pour autant de faire autre chose pendant qu il y a une commande "play #2, .... " qui joue !


j ai essayé des replayer de bgm , ca fonctionne sauf qu a chaque fois j ai des bug dans mon jeu, j ai l impression que le fait de charger unplayer plus un bgm, il se melange les pinceaux avec le programme basic...


banniere-ericb59e
Site web    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5795

Le 28/06/2012 à 21h34
j'y connais pas grand chose , mais en placant la musique a un endroit precis de la memoire , ca doit arranger les choses , pour evité les conflicts ^^

genre Bload''music.bin'',&Hxxxx,r
Je ne sais plus si c'est possible , ou avec un poke ou autre , c'est tres loin tout ca :oups faudrait regarder sur un bouquin que je n'ai pas sous la main ^^ Edité par TurboSEB Le 28/06/2012 à 21h37



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 29/06/2012 à 11h51
ericb59 :
j ai essayé des replayer de bgm , ca fonctionne sauf qu a chaque fois j ai des bug dans mon jeu, j ai l impression que le fait de charger unplayer plus un bgm, il se melange les pinceaux avec le programme basic...


C'est probablement lié au fait que l'espace mémoire utilisé par le BASIC (et la gestion de la pile et des variables) est en conflit avec ton replayer.

Tu dois utiliser la commande CLEAR pour délimiter l'espace utilisé par le BASIC.



Par exemple :
Code :
CLEAR 200,&hC000


va interdire au BASIC d'utiliser l'espace au delà de &hC000 et, accessoirement, réserver 200 octets aux variables texte.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 29/06/2012 à 11h54
@metalion ; oui j'ai déjà fait ça... mais ça bug toujours...
Mon programme fait environs 8ko de basic pour l'instant ; c'est quand même pas beaucoup...


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 29/06/2012 à 11h57
j'ai un jeu japonais en basic qui joue de la musique en ariére plan
ça marche même aprés un CTRL / STOP
c'est basé sur le détournement du HOOK &HFD9F avec un routine en LM bien sur
le seul probléme est la façon dont les notes sont codées , dur de mettre sa propre musique sans fausse note
je l'envoi aussi ce soir


:noel
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 29/06/2012 à 13h27
Eric,

La solution la plus simple en BASIC reste quand même l'utilisation de la commande PLAY.
Bon, d'accord, cela ne te permet que d'utiliser le PSG ... :(

Mais une fois que tu as lancé les phrases musicales, tout se passe en arrière plan automatiquement !
Le BASIC gère tout seul la mise en queue et l'exécution musicale en arrière plan.



MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
popolon Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 28/07/2010 à 22h07

Messages: 224

Le 29/06/2012 à 13h47
Metalion :


La solution la plus simple en BASIC reste quand même l'utilisation de la commande PLAY.

Bon, d'accord, cela ne te permet que d'utiliser le PSG ... :(


en basic :

La commande PLAY permet d'utiliser PSG, MSX Music, MSX Audio et même MSX Midi

La commande CALL PLAY permet d'utiliser le SFG avec la cartouche Yamaha FM Music Macro

La commande CALL PCMPLAY permet d'utiliser le PCM du turboR

;)
   
MSXlegend Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 18/06/2010 à 22h42

Messages: 5814

Le 29/06/2012 à 13h50
Alors voici le programme que j'utilise pour le moment

Mon player basic: (tu remplace song.bgm par ta musique au format BGM) FM et/ou psg

Code :

10 CLEAR200,&h9000: DEFINT A-Z:BLOAD"BGM.BIN"
20 DEFUSR=&HCE00: DEFUSR1=&HCE03: DEFUSR2=&HCE06: DEFUSR3=&HCE09
30 DIM A(1):A$="song.bgm"
40 OPEN A$ FORFOUTPUTAS1:B$=INPUT$(1,1):B$=INPUT$(1,1):C$=INPUT$(1,1):CLOSE
50 BLOAD A$
60 B=(ASC(B$)+ASC(C$)*256)-65536!
70 IF B=0 THEN BLOAD A$,&H9000:B=&H9000
80 A(0)=0:A(1)=B
90 USR(0)+USR1(VARPTR(A(0))): rem (Démarre la musique)
100 END
110 A=USR2(0): rem (stop la musique en cour)


Pour arreter la musique tu tape "A=USR2(0)" ou CONT et tu valide (apres le end, le programme redemarre à la ligne suivante soit 110)
Si tu n'arrete pas ta musique, plantage si tu fais RUN

on en a deja parlé ici http://www.msxvillage.fr/forum/topic.php?quote=7385&id=458&pt=4



J'ai aussi un programme sous basic pour jouer du psg (PLY) mais je n'ai pas de beaucoup de musique
Code :

20 BLOAD"SONY.PLY"             
30 DEFUSR=&HDC00               
40 A=USR(0)
50 IF PEEK(&HFD9F)=&HC3 THEN 50
60 A=USR(1)

Le probleme, c'est qu'il faut faire un crtl+stop pour sortir. On se rend compte que la musique continu sous basic.
Personnellement, j'ai laissé ce programme de coté (a cause du ctrl+stop) Edité par MSXlegend Le 29/06/2012 à 13h55


Createur du KCX Bluetooth emitter au format cartouche compatible stereo moonsound
popolon Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 28/07/2010 à 22h07

Messages: 224

Le 29/06/2012 à 13h56
c'est le loader musica que j'ai posté quelques posts plus haut ^^



MSXlegend :
Mon player basic: (tu remplace song.bgm par ta musique au format BGM) FM et/ou psg


sans oublier la SCC ^^ Edité par popolon Le 29/06/2012 à 15h32
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 29/06/2012 à 13h59
@Metalion, fait l'essai avec un MSX2+ ou TR,

Call musique
play #2,"ABABABABABABABABABABA"

tu verra qu'il ne te rends pas la main aussitôt
Si tu ajoute CALL BGM(1) ce qui est censé activer la musique en background... cq fait pad mieux !

@MSXLEgend; oui j'ai essayé ta méthode, avec bgm:bin; ça fonctionne, mqis mon jeu se met à bugger de partout !
Je n'arrive pas à faire en sorte que la musique et le player ne se chevauchent pas avec la couche basic !


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 29/06/2012 à 14h09
@popolon : je ne sais pas si c'est exactement le même en tout cas ça y ressemble !
Mais que ce soit l'un ou l'autre font bugger mon jeu en basic... Alors sauf à trouver un moyen de le charger là où ça ne trouble pas mon programme... ça ne me convient pas...


banniere-ericb59e
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie