NatureTM 100 Posted January 1, 2013 Share Posted January 1, 2013 Hi everyone, it's been awhile. I just wanted to share something interesting lasershark mentioned on my blog awhile ago. It's basically a way to make music with one line of code. It took about 15 minutes to implement on a g2553 and only requires a launchpad and a speaker. I found it pretty entertaining. Just connect one terminal of the speaker to Port 1.2 and the other to ground, or drive it with a transistor. Original project @ http://canonical.org/~kragen/bytebeat/ #include "msp430g2553.h" #define MCLK 8000000 #define OUTPUT_SAMPLES_PER_SECOND 8000 #define PIN_SPEAKER BIT2 unsigned long t = 0; unsigned char sample; void main(void) { WDTCTL = WDTPW + WDTHOLD; DCOCTL = CALDCO_8MHZ; BCSCTL1 = CALBC1_8MHZ; P1SEL |= PIN_SPEAKER; P1DIR |= PIN_SPEAKER; TA0CTL = TASSEL_2 | MC_1; TA0CCR0 = (0x0001 << 8) - 1; TA0CCTL1 |= OUTMOD_7; TA1CTL = TASSEL_2 | MC_1; TA1CCR0 = MCLK / OUTPUT_SAMPLES_PER_SECOND - 1; TA1CCTL0 |= CCIE; _enable_interrupts(); while(1){ sample = ((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7; // sample = t*(((t>>12)|(t>>8))&(63&(t>>4))); // sample = (t*(t>>5|t>>8))>>(t>>16); // sample = t*(((t>>9)|(t>>13))&(25&(t>>6))); // sample = t*(((t>>11)&(t>>8))&(123&(t>>3))); // sample = (t*5&t>>7)|(t*3&t>>10); // sample = (t&t%255)-(t*3&t>>13&t>>6); // sample = t>>4|t&((t>>5)/(t>>7-(t>>15)&-t>>7-(t>>15))); // sample = (t*9&t>>4|t*5&t>>7|t*3&t/1024)-1; // sample = ((t*(t>>12)&(201*t/100)&(199*t/100))&(t*(t>>14)&(t*301/100)&(t*399/100)))+((t*(t>>16)&(t*202/100)&(t*198/100))-(t*(t>>17)&(t*302/100)&(t*298/100))); // sample = t*(t^t+(t>>15|1)^(t-1280^t)>>10); // sample = t&t>>8; //44 khz // sample = ((t/2*(15&(0x234568a0>>(t>>8&28))))|t/2>>(t>>11)^t>>12)+(t/16&t&24); // sample = ((t*("36364689"[t>>13&7]&15))/12&128)+(((((t>>12)^(t>>12)-2)%11*t)/4|t>>13)&127); t++; LPM0; } } #pragma vector = TIMER1_A0_VECTOR __interrupt void T1A0_ISR(void) { TA0CCR1 = sample; LPM0_EXIT; } Switch which "sample =" line is uncommented to change the "song." The songs are from http://pelulamu.net/countercomplex/music_formula_collection.txt and there are more in that file. simpleavr, artifus, bluehash and 4 others 7 Quote Link to post Share on other sites
abecedarian 330 Posted January 2, 2013 Share Posted January 2, 2013 MSP430 chiptunes! Cool. The one @ 2:59 or so reminds me of Fischerspooner. Quote Link to post Share on other sites
abecedarian 330 Posted January 2, 2013 Share Posted January 2, 2013 Was just thinking it'd be cool if this could out midi messages to a synth. It'd be like an algorithmic sequencer. Quote Link to post Share on other sites
jsolarski 94 Posted January 2, 2013 Share Posted January 2, 2013 very nice! Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.