======LoveTape====== {{vimeo>264154423}} Ce synthétiseur algorithmique à été développé suite aux post de visnut sur le [[http://countercomplex.blogspot.fr/2011/10/algorithmic-symphonies-from-one-line-of.html|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 [[http://lifepatch.org/8-bit_Mixtape|8bitMixTape]] : une pré-fanfare ibniz de poche! ===== 8bit LoveTape ===== ==== Schéma version 3 (avec atténuateur de sortie) ==== 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 [[https://www.sonelec-musique.com/electronique_realisations_att_bf.html|ici]] {{media_08:lovetape-3-2.sch.jpg?990|LoveTape-3-2.sch.jpg LoveTape-3-2.sch.jpg}} voilà les [[https://wiki.labomedia.org/images/e/e1/Lovetape-3.zip|fichiers pour cette version]] ils sont aussi sur [[https://github.com/mitoufflon/8bitLoveTape|github]] ==== Schéma version 2 (avec filtre) ==== 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. {{media_08:lovetape-3-1.sch.jpg?300|LoveTape-3-1.sch.jpg LoveTape-3-1.sch.jpg}} * sources * https://makezine.com/projects/make-35/advanced-arduino-sound-synthesis/ * https://www.sonelec-musique.com/electronique_theorie_condensateur_liaison.html ==== Schéma version 1 ==== * 2 potentiomètres et 2 boutons permettant de moduler différents paramètres du programme schéma simple + pcb en forme de labomedia {{media_02:8bitlovetape-sch.png?300|fig:8bitLoveTape-sch.png}} {{media_02:8bitlovetape-pcb2.png?300|fig:8bitLoveTape-pcb2.png}} {{media_02:8bitlovetape-pcb.png?300|fig:8bitLoveTape-pcb.png}} ===== Materiel ===== * 1 pcb > 1,5€ en cours de fabrication * 2 pot linéaire 10k > 1,29€ [[https://www.mouser.fr/ProductDetail/317-2090F-10K|lien]] * 2 résistances 12k > 0,30€ [[http://www.mouser.fr/Passive-Components/Resistors/Through-Hole-Resistors/_/N-7h7z5Z1yzvvqx?P=1yzbpodZ1yzeki4Z1z0x6fr&Ns=Pricing%7C0|lien]] * 2 résistance 10k Ohm 1% pour l'aténuateur de sortie > * 1 résistance 10k 5% pour led Rose > * 1 condo 10uF/35V [[https://www.mouser.fr/ProductDetail/Panasonic/EEA-GA1V100H?qs=sGAEpiMZZMtZ1n0r9vR22f2plZjWOZXT4vmDPKAlXkc%3d|lien]] ref : UPW1V100MDD6 * 1 condo 10nF/50V > 0.3€ [[https://www.mouser.fr/ProductDetail/Nichicon/QYX1H103KTP?qs=sGAEpiMZZMv1cc3ydrPrF3GKiDJe8ASulpYANLDzgHw%3d|lien]] * 1 LED > 0,02€ [[https://www.aliexpress.com/item/5mm-Pink-LED-Round-Light-Emitting-Diode-Diffused-Foggy-Ultra-Bright-Lamp-Bead-Plug-in-DIY/32674089617.html?spm=a2g0s.9042311.0.0.7ec94c4dnynn4I|from china]] * 1 switch on/off > 0.662€ [[http://www.mouser.fr/Search/ProductDetail.aspx?R=GPTS203211Bvirtualkey62900000virtualkey629-GPTS203211B|lien]] [[https://fr.rs-online.com/web/p/interrupteurs-a-coulisse/1640721/|à glissière]] [[https://www.ebay.fr/itm/SPDT-3-Pin-2-Position-PCB-Mini-Slide-Switch/263115543905?hash=item3d42e89561:m:mLU1xYw4EKDCFFCErpRiUGw|un peu + près]] * 2 switch momentanées > 0.45€ [[https://www.aliexpress.com/item/Free-shipping-100PCS-Tactile-Push-Button-Switch-Momentary-Tact-Cap-12-12-7-3MM-Micro-switch/32638121990.html?spm=a2g0s.9042311.0.0.da404c4d7ptY1z|from china]] * 1 ATtiny 85 > 1€10 [[http://www.mouser.fr/Search/ProductDetail.aspx?R=ATTINY85-20PUvirtualkey55660000virtualkey556-ATTINY85-20PU|lien]] * support CI DIP8 > 0.17€ [[http://www.mouser.fr/ProductDetail/Amphenol-FCI/DILB8P-223TLF/?qs=sGAEpiMZZMs%2fSh%2fkjph1trsk3O0a2elqycTEeDCVfAg%3d|lien]] * 1 jack audio stéréo 3.5mm avec switch > 0.662€ [[http://www.mouser.fr/ProductDetail/CUI/SJ1-3524N/?qs=sGAEpiMZZMv0W4pxf2HiVz9SCMkER55fft%252b%2ffTb32Ltefv%2fitkjTSQ%3d%3d|lien]]\\ sans switch > SJ1-3523N * 2 support de piles plates > [[https://www.ebay.fr/itm/x10-pcs-Support-Pile-Bouton-CR2032-CR2025-a-souder-pour-Arduino-Raspberry-Pi-/322521192186|modèle traversant]] * 2 piles CR2025 > 0.8€ [[https://www.ebay.fr/itm/Alkaline-Button-Cells-AG3-AG4-AG10-AG13-1-5V-CR2032-2025-2016-3V-free-shipping/272642059951?hash=item3f7abbaeaf:m:mKRh2_Pb2R_uYqZI6uSaFoA|lien]] >> OK reçus * Pour plus tard: * 1 mini hp > [[https://www.aliexpress.com/item/20pcs-0-25W-8Ohm-Speaker-External-Magnetic-Speaker-Dia-27mm-for-Toy-Aduio-DIY-free-shipping/32579182632.html?spm=2114.10010108.1000013.8.5e0ad723QuVKxt&traffic_analysisId=recommend_2088_4_90158_iswistore&scm=1007.13339.90158.0&pvid=3d40e616-fe90-49c8-b4b4-179cb0f2706b&tpp=1|rond]] [[https://www.aliexpress.com/item/AIYIMA-10Pcs-Mini-Audio-Speakers-8Ohm-1W-2415-1020-2030mm-Miniature-Trumpet-Speaker-DIY-For-Toy/32845623744.html?ws_ab_test=searchweb0_0,searchweb201602_2_10152_10151_10065_10344_10068_10342_10343_10340_10341_10084_10083_10305_10304_10615_10307_10306_10302_10059_10184_10314_10534_100031_10604_10103_10142,searchweb201603_2,ppcSwitch_5&algo_expid=5841abc4-4d8a-4227-979b-014096844b7c-6&algo_pvid=5841abc4-4d8a-4227-979b-014096844b7c&transAbTest=ae803_5&priceBeautifyAB=0|rectangulaire]] * ATtiny programmer ==== l'origine ==== 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... ===== Programmation de l'ATtiny ===== Pour l'installation/programmation voir [[ATtiny| ICI]] ==== Téléversement du programme via l'IDE Arduino ==== Avant toute chose il faut installer le programme ArduinoISP sur l'arduino de votre choix comme expliquer [[attiny|ici]] ==== Installer un nouveau type de carte pour L'IDE Arduino ==== * Télécharger ou cloner le lien suivant git clone https://github.com/8BitMixtape/8Step-MixTape-Berliner-Schule * Dans votre dossier arduino (qui doit se trouver quelque part... sous linux /home/chez-moi/arduino) 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/" ==== Configurer l'IDE avec notre nouvelle carte ==== Dans l'onglet outils de l'IDE arduino il faut maintenant configurer quelques paramètres depuis l'onglet "Outils": * Type de carte : "8bitMixTape" * Processeur : "Mix-Tape Yogyakarta ATtiny85" * Clock: "8MHz (internal) * Port : (selon celui qui apparait) * Programmateur : "Arduino as ISP" ==== Brûler le bootloader ==== 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!!! ==== Téléverser un programme ==== Il existe différents programme disponible [[https://github.com/8BitMixtape|ici]] depuis le début du projet! ==== Téléversement via Avrdude et Arduino as ISP ==== * Installer les logiciels/librairies sudo apt-get install gcc-avr avr-libc avrdude git clone https://github.com/8BitMixtape/8BitMixtapeManila.git * Compiler le fichier binaire depuis le fichier source (identique au fichier .ino mais en .c) cd 8BitMixtapeManila-master/src avr-gcc -Wall -g -Os -mmcu=attiny85 -o main.bin main.c * Tester le binaire 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) * Générer le .HEX avr-objcopy -j .text -j .data -O ihex main.bin main.hex * Téléverser le programme avrdude -p attiny85 -P /dev/ttyACM0 -c avrisp -b 19200 -U flash:w:main.hex ça marche!!! ==== Test son ==== 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++; } ==== Plein d'exemples de jolies chansons ==== https://github.com/spookysys/attiny-synth/blob/master/synth/oneliners.txt https://pastebin.com/kiXJigzG * version en ligne du programme http://wurstcaptures.untergrund.net/music/ ==== Sources ==== http://blog.podkalicki.com/how-to-compile-and-burn-the-code-to-avr-chip-on-linuxmacosxwindows/ https://electronics.stackexchange.com/questions/205055/using-avrdude-to-program-attiny-via-arduino-as-isp https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html * [https://electronics.stackexchange.com/questions/205055/using-avrdude-to-program-attiny-via-arduino-as-isp Arduino as ISP Programmer] * http://blog.podkalicki.com/how-to-compile-and-burn-the-code-to-avr-chip-on-linuxmacosxwindows/ ===== Comprendre ce qui se passe ===== * one line music http://countercomplex.blogspot.fr/2011/10/some-deep-analysis-of-one-line-music.html * Fast PWM : https://www.re-innovation.co.uk/docs/fast-pwm-on-attiny85/ * fuse : http://www.engbedded.com/fusecalc/\\ http://www.ladyada.net/learn/avr/fuses.html ===== Sources ===== 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 * bytebeat 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/ {{tag>faire_du_bruit attiny pcb ibniz}}