Musique sur Exelvision

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

jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Musique sur Exelvision

Message par jester »

Voici une petite disquette qui regroupe le résultat de mes expérimentations de musique sur Exl100 (ou Exeltel). Les connaisseurs savent la pauvreté musicale de cette machine... malgré l'existence d'une boîte à rythme.
Il y a 2 types de fichiers:
*.MUS => fichiers 1 voix de type beeper 1 bit
*.TRK =>fichiers 2 voix 1bits + gestion de l'exeldrums pour une voix supplémentaire
et 2 programmes:
CAT pour lister rapidement le catalogue
PLAY pour jouer les fichiers de musique

ex:
PLAY BUBBLE.MUS
PLAY CFLAM.TRK

Les fichiers de musique sont donc issus de convertisseurs midifiles :)
Les fichiers *.MUS sonnent juste et peuvent être joués en arrière plan (jeu ou démo).
Les fichiers *.TRK sonnent comme ils peuvent et prennent 99.9% CPU... il faut souvent s'exciter sur la touche Echap pour stopper un morceau !

J'ajouterais de nouveaux morceaux, mais le meilleur: il est maintenant possible à tout à chacun de créer des musiques via un séquenceur MIDI et de les convertir pour être lues avec PLAY :mrgreen: (Désolé gilles mais je préfère quand même un séquenceur MIDI à Beepola...).
J'espère que vous apprécierez le retour en enfance occasionné par les nouvelles musiques.

Si certains (ne possédant pas d'exeldisk) désirent des démos sonores pour Exelmémoire, faite le moi savoir et je vous générerais des exécutables K7 utilisant l'exelmémoire.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Musique sur Exelvision

Message par Daniel »

Le son du beeper + le choix des morceaux nous replongent dans les années 80 :D Nostalgie, nostalgie... Dans dcexel les percussions de windows paraissent presque anachroniques. J'aimerais bien entendre le résultat avec l'exeldrum.
J'apprécie particulièrement l'exploit technique et surtout les outils permettant à chacun de créer sa musique :D
Daniel
L'obstacle augmente mon ardeur.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Musique sur Exelvision

Message par jester »

Je ne perds pas espoir de récupérer un exeldrums... aussi pour te refiler les samples des percs.

La technique utilisée dans les players n'est pas vraiment un exploit, le code est simple et court (autant pour la version 1 voix que trois voix). Par contre trouver le bon format des data pour optimiser la lecture a demandé par mal de réflexion, tout comme les convertisseurs qui sont un rien "intelligent": non seulement on peut paramétrer l'analyse des notes (raccourcir les basses du canal 2, gérer la tenue ou rupture de notes identiques consécutives à l'aide du Control Change Sustain), obtenir des erreurs permettant d'améliorer les points "impossible à convertir" du midifile, mais l'algo essaie aussi de gérer des notes en superposition (très fréquent dans un midifile car joué, à la source, sur un clavier par un humain). Heureusement que j'ai pu trouver un super parser de midifile sinon je ne me serais jamais lancé la dedans.
Je finis de debugger les outils et je publierais les dernières versions.

A savoir que la version 2 voix beeper est une fausse 2 voix: il est impossible de jouer 2 véritables voix avec ce système basique, la seconde voix doit comporter des notes très courtes de type accompagnement rythmique. On entend bien les défauts horribles dés lors que la voix basse joue une note longue. Si vous regardez les partitions Beepola (ou la doc), vous verrez que chaque piste est constituée de notes très courtes.

Sinon j'ai remarqué un rendu différent sur Exl100 et dcexel:
1) pour le player 1 voix, dans une animation simultanée dcexel module légèrement le son (à cause de la gestion du framerate), mais l'exl100 génère des parasites (léger clic-crack dans le son) sans modulation identifiable2 à l'oreille.
2) si un mauvais nom de fichier est donné dans la commande PLAYER, dcexel renvoie une erreur comme prévue alors que l'Exel100 se plante en lisant le fichier ????????
Et de manière générale le rendu est meilleur sur Exl100 car le son est plus grave, avec un grain plus agréable... surtout dans la version 2 voix.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Musique sur Exelvision

