MSX Village forum

La Place des Développeurs [RESOLU] Utilisation d'un micro Msx-Audio sous Basic. Comment activer un micro sous Basic.

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 03/02/2013 à 15h38

Reprise du message précédent

Yes ;)

J'ai fait exprès de Charger et Sauver des fichiers pendant que ça tournait en boucle et y a pas eu un seul accro.

La lecture se fait bien en continue.

Par contre, il faut comprendre/interpréter le programme correctement pour savoir ce qu'il faut SAVE et aussi comment le Sauver et Charger.

Voila une question pour des champions :oups
(moa à part faire n'importe quoi jusqu'à ce que ça marche, je sais pas du tout désolé :oups )

Edit: Je sais pas si je l'ai dit mais BlueMSX n'émule pas le Micro du Music Module.
Il est donc pas possible de tester le bon fonctionnement du programme sur ému. Edité par igal Le 03/02/2013 à 15h43


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10358

Le 03/02/2013 à 17h52
ce programme n'est pas entiérement en basic

il y a une routine en language machine :|



:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 03/02/2013 à 17h55
ca le rend difficile à comprendre et à modifier?


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 04/02/2013 à 11h39
Jipe :
ce programme n'est pas entiérement en basic



il y a une routine en language machine :|




Effectivement, ce n'est pas du BASIC MSX-AUDIO, mais simplement du BASIC avec des Routines en langage machine :moue



J'ai donc changé le titre du post :top



Malgré tout, je suis arrivé à faire fonctionner le micro en continu :D



La fonction se fait sans avoir à fermer de boucle. Cela m'a donc permis de lancer la Digit Vidéo en même temps.



Avant tout, si je dis pas de bêtises:



La variable chargée de garder [Ouvert] le Micro est [REC].



1610 REC=2700: RESTORE 1620



REC à 2700 laisse le Micro ouvert pendant 4 secondes:



Il suffit d'augmenter la valeur de REC pour laisser le micro ouver.



Par exempe REC=2700*2700 ce qui donne 108 000 secondes soit 180 minutes et donc 3 heures de Numérisation à la volée :fou



Tout comme pour la superimpose avec effet spéciaux à savoir SET VIDEO 2,1,1 j'entend par numérisation le fait de passer au travers du [Digitla To Analogic Converter].



Dans le même esprit que le petit programme DIGIT pour la vidéo, on peut très bien envisager de mettre en mémoire un extrait Audio et même le sauvegarder si désiré. (on verra par la suite :fou )



Voici le résulta AUDIO et VIDEO Numérisées à la volée :top







@Jipe: Le SON du MUSIC MODULE est faiblard. En utilisant les sortie Audio c'est un peu mieux, mais ca manque quand même de puissance.



J'ai extrait la partie du Schéma qui contient l'amplification. Tu penses pouvoir trouver une solution?



Voici le Schéma: (Désolé pour la dimension, plus petit ce serait illisible :oups )





Si vous avez des remarques, n'hésitez pas ;)








Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 04/02/2013 à 19h15
Sur Msx.org => http://www.msx.org/wiki/MSX-AUDIO

Il est dit que l'on peut augmenter le niveau sonore du Music Module en remplaçant R41 par une résistance de 27Kohms :top

On voit sur le Schéma (Emplacement G25) que IC18 TL074 Pin 6 et Pin 7 sont reliés par R41 à 10Kohms.

J'ai trouvé cette info ici => http://www.msx.org/forum/msx-talk/hardware/increase-volume-nms-1205?page=1

J'essaierai ça demain :p


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 04/02/2013 à 20h34
Afin de réduire la taille du programme, j'essai d'isoler la partie utilisée jusqu'à ce que ma boucle de 180 Minutes soit effective.

En rouge, la chronologie des commandes classée par ordre alphabétique.
En noir, la partie du programme qui semble ne pas être utilisée.

A 0 'SAVE"MICRO.ASC",a
B 5 WIDTH 80: COLOR 1,15
C 20 CLEAR 100,&HCFFF: DEFUSR=&HD002: GOSUB 2260 =>D

J 110 LOCATE 5,13: PRINT"6..Sample"
K 115 GOTO 1570 => L

