Page 1 sur 2

Garvuino : émulateur hardware de chiptunes

Publié : 24 août 2017 09:42
par farvardin
Je viens vous présenter ma petite carte PCB et les projets associés que je suis en train de réaliser.

Ça a commencé avec un émulateur matériel de soundchip YM2149 / AY-3-8910 sur le projet AVR-AY (rien à voir avec la ville du même nom !) : http://www.avray.ru/

Alors oui un émulateur logiciel permet de faire une bonne simulation des musiques, mais celui-ci utilisant un vrai "chip", le rendu sera différent d'un émulateur logiciel.

Je l'ai assemblé sur une carte de prototypage, et comme ça m'a bien plu, j'ai fait une carte PCB. Il s'agit donc d'un projet "artistique", qui n'a d'autre finalité que de produire des musiques et des sons.

Exemples :

- http://picosong.com/wseMn/ (Cauldron / Amstrad)
- http://picosong.com/HUGM/ (Xenon / Spectrum)
- https://soundcloud.com/memento-somniare/sidarduino-test (synthé SID)
- http://battleofthebits.org/arena/Entry/ ... ter/26509/ (création personnelle, mode Spectrum)

Ça permet donc de jouer des chiptunes sans avoir besoin d'un Amstrad, ZX spectrum ou Atari ST complet !

Mais pas que cela. Il y a également d'autres aspects à cette carte puisque ça comprend ces éléments :

- filtre passe-bas
- arduino nano
- lecteur de carte SD
- connecteur Midi DIN-5

De ce fait, on peut l'utiliser également pour la conception d'autres projets :

- synthé Mozzi (voir les possibilités ici : https://sensorium.github.io/Mozzi)
- synthé émulateur SID (le chip sonore du C64 !)
- lecteur de musique "beeper" en 1-bit, issus de routines du ZX Spectrum.
- je n'ai pas encore réussi à faire un synthé pour utiliser le chip AY, néanmoins on peut brancher une petite photo-résistance et l'utiliser comme un générateur quasi-aléatoire de musiques ou de bruit.


Lorsque j'aurai reçu mes cartes de l'usine, prochainement je pense, je compte faire une petite vidéo de présentation un peu plus détaillée des possibilités.

Je peux vendre la carte seule (compter 4 € avec frais de port), mais aussi des kits à souder soi-même, faut que je regarde le poids total pour donner un prix mais ça ne devrait pas dépasser 15 € pour la France si ça passe en lettre). Et puis l'option tout assemblé, idem, faut voir le temps que je passe mais je pense que ça devrait être dans les 20 €

Le projet sur github :
https://github.com/farvardin/garvuino

Image

Re: Garvuino : émulateur hardware de chiptunes

Publié : 24 août 2017 14:08
par Falkor
Chouette projet ! :wink:

Re: Garvuino : émulateur hardware de chiptunes

Publié : 25 août 2017 00:41
par Notator
Ce n'est pas un peu sur-dimensionné, un Arduino Nano, plus un AT Mega, juste pour réaliser un chiptune ? :shock:

Re: Garvuino : émulateur hardware de chiptunes

Publié : 25 août 2017 12:28
par farvardin
Notator a écrit :Ce n'est pas un peu sur-dimensionné, un Arduino Nano, plus un AT Mega, juste pour réaliser un chiptune ? :shock:
bien sûr que c'est surdimensionné, Linus Åkesson a bien créé son propre chip pour jouer sa musique : http://www.linusakesson.net/hardware/chiptune.php

Mais je n'ai pas son intelligence ni le temps pour recoder tout dans un chip plus petit. Et surtout, avec le code de AVRAY on peut réutiliser les musiques des milliers de chiptunes déjà écrites depuis des années pour ZX Spectrum, Atari ST ou Amiga, sans devoir tous les réécrire, donc finalement c'est plutôt économique, la réécriture complète étant en soi plutôt chronophage...

On peut également réutiliser le code de Mozzi, qui n'existe que sur Arduino et c'est la même chose pour toutes les autres possibilités de créer des sons. Je ne comprends pas ta remarque finalement. C'est pas surdimensionné d'avoir besoin d'un ZX Spectrum ou d'un Amstrad complet juste pour jouer des chiptunes ?

Re: Garvuino : émulateur hardware de chiptunes

Publié : 25 août 2017 13:11
par Falkor
On reste surtout sur une configuration similaire à celle des micros de l'époque : la nano fait office de microprocesseur et envoie les infos au circuit sonore "émulé" par l'atmega (si j'ai bien compris le fonctionnement).

Et cette carte rassemble différentes "technologies" audio...

Re: Garvuino : émulateur hardware de chiptunes

Publié : 25 août 2017 16:36
par farvardin
oui tout à fait, dans la partie émulation du chip AY/YM, c'est l'arduino qui titille les registres du processeur sonore, comme à l'époque :)

Re: Garvuino : émulateur hardware de chiptunes

Publié : 26 août 2017 00:43
par Notator
farvardin a écrit : Je ne comprends pas ta remarque finalement. C'est pas surdimensionné d'avoir besoin d'un ZX Spectrum ou d'un Amstrad complet juste pour jouer des chiptunes ?
Ben non ; tu sais bien qu'il est possible de faire bien d'autres choses en même temps que jouer des chiptunes, avec ces micro-ordinateurs.

Entendons-nous bien, tu fais bien ce que tu veux ; tu peux même rajouter des DSP, si ça te chante.
Je m'étonnais juste du fait qu'utiliser deux processeurs pour jouer uniquement des chiptunes, ça faisait riche ; alors que les micro-ordinateurs précités n'ont qu'un seul processeur, et exécutent simultanément à la génération de musiquettes des tâches bien plus complexes.
Tu viens de répondre que faire comme tu fais te simplifie la vie. OK, pas de problème. :)

Re: Garvuino : émulateur hardware de chiptunes

Publié : 26 août 2017 15:05
par farvardin
ben riche, juste en rajoutant un atmega8 à 1€50, on n'a pas la même notion du luxe.
Et puis c'est pareil pour l'arduino : il pilote le chip sonore, et en même temps il lit les données depuis la carte SD et allume une led.

Beaucoup de gens pensent que les chiptunes c'est toujours la même chose, si c'est juste pour sortir un signal carré dégueu, oui on peut le faire avec n'importe quel chip, mais là c'est pour émuler plusieurs chips historiques, avec des caractères et des contraintes précis.

Code : Tout sélectionner

utiliser deux processeurs pour jouer uniquement des chiptunes
l'atmega8 n'est pas utilisé ici en tant que CPU mais pour recréer l'AY-3-8910.

Re: Garvuino : émulateur hardware de chiptunes

Publié : 26 août 2017 16:51
par Notator
farvardin a écrit :ben riche, juste en rajoutant un atmega8 à 1€50, on n'a pas la même notion du luxe.
Je ne parle pas de coût de revient, mais de puissance processeur.
J'en dirais tout autant s'il était question d'utiliser un Arduino juste pour faire clignoter une led.
Ce n'est pas une question de prix, mais de moyens utilisés, disproportionnés par rapport à la finalité visée.
...utiliser deux processeurs pour jouer uniquement des chiptunes.
l'atmega8 n'est pas utilisé ici en tant que CPU mais pour recréer l'AY-3-8910.
J'ai bien compris ce qu'il faisait ; mais vu sa puissance, l'ATmega8 devrait bien avoir d'inemployé le chouia de ressources nécessaire pour générer une misérable séquence avec quelques changements de paramètres sonores.
Quand on pense que des processeurs de puissance équivalente, voire moindre, ont pu servir de moteur pour des synthés workstations, on se dit qu'il y a moyen...

Encore une fois, je ne critique pas tes choix (parce que j'ai l'impression d'avoir touché sans le vouloir une susceptibilité), sur lesquels tu es évidemment libre ; ceci n'est uniquement qu'une discussion académique sur des possibilités techniques de réalisation.

Re: Garvuino : émulateur hardware de chiptunes

Publié : 14 sept. 2017 17:00
par farvardin
oui, j'entends bien, on peut toujours tout faire d'une manière différente. Cela ne heurte pas spécifiquement une susceptibilité, et ce n'est pas contre toi, mais souvent quand on propose une initiative, il y a toujours les remarques qui viennent contre-carrer la raison d'être de cette initiative, par des gens plus savants. Si tu mets de l'arduino, c'est pas bien parce que tu peux faire la même chose avec un PIC, si tu fait de la musique électronique c'est pas bien parce que c'est tellement mieux les vrais instruments, si tu joues de la guitare électrique c'est pas bien parce qu'il faut commencer par la guitare classique pour apprendre dans les règles etc.

Dans le même ordre d'idée sur un forum concurrent on a pu voir toutes les railleries contre un magazine qui proposait de piloter un processeur zilog z80 avec un arduino. « Mais ma bonne dame, moi en 1975 je programmais mon z80 avec un trombone et deux transistors, et c'est comme ça qu'on apprenait, comme de vrais hommes, pas avec un truc qui mâche tout le travail ».

Bref, si j'utilise ici 2 processeurs, c'est parce que la possibilité de sortir des sons de ce type n'existe que de cette manière. Je me vois mal adapter cela juste sur un seul arduino (comme ça a été fait pour le SID), déjà je n'ai pas le bagage technique pour le faire, ensuite si l'auteur d'avr-AY, qui est plus compétent que moi, l'a fait ainsi, c'est peut-être que ce n'était pas possible autrement. Et à l'inverse, je ne sais pas s'il est possible de programmer l'atmega8 pour qu'en plus d'émuler le chip AY, il puisse lire les séquences depuis la carte SD.

Image

https://www.instagram.com/p/BY6k1jtB9Mw ... by=garvalf

Alors, j'ai reçu les PCB, évidemment j'avais fait une erreur dans la conception, et assigné la led et le switch sur la même borne :( Ça se corrige facilement avec un coup de dremel, mais c'est pas très pro...

J'ai aussi inversé les bornes pour le lecteur de mini usb, mais je me demande si je n'ai pas été induit en erreur par un description ebay erronée. D'un autre côté, même si ça m'oblige à dessouder les bornes du lecteur pour inverser le sens, ça sera sans doute plus pratique à l'usage.

J'ai également placé certains cavaliers à un endroit pas pratique à utiliser. Et il y a trop de cavaliers de façon générale. Je vais voir si je peux me passer de certains.

En tout cas pour le reste, ça semble fonctionner correctement.

Re: Garvuino : émulateur hardware de chiptunes

Publié : 14 sept. 2017 19:08
par __sam__
En tout cas pour le reste, ça semble fonctionner correctement.
Et c'est ca qui importe en fin de compte. C'est cool, bravo! 8)

Re: Garvuino : émulateur hardware de chiptunes

Publié : 15 sept. 2017 08:02
par Falkor
Chouette résultat. Tu as même poussé le thème à mettre leds et cavaliers bleus, c'est super joli. :wink:

Re: Garvuino : émulateur hardware de chiptunes

Publié : 15 sept. 2017 09:00
par Notator
farvardin a écrit : 14 sept. 2017 17:00 oui, j'entends bien, on peut toujours tout faire d'une manière différente. Cela ne heurte pas spécifiquement une susceptibilité, et ce n'est pas contre toi, mais souvent quand on propose une initiative, il y a toujours les remarques qui viennent contre-carrer la raison d'être de cette initiative, par des gens plus savants. Si tu mets de l'arduino, c'est pas bien parce que tu peux faire la même chose avec un PIC, si tu fait de la musique électronique c'est pas bien parce que c'est tellement mieux les vrais instruments, si tu joues de la guitare électrique c'est pas bien parce qu'il faut commencer par la guitare classique pour apprendre dans les règles etc.
Dans le même ordre d'idée sur un forum concurrent on a pu voir toutes les railleries contre un magazine qui proposait de piloter un processeur zilog z80 avec un arduino. « Mais ma bonne dame, moi en 1975 je programmais mon z80 avec un trombone et deux transistors, et c'est comme ça qu'on apprenait, comme de vrais hommes, pas avec un truc qui mâche tout le travail ».
Bon, revenons au fond. Pourquoi participe-t-on à un forum ?
Pour discuter et échanger des idées.
Nous ne sommes pas tous pareils, et c'est normal que tous nous ne voyons pas forcément les choses de la même manière.
Si tous nous étions toujours tous du même avis sur tout, ce serait d'un ennui mortel, et la discussion serait sans aucun intérêt.

Et puis, à partir du moment où on rend public le fruit d'une initiative, il faut accepter l'éventualité que ça ne plaise pas à tout le monde (je parle en général, pas spécifiquement du cas présent), et qu'un autre l'aurait réalisé d'une autre manière ; sans compter ceux qui peuvent n'avoir pas bien compris la finalité du truc.

Si c'est juste pour avoir des retours comme :"Oui, c'est bien, c'est super, c'est génial", ça flatte l'ego, mais ça n'apporte rien de plus.

Après, les limites du média forum font qu'une discussion qui ferait 3 minutes dans la vie réelle, s'étale sur des jours (parce qu'on a une vie entre deux réponses) et prend un résonance déformée. Mes contributions prouvent que je me suis intéressé à l'aspect technique de ta réalisation, il ne faut rien y voir d'autre. :)
Bref, si j'utilise ici 2 processeurs, c'est parce que la possibilité de sortir des sons de ce type n'existe que de cette manière.
Plus justement dit, d'autres possibilités existent, mais tu as choisi celle-ci, que tu as jugée préférable aux autres. :)

Re: Garvuino : émulateur hardware de chiptunes

Publié : 15 sept. 2017 09:27
par Daniel
Félicitations pour ce montage et la qualité du circuit imprimé. L'intérêt d'utiliser deux micro-processeurs est évident, ils simplifient le projet en séparant les fonctions.

On peut toujours discuter sur ce choix, mais la discussion est stérile tant qu'elle ne débouche pas sur une réalisation concrète. Critiquer n'apporte rien, faire mieux est plus intéressant. Mais est-ce possible ? Comme St Thomas je demande à voir...

Re: Garvuino : émulateur hardware de chiptunes

Publié : 15 sept. 2017 09:39
par fneck
Notator a écrit : 15 sept. 2017 09:00 Bon, revenons au fond. Pourquoi participe-t-on à un forum ?
Pour discuter et échanger des idées.
Oui, je suis d'accord et c'est toujours bon de le rappeler 8)