Projets électroniques: comment programmer la musique sur un timbre de base

Avec votre processeur BASIC Stamp, commandes PBASIC et un haut-parleur piézoélectrique, vous pouvez faire vos projets électroniques chanter. Voici un exemple de programme qui joue deux chansons sur un haut-parleur piézoélectrique: "Mary Had a Little Lamb» et la chanson de joyeux anniversaire. L'ancien est joué lorsque vous appuyez sur ce dernier SW1- lorsque vous appuyez sur SW2.

Pour simplifier le code qui génère les notes de musique, le programme définit plusieurs constantes qui représentent la fréquence pour chacune des notes exigées par les chansons. Par exemple, la constante NoteC6 est 1046, la fréquence en Hz de C dans la sixième octave d'un clavier de piano.




Les constantes couvrent deux octaves complètes, ce qui est beaucoup de gamme pour les chansons à jouer. Les deux chansons sont jouées dans la clé de C, donc pas de bémols ou dièses sont nécessaires.

Le programme met également en place des constantes pour la durée d'un quart de note, note de moitié, et la note ensemble. Les constantes rendent facile à spécifier un emplacement particulier pour une durée notamment dans un Freqout commande.

Ainsi, en jouant une mélodie est tout simplement une question d'écrire une séquence de Freqout commandes à jouer les notes correctes pour les durées correctes dans le bon ordre. Voilà précisément ce que les sous-programmes étiquetés Marie et Anniversaire faire.

'Programme Song' Doug Lowe '15 Juillet, 2011' 'Ce programme joue un des deux chansons sur le haut-parleur piézoélectrique »sur la broche 0.' Si SW1 sur la broche 14 est pressé, le programme joue "Mary Had a Little Lamb». «Si SW2 sur la broche 10 est pressé, le programme joue" Bonjour à tous. "'{$ STAMP BS2} {$ PBASIC 2.5} SW1PIN 14SW2PIN 10Speaker PIN 0NoteC6 CON 1046NoteD6 CON 1175NoteE6 CON 1318NoteF6 CON 1370NoteG6 CON 1568NoteA6 CON 1760NoteB6 CON 1975NoteC7 CON 2093NoteD7 CON 2349NoteE7 CON 2637NoteF7 CON 2794NoteG7 CON 3136NoteA7 CON 3520NoteB7 CON 3951NoteC8 CON 4186Whole CON 1000Half CON 500Quarter CON 250DOIF SW1 = 1 THENGOSUB MaryENDIFIF SW2 = 1 THENGOSUB MorningENDIFLOOPMary: freqout Président, Trimestre, NoteE7 'Mar-freqout Président, Trimestre, NoteD7' yFREQOUT Président, Trimestre, NoteC7 'HadFREQOUT Président, Trimestre, NoteD7' aFREQOUT Président, Trimestre, NoteE7 'Lit-freqout Président, Trimestre, NoteE7' tleFREQOUT Président , Trimestre, NoteE7 'LambPAUSE QuarterFREQOUT Président, Trimestre, NoteD7' Lit-freqout Président, Trimestre, NoteD7 'tleFREQOUT Président, Trimestre, NoteD7' LambPAUSE QuarterFREQOUT Président, Trimestre, NoteE7 'Lit-freqout Président, Trimestre, NoteG7' tleFREQOUT Président, trimestre , NoteG7 'LambPAUSE QuarterFREQOUT Président, Trimestre, NoteE7' Mar-freqout Président, Trimestre, NoteD7 'yFREQOUT Président, Trimestre, NoteC7' HadFREQOUT Président, Trimestre, NoteD7 'aFREQOUT Président, Trimestre, NoteE7' Lit-freqout Président, Trimestre, NoteE7 ' tleFREQOUT Président, Trimestre, NoteE7 'LambFREQOUT Président, Trimestre, NoteE7' ItsFREQOUT Président, Trimestre, NoteD7 'FleeceFREQOUT Président, Trimestre, NoteD7' WasFREQOUT Président, Trimestre, NoteE7 'WhiteFREQOUT Président, Trimestre, NoteD7' AsFREQOUT Président, Trimestre, SnowPAUSE NoteC7 ' HalfRETURNMorning: freqout Président, Demi, NoteC7 'GoodFREQOUT Président, Demi, NoteD7' Morn-freqout Président, Demi, NoteC7 'ingFREQOUT Président, Demi, NoteF7' ToFREQOUT Président, Entier, NoteE7 'YouFREQOUT Président, Demi, NoteC7' GoodFREQOUT Président, Demi- , NoteD7 'Morn-freqout Président, Demi, NoteC7' ingFREQOUT Président, Demi, NoteG7 'ToFREQOUT Président, Entier, NoteF7' YouFREQOUT Président, Demi, NoteC7 'GoodFREQOUT Président, Demi, NoteC8' Morn-freqout Président, Demi, NoteA7 'ingFREQOUT Président, Demi, NoteF7 'DearFREQOUT Président, Demi, NoteE7' Enfant-freqout Président, Entier, NoteD7 'renFREQOUT Président, Demi, NoteB7' GoodFREQOUT Président, Demi, NoteA7 'Morn-freqout Président, Demi, NoteF7' ingFREQOUT Président, Demi, NoteG7 'ToFREQOUT Président, Entier, NoteF7' AllRETURN

» » » » Projets électroniques: comment programmer la musique sur un timbre de base