V 190 OUT &HC0,A: OUT &HC1,D: RETURN => W

L 1570 CLS: PRINT "Full Memory sampling test"
M 1580 LOCATE 5,5: PRINT"Press a key to record sample"
N 1590 IF INKEY$=""THEN1590
O 1600 LOCATE 5,7: PRINT"Recording now"
P 1610 REC=2700*2700: RESTORE 1620: 'en gras, les 4 secondes de micro ouvert multipliées 2700 fois'
Q 1620 DATA 19,00,04,FF,04,80,07,68
Q 1630 DATA 08,00,09,00,0A,00,0B,FF
Q 1640 DATA 0C,1F,0D,E1,0E,00,07,E8
R 1650 FOR N=1 TO 12
S 1660 READ A$: A=VAL ("&H"+A$)
T 1670 READ D$: D=VAL ("&H"+D$)
U 1680 GOSUB 190 => V

W 1690 NEXT N
X 1700 FOR N=1 TO REC: NEXT: '=> cette boucle dure 180 minutes<='

1710 A=7: D=&H68: GOSUB 190
1720 LOCATE 5,7: PRINT"Playing Now.."
1730 RESTORE 1740
1740 DATA 19,08,04,FF,04,80,07,20
1750 DATA 08,00,09,00,0A,00,0B,FF
1760 DATA 0C,1F,10,EC,11,51,12,FF
1770 DATA 07,B0
1780 FOR N=1 TO 13
1790 READ A$:A=VAL("&H"+A$)
1800 READ D$: D=VAL("&H"+D$)
1810 GOSUB 190
1820 NEXT N
1830 FOR N=0 TO REC: NEXT
1840 LOCATE 5,7: PRINT"Repeating now"
1850 LOCATE 0,22: PRINT" Press any key to abort"
1860 IF INKEY$="" THEN 1860
1870 DATA 07,&HA1,07,&H20
1880 RESTORE 1870: READ A,D:GOSUB 190:READ A,D:GOSUB 190
1885 GOTO 0
1890 RETURN


D 2260 RESTORE 2310 =>E

F 2270 FOR P=&HD000 TO &HD026
G 2280 READ D$: POKE P,VAL ("&H"+D$)
H 2290 NEXT
I 2300 RETURN => J

E 2310 DATA 00,00,F3,21,00,40,DD,21
E 2320 DATA 00,00,E5,DD,E5,3E,02,CD
E 2330 DATA 0C,00,01,00,00,DD,E1,E1
E 2340 DATA 4F,DD,09,23,7C,FE,C0,20
E 2350 DATA E9,DD,22,00,D0,FB,C9 => F

Si j'ai bien compris, je peux me séparer des commandes contenues dans les lignes 1710 à 1890 Edité par igal Le 04/02/2013 à 20h38


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1488

Le 05/02/2013 à 11h29
Jipe :
ce programme n'est pas entiérement en basic

il y a une routine en language machine




Et bien non !! ... Car il y a bien un DEFUSR=&HD002, qui définit un point d'entrée vers une routine en LM, mais il n'y a aucun encodage d'une quelconque routine, ni même un appel à celle-ci dans le programme (qui aurait la syntaxe: A=USR(0) par exemple).



Toutes les données dans les DATA sont en fait envoyées sur les ports &HC0 et &HC1 (par le biais de la ligne 190) qui sont des ports spécifiques au MSX-Audio. Je ne connais pas du tout le fonctionnement du module MSX-AUDIO, mais on peut supposer que, comme le VDP, il s'agit de commandes envoyées au module, afin de réaliser l'enregistrement.



