[Exelvision] Emulation de la synthèse du son
Modérateurs : Papy.G, fneck, Carl
- fneck
- Site Admin
- Messages : 17533
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Pour ma part, je suis plus que jamais confiant
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Résumé pour vous éviter de relire les 4 pages de posts :
- Le synthétiseur de parole est émulé dans dcexel. Il y a encore quelques améliorations à faire avant la diffusion de la nouvelle version. Peut-être en février...
- Dans la foulée j'ai cherché et trouvé le moyen de créer les fameuses chaînes au format LPC utilisées pour jouer un son avec l'exl100. Depuis 25 ans beaucoup ont cherché, personne n'avait réussi. En fait, j'ai seulement déniché le programme QBOXPRO, tout le mérite revient à jester qui a su le comprendre et l'utiliser. Il a gagné le premier prix du concours que j'avais organisé
- Pour permettre de jouer les chaînes LPC sur PC, j'ai écrit un émulateur autonome du TMS5220
En attendant vos compositions originales, voici quelques chaînes de commandes LPC extraites de Capitaine Menkar http://dcexel.free.fr/tmp/menkar_lpc.zip
- Le synthétiseur de parole est émulé dans dcexel. Il y a encore quelques améliorations à faire avant la diffusion de la nouvelle version. Peut-être en février...
- Dans la foulée j'ai cherché et trouvé le moyen de créer les fameuses chaînes au format LPC utilisées pour jouer un son avec l'exl100. Depuis 25 ans beaucoup ont cherché, personne n'avait réussi. En fait, j'ai seulement déniché le programme QBOXPRO, tout le mérite revient à jester qui a su le comprendre et l'utiliser. Il a gagné le premier prix du concours que j'avais organisé
- Pour permettre de jouer les chaînes LPC sur PC, j'ai écrit un émulateur autonome du TMS5220
En attendant vos compositions originales, voici quelques chaînes de commandes LPC extraites de Capitaine Menkar http://dcexel.free.fr/tmp/menkar_lpc.zip
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- fneck
- Site Admin
- Messages : 17533
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Ce que je n'ai pas compris c'est comment on peut créer une chaîne de commandes LPC? Et d'où sort ce format au final?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Et surtout, pourquoi "ça cause". Pourquoi Jester obtient "un bonhomme qui chante le son de démarrage de Windows".
Mais, il doit "suffire" de lire les docs du TMS5220, ce qu'ai j'ai arrété très vite après les premiers posts sur ce topic.
Il faudra faire un "how to" convertir un .WAV en un truc jouable facilement par DCEXEL ou un vrai EXL100 !
Chapeau messieurs quand même.
Mais, il doit "suffire" de lire les docs du TMS5220, ce qu'ai j'ai arrété très vite après les premiers posts sur ce topic.
Il faudra faire un "how to" convertir un .WAV en un truc jouable facilement par DCEXEL ou un vrai EXL100 !
Chapeau messieurs quand même.
Non, ne cherchez pas dans la doc, il n'y a rien. Ou alors il disent qu'il faut envoyer le fichier son à exelvision, qui le fait traiter par Texas Instruments aux Etats-Unis. Pour comprendre comment faire il suffit de visionner la video de youtube dont j'ai donné le lien quelques posts plus haut.
Le format LPC est expliqué en détail dans le brevet américain dont j'ai donné les références (et consultable à la page documentation de dcexel).
Pour la musique, jester n'a pas encore trouvé le moyen de mettre le pitch à zéro pour produire des sons (unvoiced samples), alors QBOXPRO ne génère que de la parole (voiced samples). Au final tout est parlé, même les explosions. Et la musique instrumentale est transformée en chant
Le format LPC est expliqué en détail dans le brevet américain dont j'ai donné les références (et consultable à la page documentation de dcexel).
Pour la musique, jester n'a pas encore trouvé le moyen de mettre le pitch à zéro pour produire des sons (unvoiced samples), alors QBOXPRO ne génère que de la parole (voiced samples). Au final tout est parlé, même les explosions. Et la musique instrumentale est transformée en chant
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- Carl
- Modérateur
- Messages : 13297
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Bravo à vous 2 pour le travail d'investigation !
si ça peut aider, un lien sur le sujet mais chez Commodore qui utilise aussi le LPC ...
http://www.stefan-uhlmann.de/cbm/MVM/MVM_WAV2MVM.html
carl
si ça peut aider, un lien sur le sujet mais chez Commodore qui utilise aussi le LPC ...
http://www.stefan-uhlmann.de/cbm/MVM/MVM_WAV2MVM.html
carl
Ce dernier lien doit être une mine d'or, non ? Avec des sources C....Carl a écrit :Bravo à vous 2 pour le travail d'investigation !
si ça peut aider, un lien sur le sujet mais chez Commodore qui utilise aussi le LPC ...
http://www.stefan-uhlmann.de/cbm/MVM/MVM_WAV2MVM.html
carl
Peu d'information en effet...
Tout ce que contiennent mes documents internes d'Exelvision sous des listes interminables de DATA (effets sonores et synthèse vocale) extraits des cartouches et k7 éditées par Exelvision, ainsi que quelques lignes de code avec routine en ASM permettant de se libérer de la fonction CALL SPEECH pour envoyer au TMS5220 des tables de données de longueur importante.
Tout ce que contiennent mes documents internes d'Exelvision sous des listes interminables de DATA (effets sonores et synthèse vocale) extraits des cartouches et k7 éditées par Exelvision, ainsi que quelques lignes de code avec routine en ASM permettant de se libérer de la fonction CALL SPEECH pour envoyer au TMS5220 des tables de données de longueur importante.
En assembleur c'est beaucoup plus facile qu'en Basic : il suffit de mettre l'adresse des commandes LPC dans R10 et d'appeler le TRAP 4. Le CALL SPEECH du Basic a comme principal inconvénient la limite de longueur des chaînes de caractères.
Comment je l'ai écrit plus haut je prépare un article sur le fonctionnement et l'utilisation du TMS5220 dans l'EXL100, pour combler les grosses lacunes de la documentation officielle. Mais c'est plus long que prévu car il y a beaucoup de concepts à expliquer. En plus les protocoles de communication ne sont pas simples. La communication n'est pas directe entre le TMS7020 et le TMS5220, elle passe par le TMS7041, ce qui complique un peu les choses...
Dans le site indiqué par Carl il y a entre autres choses, ce lien : http://www.irisa.fr/metiss/guig/spro/
Ce n'est pas à proprement parler un convertisseur de wav en LPC, mais il contient tous les modules nécessaires pour construire son propre programme. Attention, ce n'est peut-être pas aussi trivial qu'ils le disent
Comment je l'ai écrit plus haut je prépare un article sur le fonctionnement et l'utilisation du TMS5220 dans l'EXL100, pour combler les grosses lacunes de la documentation officielle. Mais c'est plus long que prévu car il y a beaucoup de concepts à expliquer. En plus les protocoles de communication ne sont pas simples. La communication n'est pas directe entre le TMS7020 et le TMS5220, elle passe par le TMS7041, ce qui complique un peu les choses...
Dans le site indiqué par Carl il y a entre autres choses, ce lien : http://www.irisa.fr/metiss/guig/spro/
Ce n'est pas à proprement parler un convertisseur de wav en LPC, mais il contient tous les modules nécessaires pour construire son propre programme. Attention, ce n'est peut-être pas aussi trivial qu'ils le disent
Magic Voice n'est pas un générateur de LPC. Il permet de combiner des phonèmes de la rom pour constituer des phrases. Dans l'exl100 il n'y a pas de phonèmes préenregistrés, donc il faut coder toute la phrase.The library does not provide for high-level feature extraction functions which directly converts a waveform into features, mainly because such functions would require a tremendous number of arguments in order to be versatile. However, it is rather trivial to write such a function for your particular needs using the SPro library.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Une fonction amusante , mais qui s'écarte complètement du sujet TMS5220:
Il est possible de faire jouer des notes de musique à l'EXL100 sans passer par le synthétiseur... mais en utilisant le port K7 (le signal émis par la K7 est envoyé au TV)
Si on donne alternativement des valeurs 0 et 1 au bit 3 du port périphérique 6, on obtient une fréquence. Cela peut-êre fait en jouant avec le TIMER du TMS7000 qui génère une interruption sur le port K7.
Il est possible de faire jouer des notes de musique à l'EXL100 sans passer par le synthétiseur... mais en utilisant le port K7 (le signal émis par la K7 est envoyé au TV)
Si on donne alternativement des valeurs 0 et 1 au bit 3 du port périphérique 6, on obtient une fréquence. Cela peut-êre fait en jouant avec le TIMER du TMS7000 qui génère une interruption sur le port K7.
Nous avons déjà tout dit sur ce sujet quelques posts plus hautFabrice Montupet a écrit :Il est possible de faire jouer des notes de musique à l'EXL100 sans passer par le synthétiseur... mais en utilisant le port K7 (le signal émis par la K7 est envoyé au TV)
Plus précisément j'ai expliqué comment produire plusieurs voix sur le port cassette en générant une fréquence inaudible modulée par plusieurs signaux audio.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.