Message par Daniel »

jester a écrit :si un mauvais nom de fichier est donné dans la commande PLAYER, dcexel renvoie une erreur comme prévue alors que l'Exel100 se plante en lisant le fichier ????????
La version de la ROM de l'exeldisk est peut-être différente de celle de dcexel :?: Sinon je ne vois pas comment l'expliquer...

Pour le son plus grave sur EXL100, je cherche depuis longtemps une explication mais je n'ai pas trouvé. Le beep des touches (généré par le synthétiseur) est très différent entre dcexel et l'exl100, et même avec des filtres je n'arrive pas à me rapprocher de l'original.
Pour le beeper, j'ai enregistré la sortie cassette sur PC, le fichier .wav obtenu est pratiquement identique à celui de dcexel. C'est donc probablement l'amplification du son par le téléviseur qui fait la différence.
Daniel
L'obstacle augmente mon ardeur.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Musique sur Exelvision

Message par jester »

Pour le bug de l'erreur de lecture il peut s'agir d'une zone mémoire / registre non intialisée correctement (ça marche sur dcexel mais pas sur Exl100)... je vais revoir le code !

Pour le synthe vocal il doit te manquer la ROM interne du 5220 pour Exl100 qui contient peut être des surprises ? Mais comme il est impossible de l'obtenir on fera avec le son actuel.

Pour le son 1 bit ma TV étant un bas de gamme LCD, il est fort probable que l'ampli modifie sauvagement le son :mrgreen:
Mais je te rassure les notes hautes sont aussi fausses sur dcexel que sur Exl100 !

Je pense pas qu'on puisse faire beaucoup mieux sur cette machine, non que je sois un petit génie mais les contraintes techniques sont la (impossible d'avoir une fréquence de base au-dessus de 16khz et des instuctions très lentes).

Par contre je m'explique pas qu'arrêter une musique 3 voix sur Exl100 reste possible (touche Echap) alors que c'est quasi impossible sur Exeltel. Je pense que le moniteur de l'Exeltel qui gère les interruptions est plus complexe et donc plus lent (gestion de la pagination par exemple ou du clavier) et le CPU est pris à 100%. Incroyable donc d'avoir commercialisé une seconde machine au final plus lente !

Sinon vous noterez qu'il est possible de faire des morceaux relativement long qui tiennent en mémoire. Sans aucune notion de pattern, la chanson "Lessons in Love" de Level42 prend moins de 15ko de RAM (2 voix + drums)... et en moyenne c'est du 6-8Ko. La version de Gilles est peut-être plus compact ? Il gère les patterns mais le format Beepola multiplie les notes...
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Musique sur Exelvision

Message par Carl »

Je ne perds pas espoir de récupérer un exeldrums... aussi pour te refiler les samples des percs.
il y a donc personne qui posséde un exeldrums et qui peux numériser les sons ?

Je vais tester music.fd avec Dcexel (avec la derniere version ?)

carl
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Musique sur Exelvision

Message par Daniel »

Avec dcexel, n'oubliez pas de cocher la case Exeldrums dans la boîte de dialogue "Périphériques", pour profiter des percussions dans les démos de musique midi. Choisissez "canal fixe" pour éviter le changement intempestif de canal stéréo des instruments. La bonne version est http://dcexel.free.fr/download/dcexel_2010.10.13.zip
Daniel
L'obstacle augmente mon ardeur.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Musique sur Exelvision

Message par jester »

A noter que c'est plus simple sur dcexel d'entendre les morceaux car sur un Exl100 il faut soit une table de mixage, soit une carte son multi-entrée + un dispositif de sortie (ampli + Hp).
Même Fabrice ne semble pas avoir de moyen propre pour mixer les 2 entrées (exeldrums + port K7)... et ça se comprend assez bien puisque l'exeldrums était un bidule indépendant (et surtout pas prévu pour sonoriser des jeux). Dommage que les gens d'exelvision n'est pas pensé à ajouter un petit chip Yamaha FM sur cette extension... l'architecture du TMS7000 aurait permis de contrôler facilement les différents éléments via des ports E/S, de les mixer.
L'exeldrums était un périphérique inutilisable en pratique pour un musicien car il n'est pas possible de changer le volume de chaque instrument :wink: ... de plus chaque sample possède une longueur fixe :D
Comme tout ce qu'a produit Exelvision, ça ne visait personne... dommage.

J'ai jeté un oeil sur les ROM du 7020 et 7040... effectivement le traitement du Timer prend beaucoup plus de cycle sur Exeltel qui contrôle la pagination, même chose pour la gestion de l'interruption clavier qui réalise beaucoup plus de choses... comme d'autres éléments dans la gestion de l'INT1 sont plus couteuses dans l'Exeltel le résultat est que ma routine Timer est sans cesse appelée tant qu'elle ne coupe pas le timer en fin de chanson. Il n'y a pas de différence notable dans le rendu sonore mais je suis persuadé que le timer prend du retard et est inférieur à 16khz sur exeltel.
dcexel simule parfaitement ce comportement.
C'est très ennuyeux pour la page d'accueil d'un jeu... pas moyen de couper la musique avant la fin :shock:
Et s'il faut encore réduire la fréquence à 15Khz ça sera tout pourri avec encore moins de notes possibles !
Quelle daube cette machine quand même :lol:
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Musique sur Exelvision

Message par jester »

Le plantage du player ExlDos en cas de mauvais fichier était du à un petit bug dans l'API de lecture de fichier... dcexel n'avait rien à voir la-dedans. J'ai corrigé le problème et la disquette a été mise à jour.
J'ai ajouté une animation Exl100/Exeltel avec musique sous interruption (dernière version) qui intègre aussi une correction sur le contrôle clavier (avant l'animation de King Graham était chaotique et il faisait parfois du moowalk :D ).

Si des gens désirent s'amuser à créer des musiques et m'aider à améliorer/debugger les outils de conversion de midifiles, n'hésiter pas à me demander les outils en version beta. ça ne demande quasi aucune compétence technique... sinon des compétences musicales.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Musique sur Exelvision

Message par Daniel »

Dans le domaine de l'animation avec fond musical il sera difficile de faire mieux, la barre est placée très haut :D
La musique midi avec accompagnement exeldrums est aussi un bel exploit technique, mais le signal rectangulaire est quand même assez pauvre pour produire une oeuvre artistique. Je crois qu'il reste des voies à explorer dans la musique 1 bit avec modulation de largeur d'impulsion. Mes premiers essais ont été infructueux à cause de la lenteur du processeur, ou plus exactement du trop grand nombre de cycles utilisés par les instructions. Mais il faudrait faire encore d'autres essais.
Daniel
L'obstacle augmente mon ardeur.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Musique sur Exelvision

Message par jester »

Il est vrai que le son bien carré limite un peu la beauté artistique... mais ça reste sympa avec des petites mélodies créées avec des gros séquenceurs MIDI (qui permettent de travailler plus sérieusement sur les notes et les effets).
Pour le son 2 voix le résultat est plus aléatoire... il faut que le morceau soit écrit spécialement pour ce type de rendu sinon on entend bien que mes conversions (presque) directes sonnent parfois étrangement (en plus les notes hautes detunent).

On peut surement faire mieux pour un spécialiste du traitement du signal ou un ancien demomaker, moi je n'y connais pas grand chose. Les techniques retenues me semblent juste les moins couteuses pour ce CPU lent... et j'ai récupéré la technique de gilles pour les deux voies + un peu d'astuce pour permettre la gestion des drums en peu de cycles.
Il y a surement moyen de réécrire l'algo sans Timer, et d'utiliser le timer pour moduler le son... ou d'utiliser des attaques/decay sous forme d'échantillon modulé par une porteuse... il y a plein de chose à faire. Mais le peu d'intérêt pour cette machine limite malheureusement les discussions, et aussi la motivation d'approfondir les choses. Un petit programme éducatif inédit en BASIC excitera d'avantage les foules... quand on a compris et assimilé cela, on relativise mieux les choses même si n'ayant jamais collectionné le moindre objet dans ma vie, je reste assez hermétique à cette passion masculine de la collectionite. Je sais juste que ça oblige à débourser des dizaines d'euros pour un truc pour lequel j'aurais refilé un euro symbolique :mrgreen:
Fabrice Montupet

Re: Musique sur Exelvision

Message par Fabrice Montupet »

Jester a écrit :Mais le peu d'intérêt pour cette machine limite malheureusement les discussions, et aussi la motivation d'approfondir les choses. Un petit programme éducatif inédit en BASIC excitera d'avantage les foules... quand on a compris et assimilé cela, on relativise mieux les choses même si n'ayant jamais collectionné le moindre objet dans ma vie, je reste assez hermétique à cette passion masculine de la collectionite. Je sais juste que ça oblige à débourser des dizaines d'euros pour un truc pour lequel j'aurais refilé un euro symbolique
On peut également imaginer que sur les rare collectionneurs et utilisateurs sont surtout des nostalgiques... nostalgiques de ce qu'ils vivaient à l'époque et seront plus attirés par revivre des émotions d'antan qu'autre chose (je m'en rends compte constamment à la lecture des emails de visiteurs du site qui utilisaient un EXL100/Exeltel dans les 80's). De fait, de nouveaux logiciels, utilisant des technologies jamais explorées à l'époque retiendra l'attention d'un nombre encore plus infime de personne. Quoi qu'il en soit, ce que tu fais sur Exelvision est impressionnant, je te félicite encore et suis cela avec grand intérêt.
Travailler sur des machines de niche, peu utilisées à l'époque et quasiment pas à ce jour, c'est s'attendre à intéresser bien moins de monde que pour des machines phares telles que les Commodore C64 et Amiga, Amstrad 6128 et autres Atari ST. Cela se voit aussi bien dans la programmation que dans le webauthoring et j'en sais quelque choses. Mais le plus important dans cela c'est autant se faire plaisir que plaisir qu'à une poignée de personnes, et si tes créations remplissent ces deux critères, c'est l'essentiel et suffisant pour continuer et aller plus loin encore :)
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Musique sur Exelvision

Message par jester »

Oui des émotions... sans doute... de la nostalgie plus certainement. Mais l'éducatif en Basic peut-il produire une émotion ? Voila un beau sujet de philo pour le Bac :mrgreen:
Mais y'a pas de soucis je respecte !
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: Musique sur Exelvision

Message par gilles »

quelques éducatifs sont assez intéressant, en particulier sur thomson. Pour les jeux en Basic l'aigle d'Or version MO5 est programmé en Basic+asm et l'émotion est clairement là.
Pour revenir à la musique 1 bit le faire sur exl est amusant mais vite frustrant... pour ma part ca m'a surtout donné envie de me remonter une configuration ZX spectrum pour avoir du cycle en plus (le zx en question est quelquepart dans la caisse de trucs à remonter, un peu après le 486).
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Musique sur Exelvision

Message par jester »

Il est clair qu'avec un bon Basic, avec un ch'ti peu d'assembleur, on peut faire des choses sympas.

La musique 1bit c'est un peu spécial, surtout sur Exl100... mais ça rend pas mal avec un exeldrums :lol: J'ai ajouté quelques morceaux sur la disquette et j'ai débuggé complètement le player qui peut être interrompu sans problème.
Bon je laisse tomber l'aspect musical, mes compétences en traitement du signal sont assez modestes.
Répondre