La deuxième partie (celle qui relit l'enregistrement) fonctionne de manière similaire, il n'y a pas de routine LM, mais bien des commandes envoyées au module MSX-AUDIO.



J'en déduis que la numérisation audio est stockée sur la RAM du module (confirmé par la FAQ MSX), et donc ton enregistrement est limité par la RAM embarquée. Le module numérise en 8 bits à 16kHz maximum, et comme il dispose d'une mémoire de 32Ko, cela donne un maximume de 4,6 secondes d'enregistrement (ce qui est cohérent avec tes premières observations).



Pour pouvoir numériser 3 heures, il te faudrait plus de 73 Mo de RAM embarquée !!! :|


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 05/02/2013 à 12h29
Salut Métalion.

Je pense que Jipe a survolé rapidement sans prêter attention aux détails que tu mentionnes.

En ce qui me concerne, je ne connais pas du tout les subtilités auxquelles vous vous référez mais je sais que le programme est utilisable sous BASIC et cela me convient donc parfaitement :top

A défaut de trouver les commandes qui conviennent (si elles existen :moue ) en [BASIC MSX-AUDIO], cette alternative fait parfaitement l'affaire d'autant qu'elle est accessible au possesseurs du model Toshiba, Philips ou encore le Panasonic :top
(J'ai pas de retour de testes sur Toshiba et Panasonic, mais je pense que cela devrait fonctionner)

Concernant la Numérisation:
En passant au travers du DAC, le signal audio est instantanément numérisé.
Pour ce qui est de l'échantillonnage, effectivement, le Music Module se limite à 4 Sec de stockage avec ses 32 Ko de RAM embarqué.
Si tu as une idée sur la formule permettant "D'enregistrer sur les 256 Ko de l'extension MSXPRO, je suis preneur :kiss )

Est ce bien utile?
Je sais pas, mais je suis sur qu'un MSXien saura bien l'adapter à ses besoins ^^

Tout comme le fait mon petit programme "DIGIT" avec la VIDEO à savoir:
Numérisation du FLUX VIDEO et [ECHANTILLONNAGE] d'une image si désiré.

Je voudrais en faire autant avec le programme "MICRO" avec l'AUDIO à savoir:
Numérisation du FLUX AUDIO et [ECHANTILLONNAGE] d'une séquence (Jusqu'à 4 secondes) à volonté.

L'avantage est que ces deux processus n'amputent rien l'un à l'autre. Ce qui permet de lancer les deux opérations simultanément :top

Tout autre chose, je me rend compte que le "Music Module" dans lequel j'ai implanter l'Expander FRS/MsxPro à un volume extrêmement faible avec le SON en entrée.

Le SON FM ne pose aucun problème, le Volume est normal, il est même aussi fort que le Volume d'une FM-PAC après avoir fixé R41 en remplaçant la
Résistance 10Kohms par 27Kohms comme expliqué ici => http://www.msx.org/wiki/MSX-AUDIO

J'ai fait un teste croisé avec un Music Module qui n'est pas équipé de l'Expander FRS/MsxPro. Le volume audio du SON Numérisé à la volée est Fort (cohérent). J'en ai profité pour fixé R41 aussi sur ce Music Module. Tout est OK.

Il est possible que l'Expander FRS/MSXPRO pose ce problème de volume sur le SON NUMERISE en Continue mais je suis septique. Je pense que ce Music Module a un souci d'amplification. Edité par igal Le 05/02/2013 à 12h31


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 05/02/2013 à 12h49
Il émule pas grand chose au final BlueMSX :lol

Igal tu va chercher de ces truc parfois ;)
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10358

Le 05/02/2013 à 14h16
désolé mais ces lignes sont bien un programme en L.M. et le DEF USR y fait appel

2260 RESTORE 2310
2270 FOR P=&HD000 TO &HD026
2280 READ D$: POKE P,VAL ("&H"+D$)
2290 NEXT
2300 RETURN
2310 DATA 00,00,F3,21,00,40,DD,21
2320 DATA 00,00,E5,DD,E5,3E,02,CD
2330 DATA 0C,00,01,00,00,DD,E1,E1
2340 DATA 4F,DD,09,23,7C,FE,C0,20
2350 DATA E9,DD,22,00,D0,FB,C9

NOP
NOP
DI
LD HL,4000H
LD IX,0000H
PUSH HL
PUSH IX
LD A,02H
CALL 000CH 'READ SLOT
POP IX
POP HL
LD C,A
ADD IX,BC
INC HL
LD A,H
CP C0H
JR NZ,D00AH
LD (D000H),IX
EI
RET


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 05/02/2013 à 14h36
Fabf :
Il émule pas grand chose au final BlueMSX :lol



