Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG
Revision 3:3a2c11f459c4, committed 2019-05-04
- Comitter:
- chana_jo
- Date:
- Sat May 04 09:19:10 2019 +0000
- Parent:
- 2:58378cb7e76f
- Commit message:
- bn
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sat May 04 08:46:30 2019 +0000
+++ b/main.cpp Sat May 04 09:19:10 2019 +0000
@@ -34,7 +34,7 @@
{
lcd.Clear(LCD_COLOR_BLUE);
ee.attach(&screen, 0.03);
- re.attach(&play, 0.5);//เล่นตามtempo
+ re.attach(&play, speed);//เล่นตามtempo
er.attach(&test, 0.25);//กดช้ากดเร็วแล้วแต่
//rr.attach(&knob,0.5);//readknob ทุก0.5
@@ -90,7 +90,6 @@
}
void kick44_sample ()
{
-
speaker = kick44_data[l]/16777215.0;//scale to 0.0 to 1.0 for PWM
l++;
if (l>= num_kick44) {
@@ -99,53 +98,69 @@
//led = 0;
}
}
-
+///////////////////////////////////////////////////////////////////////////// PLAY PART //////////////////////////////////////////////
void playsnare()
{
- speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
+ speaker = sn44_data[h]/16777215.0;//scale to 0.0 to 1.0 for PWM
+ h++;
+ speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
-
- sn44tick.attach(&sn44_sample, 1.0 / 33075);
-
- wait(0.5);
+ if (h>= num_sn44) {
+ h = 0;
+ sn44tick.detach();
+ }
}
+
void playkick()
{
+ speaker = kick44_data[l]/16777215.0;//scale to 0.0 to 1.0 for PWM
+ l++;
speaker.period(1.0/441000.0); //PWM freq >10X audio sample rate
-
-
- kick44tick.attach(&kick44_sample, 1.0 / 33075);
-
- wait(0.2);
+
+ if (l>= num_kick44) {
+ l = 0;
+ kick44tick.detach();
+ }
}
void playclap()
{
+ speaker = cl44_data[i]/16777215.0;//scale to 0.0 to 1.0 for PWM
+ i++;
speaker.period(1.0/220500.0); //PWM freq >10X audio sample rate
-
- cl44tick.attach(&cl44_sample, 1.0 /22050);
+ if (i>= num_cl44) {
+ i = 0;
+ cl44tick.detach();
+ }
- wait(0.5);
-
}
+
void playclhh()
{
+ speaker = clhh44_data[j]/16777215.0;//scale to 0.0 to 1.0 for PWM
+ j++;
speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
- clhh44tick.attach(&clhh44_sample, 1.0 / 33075);
+ if (j>= num_clhh44) {
+ j = 0;
+ clhh44tick.detach();
+ }
+
+}
- wait(0.5);
-
-}
void playophh()
{
+ speaker = ophh44_data[k]/16777215.0;//scale to 0.0 to 1.0 for PWM
+ k++;
speaker.period(1.0/330750.0); //PWM freq >10X audio sample rate
- ophh44tick.attach(&ophh44_sample, 1.0 / 33075);
-
- wait(0.2);
+ if (k>= num_ophh44) {
+ k = 0;
+ ophh44tick.detach();
+ }
+
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void play()
@@ -161,41 +176,280 @@
if(tracking==1)
{
-
-
+ sn44tick.detach();
+ cl44tick.detach();
+ clhh44tick.detach();
+ ophh44tick.detach();
+ kick44tick.detach();
+ if(beat[0][0]==1)
+ {
+ pc.printf("1");
+ kick44tick.attach(&playkick,1.0 / 33075);
+ }
+ if(beat[1][0]==1)
+ {
+ pc.printf("2");
+ sn44tick.attach(&playsnare,1.0 / 33075);
+ }
+ if(beat[2][0]==1)
+ {
+ pc.printf("3");
+ cl44tick.attach(&playclap,1.0 /22050);
+ }
+ if(beat[3][0]==1)
+ {
+ pc.printf("4");
+ clhh44tick.attach(&playclhh,1.0 / 33075);
+ }
+ if(beat[4][0]==1)
+ {
+ pc.printf("5");
+ ophh44tick.attach(&playophh,1.0 / 33075);
+ }
+
}
else if(tracking==2)
{
+ sn44tick.detach();
+ cl44tick.detach();
+ clhh44tick.detach();
+ ophh44tick.detach();
+ kick44tick.detach();
+ if(beat[0][1]==1)
+ {
+ //pc.printf("1");
+ kick44tick.attach(&playkick,1.0 / 33075);
+ }
+ if(beat[1][1]==1)
+ {
+ //pc.printf("2");
+ sn44tick.attach(&playsnare,1.0 / 33075);
+ }
+ if(beat[2][1]==1)
+ {
+ //pc.printf("3");
+ cl44tick.attach(&playclap,1.0 /22050);
+ }
+ if(beat[3][1]==1)
+ {
+ //pc.printf("4");
+ clhh44tick.attach(&playclhh,1.0 / 33075);
+ }
+ if(beat[4][1]==1)
+ {
+ //pc.printf("5");
+ ophh44tick.attach(&playophh,1.0 / 33075);
+ }
}
else if(tracking==3)
{
+ sn44tick.detach();
+ cl44tick.detach();
+ clhh44tick.detach();
+ ophh44tick.detach();
+ kick44tick.detach();
+ if(beat[0][2]==1)
+ {
+ //pc.printf("1");
+ kick44tick.attach(&playkick,1.0 / 33075);
+ }
+ if(beat[1][2]==1)
+ {
+ //pc.printf("2");
+ sn44tick.attach(&playsnare,1.0 / 33075);
+ }
+ if(beat[2][2]==1)
+ {
+ //pc.printf("3");
+ cl44tick.attach(&playclap,1.0 /22050);
+ }
+ if(beat[3][2]==1)
+ {
+ //pc.printf("4");
+ clhh44tick.attach(&playclhh,1.0 / 33075);
+ }
+ if(beat[4][2]==1)
+ {
+ //pc.printf("5");
+ ophh44tick.attach(&playophh,1.0 / 33075);
+ }
}
else if(tracking==4)
{
+ sn44tick.detach();
+ cl44tick.detach();
+ clhh44tick.detach();
+ ophh44tick.detach();
+ kick44tick.detach();
+ if(beat[0][3]==1)
+ {
+ //pc.printf("1");
+ kick44tick.attach(&playkick,1.0 / 33075);
+ }
+ if(beat[1][3]==1)
+ {
+ //pc.printf("2");
+ sn44tick.attach(&playsnare,1.0 / 33075);
+ }
+ if(beat[2][3]==1)
+ {
+ //pc.printf("3");
+ cl44tick.attach(&playclap,1.0 /22050);
+ }
+ if(beat[3][3]==1)
+ {
+ //pc.printf("4");
+ clhh44tick.attach(&playclhh,1.0 / 33075);
+ }
+ if(beat[4][3]==1)
+ {
+ //pc.printf("5");
+ ophh44tick.attach(&playophh,1.0 / 33075);
+ }
}
else if(tracking==5)
{
+ sn44tick.detach();
+ cl44tick.detach();
+ clhh44tick.detach();
+ ophh44tick.detach();
+ kick44tick.detach();
+ if(beat[0][4]==1)
+ {
+ //pc.printf("1");
+ kick44tick.attach(&playkick,1.0 / 33075);
+ }
+ if(beat[1][4]==1)
+ {
+ //pc.printf("2");
+ sn44tick.attach(&playsnare,1.0 / 33075);
+ }
+ if(beat[2][4]==1)
+ {
+ //pc.printf("3");
+ cl44tick.attach(&playclap,1.0 /22050);
+ }
+ if(beat[3][4]==1)
+ {
+ //pc.printf("4");
+ clhh44tick.attach(&playclhh,1.0 / 33075);
+ }
+ if(beat[4][4]==1)
+ {
+ //pc.printf("5");
+ ophh44tick.attach(&playophh,1.0 / 33075);
+ }
}
else if(tracking==6)
{
+ sn44tick.detach();
+ cl44tick.detach();
+ clhh44tick.detach();
+ ophh44tick.detach();
+ kick44tick.detach();
+ if(beat[0][5]==1)
+ {
+ //pc.printf("1");
+ kick44tick.attach(&playkick,1.0 / 33075);
+ }
+ if(beat[1][5]==1)
+ {
+ //pc.printf("2");
+ sn44tick.attach(&playsnare,1.0 / 33075);
+ }
+ if(beat[2][5]==1)
+ {
+ //pc.printf("3");
+ cl44tick.attach(&playclap,1.0 /22050);
+ }
+ if(beat[3][5]==1)
+ {
+ //pc.printf("4");
+ clhh44tick.attach(&playclhh,1.0 / 33075);
+ }
+ if(beat[4][5]==1)
+ {
+ //pc.printf("5");
+ ophh44tick.attach(&playophh,1.0 / 33075);
+ }
}
else if(tracking==7)
{
+ sn44tick.detach();
+ cl44tick.detach();
+ clhh44tick.detach();
+ ophh44tick.detach();
+ kick44tick.detach();
+ if(beat[0][0]==1)
+ {
+ //pc.printf("6");
+ kick44tick.attach(&playkick,1.0 / 33075);
+ }
+ if(beat[1][0]==1)
+ {
+ //pc.printf("6");
+ sn44tick.attach(&playsnare,1.0 / 33075);
+ }
+ if(beat[2][0]==1)
+ {
+ //pc.printf("6");
+ cl44tick.attach(&playclap,1.0 /22050);
+ }
+ if(beat[3][0]==1)
+ {
+ //pc.printf("6");
+ clhh44tick.attach(&playclhh,1.0 / 33075);
+ }
+ if(beat[4][0]==1)
+ {
+ //pc.printf("6");
+ ophh44tick.attach(&playophh,1.0 / 33075);
+ }
}
else if(tracking==8)
{
+ sn44tick.detach();
+ cl44tick.detach();
+ clhh44tick.detach();
+ ophh44tick.detach();
+ kick44tick.detach();
+ if(beat[0][0]==1)
+ {
+ //pc.printf("7");
+ kick44tick.attach(&playkick,1.0 / 33075);
+ }
+ if(beat[1][0]==1)
+ {
+ //pc.printf("7");
+ sn44tick.attach(&playsnare,1.0 / 33075);
+ }
+ if(beat[2][0]==1)
+ {
+ //pc.printf("7");
+ cl44tick.attach(&playclap,1.0 /22050);
+ }
+ if(beat[3][0]==1)
+ {
+ //pc.printf("7");
+ clhh44tick.attach(&playclhh,1.0 / 33075);
+ }
+ if(beat[4][0]==1)
+ {
+ //pc.printf("7");
+ ophh44tick.attach(&playophh,1.0 / 33075);
+ }
}
@@ -371,7 +625,9 @@
sprintf(tempostr,"%1.1f",tempo);
sprintf(volumechar,"%1.1f",volume);
pc.printf("tempo = %s \n\r",tempostr); //print ในuart ถูก
- pc.printf("volume = %s\n\r",volumechar);
+ pc.printf("volume = %s\n\r",volumechar);
+ speed=floor(tempo);
+ speed=(60/speed)/2;
}