L'école (Résolu) Lire/convertir music MP3->PCM pour COVOX à default d'avoir un lecteur MP3
igal
Membre non connecté
Conseiller Municipal
ericb59
Membre non connecté
Conseiller Municipal
@igal, en bas de la page de la cartouche SD drive
http://www.ebsoft.fr/shop/fr/home/36-sd-cartridge-sd-drive.html
il y a un lien de téléchargement "Covox player Demo"
dedans il y a :
- wav2msx.exe un petit logiciel PC que ma fille a réalisé pour convertir un fichier WAV en fichier BIN lisible sur MSX (fonctionne aussi pour PCMPLAY du Turbo-r)
- covox_play.dsk qui contient le programme Basic et ASM pour jouer des samples depuis le Basic.
(Le code du programme ASM à été réalisé par 6502MAN)
voilà, tu as tout ce qu'il te faut... amuse toi bien Edité par ericb59 Le 25/04/2015 à 15h12
http://www.ebsoft.fr/shop/fr/home/36-sd-cartridge-sd-drive.html
il y a un lien de téléchargement "Covox player Demo"
dedans il y a :
- wav2msx.exe un petit logiciel PC que ma fille a réalisé pour convertir un fichier WAV en fichier BIN lisible sur MSX (fonctionne aussi pour PCMPLAY du Turbo-r)
- covox_play.dsk qui contient le programme Basic et ASM pour jouer des samples depuis le Basic.
(Le code du programme ASM à été réalisé par 6502MAN)
voilà, tu as tout ce qu'il te faut... amuse toi bien Edité par ericb59 Le 25/04/2015 à 15h12
igal
Membre non connecté
Conseiller Municipal
Merci
Par contre le MSX semble encore une fois verouille durant la lecture du sample.
J'ai essayé d'écourter la durée de lecture au minimum en augmentant la vitesse de lecture et en réduisant la quantité de données à lire (adresse de fin de lecture) à une seule unité (decimale) mais malgré la lecture très rapide, la quantité de données à lire semble être trop importante puisque cela dure une peu plus d'une seconde.
en 50hz, j'obtiens 29 unités TIME ce que est un peu plus d'une demi seconde.
6502man: merci
Par contre le MSX semble encore une fois verouille durant la lecture du sample.
J'ai essayé d'écourter la durée de lecture au minimum en augmentant la vitesse de lecture et en réduisant la quantité de données à lire (adresse de fin de lecture) à une seule unité (decimale) mais malgré la lecture très rapide, la quantité de données à lire semble être trop importante puisque cela dure une peu plus d'une seconde.
en 50hz, j'obtiens 29 unités TIME ce que est un peu plus d'une demi seconde.
6502man: merci
ericb59
Membre non connecté
Conseiller Municipal
igal :
Merci
Par contre le MSX semble encore une fois verouille durant la lecture du sample.
Par contre le MSX semble encore une fois verouille durant la lecture du sample.
oui , on ne pas faire mieux avec un simple covox,
Fabf
Membre non connecté
Conseiller Municipal
Si le COVOX peut faire mieux, c'est le MSX qui est au taquet
igal
Membre non connecté
Conseiller Municipal
Très intéressant d'utiliser la VRAM pour stocker de l'audio.
A l'origine, la voix prononce la phrase suivante:
=> Bonjour, je suis une voix PCAM jouée par Covox. Merci à EricB59.
J'ai modifié l'adresse de début et de fin en remplaçant par une variable que j'incrémente à chaque cycle.
6 POKE &H900C,A:POKE&H900E,0:REM debut du sample sur 16 bits
7 POKE &H9010,&HA:POKE &H9012,&H92:REM fin du sample sur 16 bits
20 DEFUSR=&H9000:E=USR(0):A=A+5:GOTO6
Ce qui permet de lire les données par petites bribes.
L'idée est d'intégrer le programme dans un boucle vidéo qui joue des bribes comme le fait Joe&Mac.
Pourquoi le Poke &H900E peut être supprimé? Il désigne vraiment la première donnée a lire?
Pourquoi le Poke &H9012 peut être supprimé? il désigne vraiment la dernière donnée à lire?
@6502Man: Peux tu donner plus d'infos sur ce programme stp
A l'origine, la voix prononce la phrase suivante:
=> Bonjour, je suis une voix PCAM jouée par Covox. Merci à EricB59.
Code TEXT :
1 ' COVOX ASM code by 6502 MAN 3 SCREEN8 4 BLOAD"sndtest.msx",S:BLOAD"covox-vr.bin" 5 POKE &H900A,0:REM Page de Vram 0 ou 1 6 POKE &H900C,0:POKE&H900E,0:REM debut du sample sur 16 bits 7 POKE &H9010,&HE3:POKE &H9012,&H92:REM fin du sample sur 16 bits 8 POKE &H902F,16:REM vitesse du sample 20 DEFUSR=&H9000:E=USR(0)
J'ai modifié l'adresse de début et de fin en remplaçant par une variable que j'incrémente à chaque cycle.
6 POKE &H900C,A:POKE&H900E,0:REM debut du sample sur 16 bits
7 POKE &H9010,&HA:POKE &H9012,&H92:REM fin du sample sur 16 bits
20 DEFUSR=&H9000:E=USR(0):A=A+5:GOTO6
Ce qui permet de lire les données par petites bribes.
L'idée est d'intégrer le programme dans un boucle vidéo qui joue des bribes comme le fait Joe&Mac.
Pourquoi le Poke &H900E peut être supprimé? Il désigne vraiment la première donnée a lire?
Pourquoi le Poke &H9012 peut être supprimé? il désigne vraiment la dernière donnée à lire?
@6502Man: Peux tu donner plus d'infos sur ce programme stp
ericb59
Membre non connecté
Conseiller Municipal
Jipe :
les valeurs 900c 900E sont pour une adresse sur 16 BITS il faut donc 2 octets
@igal : Le sample étant stocké en Vram, si par exemple tu un morceau de sample qui commencerai la 100 ème ligne de l'écran, il faut donc dire au programme de commencer la lecture à partir du 100*256 = 25600 ème bit
En hexa 25600 = &h6400
tu feras donc un POKE &H900C,&h00:POKE&H900E,&h64 Edité par ericb59 Le 29/04/2015 à 18h18
igal :
.... @6502Man: Peux tu donner plus d'infos sur ce programme stp
Qu'est ce que tu veux savoir sur ce programme ?
Suite à la demande de EricB59 pour un programme assembleur pouvant jouer un sample COVOX stocké en VRAM et après avoir fait un player COVOX (lecture en RAM) pour Fabf, j'ai donc essayé de le modifier pour pouvoir lire le sample en VRAM.
Comme je ne connait pas très bien les MSX j'ai un peu tâtonné et finalement c'est assez simple, et le programme est très court et fonctionne correctement avec un sample au maximum de 64Ko !
L'idée que tu as eu de lecture par bribes me donne une autre idée = lire une phrase en chargeant mot par mot et en lisant mot par mot le temps de pause entre chaque mot devrait être suffisant pour lire le sample d"un mot, c'est à essayer, si tu as besoin d'un coup de main dit moi le
igal
Membre non connecté
Conseiller Municipal
En fait voici ce que j'essais de faire.
Les 5 premières secondes donnent une idée de ce que je veux obtenir.
Forcément, moins il y aura de hachurage
J'ai simplement incrémenté de 5 "Unités" les valeurs de début et de fin de lecture du sample.
L'idée est de procéder comme suit.
1) Je charge une bribe de quelques lignes VRAM.
(L'idéal est de ne pas dépasser les 44 lignes que ce soit en screen8, 12)
2) je lance la lecture de la bribe.
3) je retourne à l'étape 1.
Tout ceci pose des problèmes de temporisation et tout le monde s'efforce à me le répéter inlassablement! Donc ne vous fatiguez pas à me le répéter parce que OUI, JE SAIS
En fait je veux partir sur ce principe de boucle et trouver "à tâtons" quel est le meilleur compromis entre a) la vitesse de lecture b) le taux d'échantillonnage c) le nombre de ligne Vram à remplir.
Une fois trouvé le "moins mauvais compromis", j'essaierai (empiriquement comme toujours) d'intégrer cette boucle à la boucle que j'utilise pour afficher le Scroll VDP(24).
N'ayant pas de bonnes connaissance en programmation, je voulais avoir plus de détails sur la partie Basic du programme.
Merci
Les 5 premières secondes donnent une idée de ce que je veux obtenir.
Forcément, moins il y aura de hachurage
J'ai simplement incrémenté de 5 "Unités" les valeurs de début et de fin de lecture du sample.
L'idée est de procéder comme suit.
1) Je charge une bribe de quelques lignes VRAM.
(L'idéal est de ne pas dépasser les 44 lignes que ce soit en screen8, 12)
2) je lance la lecture de la bribe.
3) je retourne à l'étape 1.
Tout ceci pose des problèmes de temporisation et tout le monde s'efforce à me le répéter inlassablement! Donc ne vous fatiguez pas à me le répéter parce que OUI, JE SAIS
En fait je veux partir sur ce principe de boucle et trouver "à tâtons" quel est le meilleur compromis entre a) la vitesse de lecture b) le taux d'échantillonnage c) le nombre de ligne Vram à remplir.
Une fois trouvé le "moins mauvais compromis", j'essaierai (empiriquement comme toujours) d'intégrer cette boucle à la boucle que j'utilise pour afficher le Scroll VDP(24).
N'ayant pas de bonnes connaissance en programmation, je voulais avoir plus de détails sur la partie Basic du programme.
Merci
igal
Membre non connecté
Conseiller Municipal
MSXlegend
Membre non connecté
Conseiller Municipal
igal :
Lire en continu de L'audio et de à vidéo
La finalité étant de ne pas être limité par les capacités de mémoires du MSX en "streamant" le Scrolling et l'audio
La finalité étant de ne pas être limité par les capacités de mémoires du MSX en "streamant" le Scrolling et l'audio
Et le MSX dans tout ça ? Le vrai MSX ?
Personnellement, je regarde de très loin tous ces développements hardware ... Ils sont intéressants, mais ne représentent pas une finalité en soi. Et sont une déviation du matériel original. Car à la fin, le seul rôle qu'il reste au MSX est celui de contrôleur électronique. Bof.
Mais je suis bien conscient que la communauté entière du MSX est divisée sur ce point. Il y a ceux qui ne jurent que par le matériel d'époque et ses contraintes (on va dire les "orthodoxes"). Et ceux qui continuent à développer du matériel pour étendre les capacités du MSX.
Le problème est que plus la technologie avance, plus le MSX s'éloigne de ce qu'on peut faire aujourd'hui. Venir lui greffer des extensions vidéo et audio ne fait qu'appauvrir son rôle et son importance dans le résultat final.
Je suis sur qu'avec le matériel adéquat (extension processeur, extension vidéo, extension audio, ...) on pourrait faire tourner GTA5 sur MSX. Mais quel en serait l'intérêt ? Est-ce que ce serait encore du MSX ? Bien sur que non.
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)
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie