MSX Village forum

La Place des Développeurs Son PCM sur TURBO-R

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 27/12/2013 à 18h07

Reprise du message précédent

1ére constatation il y a un probléme de taille

je crois que le maximum pour un fichier MSX est de 64k si il est chargé dans la VRAM ( a confirmer )


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 27/12/2013 à 18h18
j'ai retrouvé ça dans un article de GDX

CALL PCMREC (@adrs de début,adrs de fin,fréquence,niveau de déclenchement,compression,s)

ou bien

CALL PCMREC (variable tableau,longueur,fréquence,niveau de déclenchement,compression)

fréquence = 0~3
0 -> 15.7500KHz
1 -> 7.8750KHz
2 -> 5.2599KHz
3 -> 3.9375KHz

niveau de déclenchement = 0~127 [optionnel]

compression = 0~1

s = vram [optionnel]

longueur est optionnel


CALL PCMPLAY (@adrs de début,adrs de fin,fréquence,s)

ou bien

CALL PCMPLAY (variable tableau,longueur,fréquence)




:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 27/12/2013 à 18h30
voici les appels dans la rom

PCMPLY

Address : #0186
Function : Plays specified memory area through the PCM chip
Input : A = v 0 0 0 0 0 x x
| | |
| +-+-- Quality parameter (Speed: 0 = Fast)
+---------------- VRAM usage flag
HL= Start address in RAM or VRAM
BC= Length of area to play
D = Bit 0 = Bit 17 of area length when using VRAM
E = Bit 0 = Bit 17 os start address when using VRAM
Output : C-flag set when aborted with CTRL-STOP
Registers: all

PCMREC

Address : #0189
Function : Records audio using the PCM chip into the specified memory area
Input : A = v t t t t c x x
| | | | | | | |
| | | | | | +-+-- Quality parameter (Speed: 0 = Fast)
| | | | | +------ Zero-data compression
| +-+-+-+-------- Treshold
+---------------- VRAM usage flag
HL= Start address in RAM or VRAM
BC= Length of area to play
D = Bit 0 = Bit 17 of area length when using VRAM
E = Bit 0 = Bit 17 os start address when using VRAM
Output : C-flag set when aborted with CTRL-STOP
Registers: all


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 27/12/2013 à 18h44
exemple basic de NYYRIKKI

10 SCREEN 8
20 _PCMREC(@0,&H7FFF,0,0,0,S)
30 BSAVE"SHIT.PCM",0,&H7FFF,S

le fichier est donc un fichier binaire , il doit être sous la forme FE,XXXX,XXXX (adresse début,adresse de fin)


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 27/12/2013 à 19h08
oui, merci jipe.
mais tout ca je savais déjà...
j'ai déja fait des enregistrements pcm avec le micro,du turbo-r, sauvergardés, et rejoués...

par contre comment transférer/convertir un fichier pc vers le,msx ?
pour que ça soit compatible avec Call pcmplay ? Edité par ericb59 Le 27/12/2013 à 19h13


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 27/12/2013 à 19h34
se contenter d'un fichier de moins de 64K

ajouter une en tête FE 0000 XXXX avec un éditeur hexa décimal

XXXX est a calculer d'aprés la taille du fichier

ne pas oublier que l'utilisation de la VRAM bloque la page et donc pas de données graphiques dedans

et surtout prier pour que ça marche car je n'ai pas fait l'essai , tout est théorique


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 27/12/2013 à 19h36
ok, je vais essayer...

je ne souhaite pas utiliser la vram pour stocker des sons... mais utiliser la ram du turbo-r
ca change quelque chose à l'entête ? Edité par ericb59 Le 27/12/2013 à 19h39


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 27/12/2013 à 19h46
oui il faut une adresse de départ libre au dessus de ton basic en une taille trés raisonnable du genre 8 ou 16K

il y peut être moyen d'utiliser une autre page avec un OUT FE


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 27/12/2013 à 20h01
Bon ok ca fonctionne en plaçant le sample dans la VRAM ^^ :top

Quelle est le "mappage" de la ram accessible sur un Turbo-R ? Edité par ericb59 Le 27/12/2013 à 20h01


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 28/12/2013 à 12h19
la mémoire du MSX est divisée en BANK de 16K

sous Basic les 2 premiers banks sont pris par le bios et le basic

les 2 banks suivants sont alloués a la ram maxi 28k version K7 et aux variables systémes qui sont immuables

avec un memory mapper on obtient ceci
Port FC ROM mappé a 0000-3FFF
Port FD ROM mappé a 4000-7FFF
Port FE RAM mappé a 8000-BFFF
Port FF RAM mappé a C000-FFFF

donc ce qui nous interesse est la zone memoire de 8000 a BFFF pour stocker le PCM de 16K
en jouant sur la valeur du out FE on va obtenir plusieurs pages de 16K
mais il faut savoir que la zone basic va se réduire d'autant et passer a 12k environ



: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/12/2013 à 12h26
Je ne peux pas stocker les PCM dans les 256ko du turbo-R ?


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 28/12/2013 à 12h35
les 256k du turbo-r ne sont pas en ligne

on peut juste acceder aux bank de 16k de la façon décrite au dessus

la maxi vu par un Z80 ou R800 est de 64K maximum


: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/12/2013 à 12h40
:( :( :(


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/12/2013 à 12h43
Avec NEstor Basic j'ai accès à toute la mémoire du Turbo-R, par "segments" de 16Ko.
Je peux facilement stocker des PCM dans ces segments... Par contre comment les réutiliser avec la commande PCMPLAY qui demande des adresses memoire qui ne sont pas accessibles pour le coup !!
Mince !
Faire un transfert dans une zone tampon accessible ? Mmouais ! Mais je ne peux pas réduire la mémoire dispo pour le Basic j'en ai besoin !!


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 28/12/2013 à 13h08
le nestor basic doit utiliser le systéme des bank qu'il remplace par des segments

si tu n'est pas trop gourmand tu peux reserver une plage de mémoire de la VRAM en page cachée en ne stockant pas d'image dedans


: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/12/2013 à 17h07
Mince ... Impossible de remettre la main sur le LA VRAM MAP !

J'avais trouvé un site où il y avait toutes les adresses de la VRAM
Zones de sprites, et aussi ce qui m'interesse, les adresses de la VRAM non utilisée sur les pages 0 et 1 (en dessous des 212 pixels)

Z'avez pas ça sous la main des fois ? :(


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