Laat ik ook eens mijn project hier neerzetten
De mensen die ook op GoT te vinden zijn hebben waarschijnlijk de EL democompo daar al een keer gezien, maar voor de rest is het misschien ook wel interessant.
Het doel van het topic was een wedstrijd om een (grafische) demo te maken zoals die vroeger op beperkte computers in elkaar gezet werden: zeer kleine programma's met mooie grafische effecten en geluid, knap geprogrammeerd om het uiterste uit de machine te persen.
Omdat er tegenwoordig enorm krachtige grafische kaarten zijn is een mooie demo maken tegenwoordig een stuk minder uitdagend. Vandaar het idee om een demo te maken in zelfgemaakte elektronica met wat voor grafisch apparaat dan ook.
Helaas is de wedstrijd een beetje gestrand omdat de deelnemers eigenlijk allemaal te weinig tijd hebben gehad om het af te maken. Ook ik deed mee aan de contest en ben een heel eind gekomen maar ook ik zie het niet binnen korte tijd afkomen.
Mijn idee was als grafisch deel vectorbeelden op een oscilloscoop (in XY mode). Als audio deel een MOD player. Beiden zijn aan hardware af, maar alleen het audio deel is softwarematig uitgewerkt. MOD is een muziekformaat dat van de Amiga af komt. Het is gebaseerd op geluidssamples (maximaal 32), stukjes geluid van meestal instrumenten (1 toon van de piano e.d.) die op verschillende frequenties afgespeeld worden om er zo muziek mee te kunnen maken. Lijkt op midi dus alleen kun je je eigen instrumenten maken met echte samples dus ze kunnen veel mooier klinken. Daar zijn verschillende formaten voor die ook tegenwoordig nog gebruikt worden voor de lol en in nieuwe demo's. MOD is een vrij beperkt formaat, je hebt 4 kanalen die samples kunnen spelen en een zootje effecten (volume, pitch e.d.). S3M en XM (StreamTracker en FastTracker) zijn uitgebreider (meer kanalen, samples en effecten) maar ook veel lastiger. Vandaar dat ik MOD aanhoud. Om een idee te geven hoe het klinkt (gewoon in winamp af te spelen): Simpel synth achtig iets: dagpazoo.mod, wat leukers: jamminfornothing.mod en een van de beste die ik ken: boesend.mod. In het oude DOS programma fasttracker kun je een beetje zien hoe zo'n MOD er technisch uitziet:
Met dit als ideeen ben ik begonnen aan een prototype van het geluidsgedeelte (videogedeelte had ik de spullen nog niet voor) op een breadboard. Dat gaf dit:
Hier met ATmega32. Het geluid werd gegenereerd door een van de timers als fast PWM te gebruiken, door een low-pass en opamp als versterking. Omdat de AVR maar 32KB aan geheugen heeft kon ik er nog geen grote MODs in kwijt, ik heb het dan ook eerst getest met een kleine mod van 9KB. Eerst een MOD lezer en speler gemaakt in C#:
En daarna een testversie voor de AVR. Op dat moment kon hij 1 kanaal tegelijk spelen en vrijwel zonder effecten. Dat klonk toen zo: Kanaal 0, kanaal 1, kanaal 2 en kanaal 3.
Omdat 32KB vrij weinig is voor MODs heb ik besloten een Flash geheugen erbij te zetten van 512Kbyte. Vanwege het grote aantal pinnen werd de ATmega32 ook een ATmega325 (32 met meer pinnen ). Ook de schema's gemaakt:
Voeding:
Het geheel wordt gevoed door 2 AAA batterijen. Deze step-up zorgt voor de nodige 5V.
Audio deel:
AVR, flashgeheugen en low-pass+opamp voor de versterking.
En het grafische deel (zit een foutje in en is ook softwarematig dus niet afgemaakt (nog)):
Ondertussen wat onderdelen erbij besteld:
Volgende stap was een printje ontwerpen, wat als volgt geworden is:
Voeding zit linksboven, grafische deel linksonder, audio rechtsonder en boven.
Etsen gaf het volgende resultaat:
Dan even flink solderen, foto op CD om een idee te krijgen van de grootte:
Verder een 'behuizing' gemaakt van gebogen plexiglas met een zootje stekkers erin. De BNC stekkers zijn voor de oscilloscoop, de andere twee uiteraard voor audio.
Alles in elkaar monteren:
Toen flink geprogrammeerd en uiteindelijk was de modplayer zo ver dat deze MODs uit het flashgeheugen kon afspelen. Het geluidssignaal wordt met 62.5kHz PWM gegenereerd, met een sample rate van 31.25kHz (de helft). 4 LEDjes op de speler gaan aan wanneer er een toon gespeeld wordt op het respectievelijk kanaal, wat een grappig effect geeft.
Filmpjes!
Tot slot enkele filmpjes en een geluidsopname. Bij de fimpjes is het geluid apart opgenomen en erbij gezet, maar het komt wel echt van het spelertje.
De speler in actie:
ModPlayerBeta.wmv (931KB)
Hetzelfde maar dan met CCFLs ipv LEDjes En ingewikkeldere mod. Helaas had ik er maar drie (keer 2).
ModPlayerCCFL.wmv (1.66MB)
De MOD die ik wilde gebruiken voor m'n definitieve versie was een vrolijk salsa nummer, die op de speler zo klinkt: salcon.mp3. De orginele mod is hier.
Helaas is er aan het grafische deel praktisch niets gebeurd behalve de hardware en nu de contest een beetje stil ligt zal dat ook wel even duren. Maar in ieder geval is de modplayer geslaagd . Als de code wat opgeschoond en geoptimaliseerd is maak ik het ook beschikbaar.