mzsfxgen - outil de manipulation des fichiers WAV.

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

mzsfxgen - outil de manipulation des fichiers WAV.

Message par hlide »

L'outil en question peut sembler spécifique au SHARP MZ mais il ne l'est pas - du moins actuellement. Il était prévu qu'il construirait ce qu'il faut pour intégrer du son dans un programme MZF mais pour l'heure, il se contente de manipuler des fichiers WAV pour en construire un. Il me sert pour faire de l'expérimentation.

Voici un exemple :
audacity_tests.png
audacity_tests.png (914.1 Kio) Consulté 719 fois
Il est le résultat de :
cmd_tests.png
cmd_tests.png (24.89 Kio) Consulté 719 fois
Qu'est ce que ça fait ?

Le premier est le fichier WAV qui sert de source et qui est construit à partir de Beepola avec le moteur Savage sur la musique cantslowdow.bbsong.

Vous noterez qu'il y a un niveau bas, un ou deux niveaux très bruités et un niveau haut - rien de sinusoïdale en apparence.

Le test 1 a consisté à appliquer la méthode de "intersective PWM" sur la base d'un signal en dent de scie à 15,6 KHz (fréquence du blanc horizontal). Si l'on écoute, sur les portions bruitées, on peut entendre cette fréquence. Le signal est rendu carré puis qu'il s'agit d'un signal PWM.

Le test 2 a consisté à appliquer la méthode qui crée un PWM à trois états au lieu de l'habituel à 2 états. Pour cela dès que le niveau est inférieure à 0,9, on met le signal à 0. Cela permet de mettre à plat les parties très bruitées au même niveau intermédiaire. Les autre parties sont mises à 1 ou à -1 pour créer un PWM. Pour information, je m'intéresse à ce type de signal car j'ai la possibilité de sortir un tel signal par l'entremise du 8253 sur le SHARP MZ. Je note qu'il offre un bien meilleur résultat que le test 1.

Le test 3 reprend le principe que le test 1 mais avec un signal en dent de scie de 22,080 KHz (moitié de la résolution du WAV source). Le résultat ne me paraît pas très différent de la source. C'est probablement lié au fait que cette division par deux introduit un régularité dans les parties bruitées que l'on a pas avec le test 1.

Le test 4 reprend le principe que le test 1 mais avec un signal en dent de scie de 3,9 KHz (fréquence pour jouer in-game). Clairement, tel quel, on retombe dans le même problème rencontré dans le test 1 (les parties bruitées font entendre unz fréquence élevée).

La dernière piste est le signal en dent de scie de 3,9 KHz pour comparer à la piste test 4. En fait, le test 4 est une suite de signal carré à 3,9 KHZ avec un rapport cyclique variable. Je pourrais donc faire une méthode "intersective" PWM3 qui aurait pour objet de retourner 1 quand le rapport est très proche de 100%, -1 quand très proche de 0%, sinon 0. Et j'aurais alors un PWM3 adapté à résolution 3,9 KHz.

Allez les mains dans le cambouis.
Xavier_

Re: mzsfxgen - outil de manipulation des fichiers WAV.

Message par Xavier_ »

Beau travail !
Merci hlide.
Répondre