La Place des Développeurs pcmenc (Artrag)
ericb59
Membre non connecté
Conseiller Municipal
La question est sans doute destinée à AOINEKO qui à utilisé cet outil ...
J'ai l'impression que pcmenc.exe converti les samples toujours vers du 11Khz.
J'ai testé des fichiers en 44K, il les samples à 11K, des fichiers en 8K il me les mets aussi en 11K.
Je n'ai pas trouvé le moyen d'utiliser l'outil pour créer des fichiers à d'autres taux d'échantillonnage.
L'option -E ne semble pas implémentée.
Une idée ? Ou j'ai loupé un truc ?
J'ai l'impression que pcmenc.exe converti les samples toujours vers du 11Khz.
J'ai testé des fichiers en 44K, il les samples à 11K, des fichiers en 8K il me les mets aussi en 11K.
Je n'ai pas trouvé le moyen d'utiliser l'outil pour créer des fichiers à d'autres taux d'échantillonnage.
L'option -E ne semble pas implémentée.
Une idée ? Ou j'ai loupé un truc ?
aoineko
Membre non connecté
Conseiller Municipal
De ce que j'ai pu tester, la fréquence du fichier à encoder n'a pas d'importance (autre que qualitatif). C'est les paramètres en ligne qu'on donne au tool qui détermine la fréquence finale.
On est toujours ignorant avant de savoir.
ericb59
Membre non connecté
Conseiller Municipal
Oui, mais les paramètres sont loin d'êtres clair !
Il y a des exemples donnés dans le code source du replayer, mais j'y entrave que dalle perso !
Sans aucun parametres ça resample toujours à 11Khz
D'autre part, les fichiers sont assez gros au final.
Sur mon projet en cours, j'avais fait tous mes samples en 8Bits 16Khz format RAW pour jouer ça sur un covox.
mon fichier de base .wav faisait 185 Ko
En 8bits Raw échantillonné à 16Khz le fichier ne faisait plus que 17Ko
avec pcmenc, échantillonné à 11Khz le fichier fait 14Ko
échantillonné à 22Khz il fait 15Ko.
On gagne un peu, et plus besoin de cocox, c'est un avantage, pour une qualité sonore somme toute quasi identique.
Maintenant, faut que je vois si on peut faire la même chose mais en lisant le sample depuis la VRAM ! Edité par ericb59 Le 19/03/2022 à 17h30
Il y a des exemples donnés dans le code source du replayer, mais j'y entrave que dalle perso !
Sans aucun parametres ça resample toujours à 11Khz
D'autre part, les fichiers sont assez gros au final.
Sur mon projet en cours, j'avais fait tous mes samples en 8Bits 16Khz format RAW pour jouer ça sur un covox.
mon fichier de base .wav faisait 185 Ko
En 8bits Raw échantillonné à 16Khz le fichier ne faisait plus que 17Ko
avec pcmenc, échantillonné à 11Khz le fichier fait 14Ko
échantillonné à 22Khz il fait 15Ko.
On gagne un peu, et plus besoin de cocox, c'est un avantage, pour une qualité sonore somme toute quasi identique.
Maintenant, faut que je vois si on peut faire la même chose mais en lisant le sample depuis la VRAM ! Edité par ericb59 Le 19/03/2022 à 17h30
aoineko
Membre non connecté
Conseiller Municipal
Voici le code que j'utilise pour créer les sons de mon sample PCMEnc :
Après, c'est normal que ça fasse de gros fichiers. Même 8 KHz, ça fait 160 données par frame (à 50 Hz) sur 3 canaux.
Code BASH :
::-- Build pcmenc data -- if not exist %Dest%\pcm md %Dest%\pcm :: 8 KHz for %%I in (pcm\*.wav) do %Tools%\audio\pcmenc\pcmenc.exe -dt1 31 -dt2 27 -dt3 388 %%I move pcm\*.bin pcm\8K for %%I in (pcm\8K\*.bin) do %CMSXtk%\CMSXbin.exe %%I -ad -o %Dest%\pcm\pcm_8k_%%~nI.h :: 11 KHz for %%I in (pcm\*.wav) do %Tools%\audio\pcmenc\pcmenc.exe -dt1 32 -dt2 27 -dt3 265 %%I move pcm\*.bin pcm\11K for %%I in (pcm\11K\*.bin) do %CMSXtk%\CMSXbin.exe %%I -ad -o %Dest%\pcm\pcm_11k_%%~nI.h :: 22 KHz for %%I in (pcm\*.wav) do %Tools%\audio\pcmenc\pcmenc.exe -rto 2 -dt1 156 -dt2 27 -dt3 141 %%I move pcm\*.bin pcm\22K for %%I in (pcm\22K\*.bin) do %CMSXtk%\CMSXbin.exe %%I -ad -o %Dest%\pcm\pcm_22k_%%~nI.h :: 44 KHz for %%I in (pcm\*.wav) do %Tools%\audio\pcmenc\pcmenc.exe -p 1 -rto 3 -dt1 73 -dt2 84 -dt3 87 %%I move pcm\*.bin pcm\44K for %%I in (pcm\44K\*.bin) do %CMSXtk%\CMSXbin.exe %%I -ad -o %Dest%\pcm\pcm_44k_%%~nI.h
Après, c'est normal que ça fasse de gros fichiers. Même 8 KHz, ça fait 160 données par frame (à 50 Hz) sur 3 canaux.
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
Je te confirme que ça ne marche pas bien sous MSX-DOS.
Même en désactivant les interruptions.
Je vais investiguer...
Même en désactivant les interruptions.
Je vais investiguer...
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
Et bien... j'ai pas trouvé
C'est comme s'il y avait qq chose qui interrompe le déroulement du playback du son, même quand les interruptions sont désactiver. Bizarre.
C'est comme s'il y avait qq chose qui interrompe le déroulement du playback du son, même quand les interruptions sont désactiver. Bizarre.
On est toujours ignorant avant de savoir.
ericb59
Membre non connecté
Conseiller Municipal
Oui, un peu comme si il y avait une autre interruption quelque part ?
Dans ma routine ASM pour le COVOX, ca marche sous DOS ou pour ROM.
Moi je pense que c'est parceque c'est pas le même timing de playback sous DOS.
J'ai remarqué en faisant des tests de vitesses sur certaines routines, que sous DOS elles sont plus lentes que sur ROM. Ca m'étonnerai pas que le timing de playback doivent être modifié pour le DOS.
Dans ma routine ASM pour le COVOX, ca marche sous DOS ou pour ROM.
Moi je pense que c'est parceque c'est pas le même timing de playback sous DOS.
J'ai remarqué en faisant des tests de vitesses sur certaines routines, que sous DOS elles sont plus lentes que sur ROM. Ca m'étonnerai pas que le timing de playback doivent être modifié pour le DOS.
aoineko
Membre non connecté
Conseiller Municipal
Je vois aucune raison que du code assembleur n'ai pas le même timing en ROM ou en DOS. Le CPU va à la même vitesse donc le code aussi.
Je penche pour une bug d'initialisation. Je vais creuser.
Je penche pour une bug d'initialisation. Je vais creuser.
On est toujours ignorant avant de savoir.
ericb59
Membre non connecté
Conseiller Municipal
J'ai demandé à Arturo.
En fait il faut réinitialiser le PSG pour le DOS
Et il me confirme que oui, il faut désactiver les interruptions pour correctement jouer les samples. Edité par ericb59 Le 21/03/2022 à 18h22
En fait il faut réinitialiser le PSG pour le DOS
Code ASM :
RESET_PSG: xor a ld bc,#0xffa1 out (#0xa0),a inc a out (c),b out (#0xa0),a inc a out (c),b out (#0xa0),a inc a out (c),b out (#0xa0),a inc a out (c),b out (#0xa0),a inc a out (c),b out (#0xa0),a inc a out (c),b out (#0xa0),a inc a out (c),b out (#0xa0),a ld b,#0xbf out (c),b
Et il me confirme que oui, il faut désactiver les interruptions pour correctement jouer les samples. Edité par ericb59 Le 21/03/2022 à 18h22
ericb59
Membre non connecté
Conseiller Municipal
aoineko, j'ai un petit service à te demander.
Est-ce que tu arrive à compiler l'encoder de Artrag ? pcmenc.cpp sans erreurs ?
De mon coté sur Mac, il se compile avec des Warning, semble fonctionner, mais il refuse de charger les fichiers WAV en indiquant que mes wav sont incompatibles car pas en 8,16, 32 bits
Si j'arrive à corriger cette problème, il me fait des segmentation fault lors du resampling du fichier.
De mon coté j'utilise gcc 13.1.6
Et j'ai utilisé les paramètres de compilation indiqués dans le fichier readme
Est-ce que tu arrive à compiler l'encoder de Artrag ? pcmenc.cpp sans erreurs ?
De mon coté sur Mac, il se compile avec des Warning, semble fonctionner, mais il refuse de charger les fichiers WAV en indiquant que mes wav sont incompatibles car pas en 8,16, 32 bits
Si j'arrive à corriger cette problème, il me fait des segmentation fault lors du resampling du fichier.
De mon coté j'utilise gcc 13.1.6
Et j'ai utilisé les paramètres de compilation indiqués dans le fichier readme
aoineko
Membre non connecté
Conseiller Municipal
Je n'ai pas essayé. J'utilise la version Windows fourni.
A priori le logiciel n'a jamais été testé sur un système big-endian, donc ni sur Linux, ni sur MacOS.
readme.txt :
The encoder is only tested on little endian machines but is prepared to be compiled on big endian machines as well.
A priori le logiciel n'a jamais été testé sur un système big-endian, donc ni sur Linux, ni sur MacOS.
On est toujours ignorant avant de savoir.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie