Ce synthétiseur algorithmique à été développé suite aux post de visnut sur le one-line symphony qui emploi de “simples” formules mathématiques pour générer de la musique. La communauté arduinesque c'est inspirée de ces recherches pour intégrer ce court programme dans une petite puce et donner naissance au 8bitMixTape : une pré-fanfare ibniz de poche!
Après quelques test le filtrage change beaucoup le son, il est préférable d'utiliser un simple atténuateur et un condensateur de couplage pour avoir un niveau de sortie acceptable. Les valeurs des résistances peuvent être modifiées selon l'atténuation souhaitée, voir ici
voilà les fichiers pour cette version ils sont aussi sur github
Suite à des soucis avec la sortie audio (qui marche mal si elle est connectée à une chaine hifi), un peu de filtrage à semblé nécessaire. Un filtre RC (passe bas à ~1,5kHz) et un condensateur polarisé (10uF) pour atténuer le décalage en tension continue (DC Offset) et ajuster l'impédance de sortie.
schéma simple + pcb en forme de labomedia
sans switch > SJ1-3523N
http://lifepatch.org/8-bit_Mixtape
https://github.com/8BitMixtape/8BitMixtapeManila (faire attention aux numéros de pin de l'attiny sur le pdf qui sont dans le mauvais ordre…
Pour l'installation/programmation voir ICI
Avant toute chose il faut installer le programme ArduinoISP sur l'arduino de votre choix comme expliquer ici
git clone https://github.com/8BitMixtape/8Step-MixTape-Berliner-Schule
ajouter un dossier “hardware” si il n’existe pas et y placer le dossier “8BitMixtape” qui se trouve dans “8Step-MixTape-Berliner-Schule/arduino_hardware/hardware/”
Dans l'onglet outils de l'IDE arduino il faut maintenant configurer quelques paramètres depuis l'onglet “Outils”:
Une fois les réglages effectués il ne reste plus qu'à cliquer sur “Graver la séquence d'initialisation” toujours depuis l'onglet “Outils”
Maintenant nous sommes prêt à faire du bruit!!!
Il existe différents programme disponible ici depuis le début du projet!
sudo apt-get install gcc-avr avr-libc avrdude
git clone https://github.com/8BitMixtape/8BitMixtapeManila.git
cd 8BitMixtapeManila-master/src
avr-gcc -Wall -g -Os -mmcu=attiny85 -o main.bin main.c
avr-size -C main.bin
ce qui nous donne :
AVR Memory Usage ---------------- Device: Unknown \\ Program: 2752 bytes (.text + .data + .bootloader) \\ Data: 31 bytes (.data + .bss + .noinit)
avr-objcopy -j .text -j .data -O ihex main.bin main.hex
avrdude -p attiny85 -P /dev/ttyACM0 -c avrisp -b 19200 -U flash:w:main.hex
ça marche!!!
Un petit test (il suffit de branché un haut parleur de 8 Ohms sur la pin 0)
// 8Step MixTape Example Code // Basic Onliner // Crazy shit 8-bit symphony generator /* * inspired by: * [[http://countercomplex.blogspot.com/2011/10/algorithmic-symphonies-from-one-line-of.html|http://countercomplex.blogspot.com/2011/10/algorithmic-symphonies-from-one-line-of.html]] * [[http://countercomplex.blogspot.com.es/2011/10/some-deep-analysis-of-one-line-music.html|http://countercomplex.blogspot.com.es/2011/10/some-deep-analysis-of-one-line-music.html]]\\ * * try it online: * [[http://wurstcaptures.untergrund.net/music/|http://wurstcaptures.untergrund.net/music/]]\\ * */ // ATMEL ATTINY85 / ARDUINO // // +-\/-+ // Reset A0 (D 5) PB5 1| |8 Vcc // A3 (D 3) PB3 2| |7 PB2 (D 2) A1 // A2 pwm4 (D 4) PB4 3| |6 PB1 (D 1) pwm1 // GND 4| |5 PB0 (D 0) pwm0 // +----+ \\ int speakerPin = PB0; int snd = 0; long t = 0; \\ void setup () { pinMode (speakerPin, OUTPUT); } void loop () { \\ snd = t * ((t>>7|t>>6)*100+4)*(t&7>>13|t>>6); digitalWrite (speakerPin, snd); t++; }
https://github.com/spookysys/attiny-synth/blob/master/synth/oneliners.txt
http://blog.podkalicki.com/how-to-compile-and-burn-the-code-to-avr-chip-on-linuxmacosxwindows/
https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html
Arduino as ISP Programmer]
http://lifepatch.org/8-bit_Mixtape
https://github.com/8BitMixtape/8BitMixtapeManila/blob/master/docs/8bitinstruction.pdf
https://www.dropbox.com/s/2e26pb19nehg8zw/8bit%20mixtape%200.9%20workshop%20guide.jpg?dl=0
https://8bitmixtape.github.io/
https://github.com/8BitMixtape
http://wiki.sgmk-ssam.ch/wiki/Gnusbuino
http://wiki.sgmk-ssam.ch/wiki/8bit_Mix_Tape
http://canonical.org/~kragen/bytebeat/
http://countercomplex.blogspot.fr/2011/10/algorithmic-symphonies-from-one-line-of.html
https://arxiv.org/pdf/1112.1368
http://countercomplex.blogspot.fr/2011/10/some-deep-analysis-of-one-line-music.html
http://low.fi/~viznut/visualizer.c
http://pelulamu.net/countercomplex/music_formula_collection.txt
https://www.reddit.com/r/bytebeat/comments/20km9l/cool_equations/