Igal tu va chercher de ces truc parfois ;)




Plus c'est tiré par les cheveux et plus j'adore ça :p



@Jipe: Je te décrit brièvement mon problème avec le Music Module Expandé(FRS).



Lorsque j'ouvre le micro => 1610 REC=2700*2700 (pour avoir le micro actif 3 heures non stop...



J'ai presque pas de SON le volume est extrêmement faible...



Si j'enregistre ce SON et que je le réécoute, alors cette fois, le Volume est normal!



Au départ, j'ai pensé à IC18 (TL074). J'ai donc déssoudé celui qui se trouve sur le MUSIC MODULE qui fonctionne bien, et je l'ai transplanté sur le Music Module qui pose soucis (celui qui est expandé FRS).



J'ai testé, mais rien n'a changé...Le Pb est toujours pareil.



Un détail, le Volume fonctionne très donc lorsque je RELIS un SAMPLE que j'ai enregistré et il fonctionne tout aussi bien lorsque je lance un jeu qui utilise la FM du Music Module (testé avec AlterWars 2 et le Bios Msx-Audio 1.3 de FRS). tout est ok de ce coté la.



T'as une suggestion ?



J'ai pas mal de CI et je peux croiser les testes avec les deux music Modules :top



Merci de ton aide.




Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10358

Le 05/02/2013 à 14h46
ben voila j'étais a fond dans la sauvegarde de mon PC car il contient tout ce que j'ai sur MSX + les utilitaires qui vont bien pour les circuits imprimés
donc voila c'est fait

je recherche la liste des registres du Music Module pour dépouiller le programme

a mon avis la conversion du son quand tu monte le temps se fait au détriment du reste



:noel
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1488

Le 05/02/2013 à 14h47
Jipe :
désolé mais ces lignes sont bien un programme en L.M. et le DEF USR y fait appel


Désolé, mais j'ai raison et tu as raison.



Effectivement il y a bien un encodage de routine LM, je l'avais loupé. Mais il n'y a aucun appel à celle ci. DEFUSR=&HD002 ne fait que définir le point d'appel de la routine, mais seul une commande du type "Variable=USR(0)" permet d'y faire appel. Or, il n'y a aucune commande de ce type dans le listing. Donc la routine LM n'est pas utilisée par le programme BASIC. Edité par Metalion Le 05/02/2013 à 14h48


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10358

Le 05/02/2013 à 15h00
on dirait bien une recherche du slot mais effectivement il n'y a pas d'appel

maintenant il faut retrouver les registres du MM pour comprendre ce qui s'y passe


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10358

Le 05/02/2013 à 15h47
on commence par les adresses i/O le processeur Y8950 du music module répond aux adresses C0H et C1H

le convertisseur N/A et l'interface MIDI aux adresses suivantes

00H registre de commande
01H transmission des données
04H registre d'état
05H reception des données

voici le lien pour le processeur

http://map.grauw.nl/resources/sound/yamaha_y8950.pdf

donc le programme prends une valeur qu'il met dans A$ et une autre dans D$

C0H est chargé avec A$ = adresse et C1H avec D$ = donnée ce qui correspond au registre Y8950 et a sa valeur

voici le tableau simplifié de la premiére partie

19 00 sortie par entrée /sortie
04 FF initialise flag et controle
04 80 masque pendanr le transfert
07 68 enregistre datas dans mémoire ,convertion a/d dans ram
08 00 256kb activé, actice le timer
09 00 adresse de départ sur 2 octets 0000H
0A 00 voir dessus
0B FF adresse de fin sur 2 octets 1FFF
0C 1F voir dessus
0D E1échelle de fréquence sur 2 octets
0E 00 voir dessus
07 E8 mode REC


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 05/02/2013 à 17h28
Ca vallait le coup de demander votre participation :D

Dans cette commande, 08 va utiliser 256Kb (256/8 32Ko ou encore 35kB)
08 00 256kb activé, actice le timer

Comment faire pour utiliser les 256Ko (256kB => 2048Kb) de l'Expander Frs/MsxPro ?
Merci :D


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie