La Place des Développeurs Recherche programmeur
TurboSEB
Membre non connecté
Conseiller Municipal
Reprise du message précédent
Ca serait cool d'avoir un player permettant de lire un fichier en streaming d'un lecteur CF/SD ou d'un Ram discPerso je vise plutot une banque de sons courte qu'une musique de 4 minutes.
Un player LM avec une instruction sous basic , le top pour une application et une démocratisation du genre
10 IF....... THEN player"LOL.PCM" Edité par TurboSEB Le 03/11/2014 à 15h14
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
GDX :
De toutes façons, si c'est vraiment en streaming, je maintiens qu'on ne peut rien faire d'autre en même temps. Le fait que ça lit un octet en même temps pour la vidéo ne change pas grand-chose mais faire autre en même temps, ça serait une prouesse.
Je suis entièrement d'accord avec GDX.
Dès que la fréquence de sortie est supérieure à la fréquence de rafraîchissement du VDP (et ici on est bien au-delà), cela implique que la synchronisation est faite par le programme lui-même, sur base du temps existant entre deux instructions d'envoi d'un octet. Pour prendre un exemple, si la fréquence de sortie voulue est de 22kHz, cela signifie que le programme devra envoyer un octet toutes les 45 microsecondes (1/22000). A la fréquence du Z80 (3.579545 MHz), cela se traduit donc en 161 "T-states", soit à peu près 20 instructions en moyenne (en incluant le WAIT state). Le temps pour faire autre chose est donc nul.
En revanche, il est possible, si le module COVOX possède une petite RAM intégrée ET que celle-ci est accessible ET gérable en tâche de fond par le convertisseur DA (je ne connais pas la structure du COVOX), d'alimenter cette RAM à intervalle régulier pour obtenir le même effet, mais en se synchronisant cette fois-ci sur le VBLANK du VDP, ce qui laisse alors la possibilité de faire autre chose.
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)
Fabf
Membre non connecté
Conseiller Municipal
Je n'ai pas prévu de faire autre chose pendant la lecture sinon tester la touche echap pour arrêter la lecture.
Je n'ai pas prévu non plus d'ajouter une RAM (qu'il faudrait gérer en VHDL alors que le CPLD est déjà plein).
Non un simple lecteur PCM en streaming ce serait déjà une bonne avancé pour cette carte.
Je n'ai pas prévu non plus d'ajouter une RAM (qu'il faudrait gérer en VHDL alors que le CPLD est déjà plein).
Non un simple lecteur PCM en streaming ce serait déjà une bonne avancé pour cette carte.
GDX :
Ça n'est pas possible. Il faut faire un système comme dans le Music Module. Il faut une mémoire dédiée et une puce sonore (ou un contrôleur) capable de lire les données de sa mémoire indépendamment.
Oui et non.
Faudrait évaluer quelle sont les performances attendues par Fabf?
Si on part sur du 16Khz de replay en mono phonique, une page de mapper nous donne 1.024s de son. Si on utilise deux page de mapper une pour lire l'autre pour bufferiser...
Et si on est capable de lire au minimum 328 octets par VBL (à 50Hz, ou 274 si on est à 60Hz ) depuis le fichier. Alors pendant la lecture d'une page de 16K on est capable de remplir la seconde page de 16K.
Quand on aura fini de lire la première page de 16K on aura rempli la seconde avec la suite de la musique (du son), du coup on bascule la lecture sur la seconde page et on rempli la première avec la lecture du fichier.
Et ainsi de suite...
Si on fait l'ensemble avec notre bon vieux Z80, il va devoir passer son temps à gérer des interruptions lignes du VDP. En son temps Frank GERARDIN. avec fait un petit exemple avec le PCM du Turbo-R l'échantillon était avec la voix de Jipé, la phrase c'était quelque chose comme "ça va pas durée longtemps"
@Fabf:
Dans l'idéal faudrait au moins 32K de SRAM (ou deux SRAM de 32K) dans ta cartouche et que ton CPLD divise le 3.59MHz pour avoir une fréquence ligne de 15625Hz (les fameux 64us des lignes vidéo).
Il faut aussi que le CPLD embarque un mécanisme qui permette au MSX de charger la "bonne" partie de 16K de la SRAM. Ou alors prévoir un système de registre avec flag pour signaler au Z80 qu'il peut écrire les données, que le COVOX attend des donné, qu'il joue un son, que son buffer est plein et qu'il faut attendre pour continuer à charger, etc...)
Du coup le player devient plus simple dans le sens ou il charge la SRAM au début, puis lance la lecture, rempli tant qu'il y a un truc à jouer, puis soit ne remplie plus jusqu'à ce le covox ai lu toute les donnée, soit le player arrête la lecture parce que on ne veut plus jouer de son ou tout simplement qu'on change de morceau à jouer.
TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours)
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,...
z80 :
Si on fait l'ensemble avec notre bon vieux Z80, il va devoir passer son temps à gérer des interruptions lignes du VDP
C'est vrai que j'avais oublié les interruptions ligne du VDP, mais elles sont uniquement disponibles sur MSX2.
Ceci dit, pas sur qu'elles puissent fournir une synchro intermédiaire au VBLANK, parce que, sauf erreur de ma part, le VDP "traite" l'équivalent de 313 lignes par frame complète. Or l'interruption de ligne n'est disponible que pour les 212 lignes réellement affichées. Il y aurait donc un trou dans la synchronisation ...
z80 :
Il faut aussi que le CPLD embarque un mécanisme qui permette au MSX de charger la "bonne" partie de 16K de la SRAM. Ou alors prévoir un système de registre avec flag pour signaler au Z80 qu'il peut écrire les données, que le COVOX attend des donné, qu'il joue un son, que son buffer est plein et qu'il faut attendre pour continuer à charger, etc...)
Cela revient à ce qui est dit depuis le début : il faudrait un contrôleur intégré, pour décharger le MSX.
Fabf :
Je n'ai pas prévu de faire autre chose pendant la lecture sinon tester la touche echap pour arrêter la lecture.
Je n'ai pas prévu non plus d'ajouter une RAM (qu'il faudrait gérer en VHDL alors que le CPLD est déjà plein).
Non un simple lecteur PCM en streaming ce serait déjà une bonne avancé pour cette carte.
Je n'ai pas prévu non plus d'ajouter une RAM (qu'il faudrait gérer en VHDL alors que le CPLD est déjà plein).
Non un simple lecteur PCM en streaming ce serait déjà une bonne avancé pour cette carte.
Alors c'est du domaine du possible, pour autant que le temps de lecture d'un octet sur son support soit inférieur au temps de cadencement de l'écriture à la fréquence voulue. Edité par Metalion Le 03/11/2014 à 16h26
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
GDX :
Je n'ai jamais essayé le lire un EVA mais Konamiman dit que le DOS2 patché Fat16 ou même Nextor ne supporte pas les fichiers de plus de 32Mo.
Avant, le driver F16 avait un bug qui limitait l'accès à la moitié seulement d'un fichier contenu dans une partition F16.
Le drivers à été fixé depuis le début de l'année et depuis, tout le contenu des disques F16 est pleinement exploitable.
@fabf: comment tu fais pour créer un EVA ou EV2 sans y implanter l'image?
C'est intéressant ça
MSXlegend
Membre non connecté
Conseiller Municipal
Piqure de rappel !!!
Les fichiers EVA sont lu en streaming . 128k suffise. J'ai testé une vidéo de plus de 1 GB et ça passe.
Le PCM doit être intégralement chargé en memoire avant d'être lu !! 1mn=1mo sur 15khz
L'astuce pour écouter de l'audio (tant qu'il y a de la place sur la cf), c'est de transformer le PCM en EVA avec un fond noir !!! Audio en vidéo
J'ai longuement cherché une méthode pour lire l'EVA et le PCM sous basic, et il existerait une méthode correene mais je n'ai pas encore réussi. Je suis donc bloque aussi pour le moment) Edité par MSXlegend Le 03/11/2014 à 20h10
Les fichiers EVA sont lu en streaming . 128k suffise. J'ai testé une vidéo de plus de 1 GB et ça passe.
Le PCM doit être intégralement chargé en memoire avant d'être lu !! 1mn=1mo sur 15khz
L'astuce pour écouter de l'audio (tant qu'il y a de la place sur la cf), c'est de transformer le PCM en EVA avec un fond noir !!! Audio en vidéo
J'ai longuement cherché une méthode pour lire l'EVA et le PCM sous basic, et il existerait une méthode correene mais je n'ai pas encore réussi. Je suis donc bloque aussi pour le moment) Edité par MSXlegend Le 03/11/2014 à 20h10
Sinon il est possible d'utiliser un micro contrôleur en lieu et place du CPLD/FPGA pour jouer le pcm voir plus, décoder du MP3! Choisir un micro de préférence avec au moins 32Ko de RAM pour ne pas avoir à ajouter de la RAM externe.
TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours)
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,...
Fabf
Membre non connecté
Conseiller Municipal
igal :
@fabf: comment tu fais pour créer un EVA ou EV2 sans y implanter l'image?
C'est intéressant ça
C'est intéressant ça
Je l'ai jamais fait
MSXlegend et Bibizen eux l'ont fait
Je vais faire des tests en C, c'est le maximum que je puisse faire niveau langage.
J'espère que ce sera assez rapide Edité par Fabf Le 04/11/2014 à 20h52
igal :
Avant, le driver F16 avait un bug qui limitait l'accès à la moitié seulement d'un fichier contenu dans une partition F16.
Le drivers à été fixé depuis le début de l'année et depuis, tout le contenu des disques F16 est pleinement exploitable.
GDX :
Je n'ai jamais essayé le lire un EVA mais Konamiman dit que le DOS2 patché Fat16 ou même Nextor ne supporte pas les fichiers de plus de 32Mo.
Avant, le driver F16 avait un bug qui limitait l'accès à la moitié seulement d'un fichier contenu dans une partition F16.
Le drivers à été fixé depuis le début de l'année et depuis, tout le contenu des disques F16 est pleinement exploitable.
Tu as peut-être raison. Ça doit être faisable.
Ça serait juste le calcul de la taille du fichier qui foire. Je ne sais pas si ça a cause problème pour la copie de ces gros fichiers avec le MSX ou pas mais avec un PC, ça ne doit pas causer de problème à la partition.
igal
Membre non connecté
Conseiller Municipal
Pour info, BlueMSX émule parfaitement le covox.
Il suffit d'aller dans l'onglet du pot imprimante et sélectionner le covox.
Pour revenir au player EV2, il faut savoir que si l'on diminue la fréquence d'échantillonnage audio, la vitesse de lecture vidéo sera plus rapide.
En fait, la somme additionnelle des données composant chaque frame semble servir de "temporisation".
Il y a fort à parier que si l'on supprime la vidéo, on pourra augmenter d'autant de données L'audio.
D'ailleurs, sur le même principe que les bribes vidéos, on pourrait créer des images ne pesant que quelques octets ce qui laisserait un maximum de la bande passante pour L'audio.
Je suis en panne de pc.
@fabf: essais la chose suivantes (si tu veux bien):
1) Tu créer une vidéo avec le tutoriel Eva 2 dont le lien est un peu plus haut.
2) Tu remplaces 15750hz par 22khz mono.
3) Tu prends tes centaines d'images.SC2 que tu places dans une cf msx.
4) tu bload"image.sc2 et tu BSAVE"image.sc2,?!?!
De la sorte, le générateur de ni kir ri aura bien les 12 images.sc2 à compiler chaque seconde.
Chaque image ne pensant que quelques octets, son player lira le tout bcp bcp bcp plus rapidement de sorte à ce que la bande audio deviennent cohérente.
Soyons optimiste ça va marcher
Il suffit d'aller dans l'onglet du pot imprimante et sélectionner le covox.
Pour revenir au player EV2, il faut savoir que si l'on diminue la fréquence d'échantillonnage audio, la vitesse de lecture vidéo sera plus rapide.
En fait, la somme additionnelle des données composant chaque frame semble servir de "temporisation".
Il y a fort à parier que si l'on supprime la vidéo, on pourra augmenter d'autant de données L'audio.
D'ailleurs, sur le même principe que les bribes vidéos, on pourrait créer des images ne pesant que quelques octets ce qui laisserait un maximum de la bande passante pour L'audio.
Je suis en panne de pc.
@fabf: essais la chose suivantes (si tu veux bien):
1) Tu créer une vidéo avec le tutoriel Eva 2 dont le lien est un peu plus haut.
2) Tu remplaces 15750hz par 22khz mono.
3) Tu prends tes centaines d'images.SC2 que tu places dans une cf msx.
4) tu bload"image.sc2 et tu BSAVE"image.sc2,?!?!
De la sorte, le générateur de ni kir ri aura bien les 12 images.sc2 à compiler chaque seconde.
Chaque image ne pensant que quelques octets, son player lira le tout bcp bcp bcp plus rapidement de sorte à ce que la bande audio deviennent cohérente.
Soyons optimiste ça va marcher
Fabf
Membre non connecté
Conseiller Municipal
igal :
@fabf: essais la chose suivantes (si tu veux bien):
1) Tu créer une vidéo avec le tutoriel Eva 2 dont le lien est un peu plus haut.
2) Tu remplaces 15750hz par 22khz mono.
3) Tu prends tes centaines d'images.SC2 que tu places dans une cf msx.
4) tu bload"image.sc2 et tu BSAVE"image.sc2,?!?!
1) Tu créer une vidéo avec le tutoriel Eva 2 dont le lien est un peu plus haut.
2) Tu remplaces 15750hz par 22khz mono.
3) Tu prends tes centaines d'images.SC2 que tu places dans une cf msx.
4) tu bload"image.sc2 et tu BSAVE"image.sc2,?!?!
C'est pas que je veux pas mais j'ai jamais fais de EVA car j'ai pas le matos pour les lire
Par contre j'ai maintenant MSX C installé sur une CF pour la BEER
C'est long à la compilation mais une fois le .COM généré, ça pédale du tonnerre.
Je vais pourvoir commencer à tester la lecture de fichiers PCM.
igal
Membre non connecté
Conseiller Municipal
Fabf
Membre non connecté
Conseiller Municipal
igal :
Au cas où tu changes d'avis, il te faut juste un msx2 et un covox
Le Music module est aussi compatible.
Le Music module est aussi compatible.
Non il faut une sunrise CF et j'en ai pas, idem pour le Music Module.
Fabf
Membre non connecté
Conseiller Municipal
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie