summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorStepan Moskovchenko <stevenm@rockbox.org>2007-10-03 17:42:16 +0000
committerStepan Moskovchenko <stevenm@rockbox.org>2007-10-03 17:42:16 +0000
commit1ba018bb0194c7f00b163cc38a0ae57464705dcf (patch)
treefbf6d94e1cdc510619566e481de9aef26b6ca655 /apps/plugins
parent38f953320bba45b518e1326524484fb7b881cab9 (diff)
Add drum names, make cowbell a default instrument (no way to remap them from UI yet). Add non-static
wrapper for pressnote (is there a better way?). Beatbox only tested on H300; compile at own risk. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14972 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/beatbox/beatbox.c81
-rw-r--r--apps/plugins/midi/sequencer.c9
2 files changed, 87 insertions, 3 deletions
diff --git a/apps/plugins/beatbox/beatbox.c b/apps/plugins/beatbox/beatbox.c
index 794d6c1cbe..00ce42c64b 100644
--- a/apps/plugins/beatbox/beatbox.c
+++ b/apps/plugins/beatbox/beatbox.c
@@ -123,6 +123,62 @@ long bpm IBSS_ATTR;
#include "midi/midifile.h"
+const unsigned char * drumNames[]={
+ "Bass Drum 2 ",
+ "Bass Drum 1 ",
+ "Side Stick ",
+ "Snare Drum 1 ",
+ "Hand Clap ",
+ "Snare Drum 2 ",
+ "Low Tom 2 ",
+ "Closed Hi-hat ",
+ "Low Tom 1 ",
+ "Pedal Hi-hat ",
+ "Mid Tom 2 ",
+ "Open Hi-hat ",
+ "Mid Tom 1 ",
+ "High Tom 2 ",
+ "Crash Cymbal 1 ",
+ "High Tom 1 ",
+ "Ride Cymbal 1 ",
+ "Chinese Cymbal ",
+ "Ride Bell ",
+ "Tambourine ",
+ "Splash Cymbal ",
+ "Cowbell ",
+ "Crash Cymbal 2 ",
+ "Vibra Slap ",
+ "Ride Cymbal 2 ",
+ "High Bongo ",
+ "Low Bongo ",
+ "Mute High Conga",
+ "Open High Conga",
+ "Low Conga ",
+ "High Timbale ",
+ "Low Timbale ",
+ "High Agogo ",
+ "Low Agogo ",
+ "Cabasa ",
+ "Maracas ",
+ "Short Whistle ",
+ "Long Whistle ",
+ "Short Guiro ",
+ "Long Guiro ",
+ "Claves ",
+ "High Wood Block",
+ "Low Wood Block ",
+ "Mute Cuica ",
+ "Open Cuica ",
+ "Mute Triangle ",
+ "Open Triangle ",
+ "Shaker ",
+ "Jingle Bell ",
+ "Bell Tree ",
+ "Castenets ",
+ "Mute Surdo ",
+ "Open Surdo "
+};
+
long gmbuf[BUF_SIZE*NBUF];
int quit=0;
@@ -163,6 +219,7 @@ struct plugin_api * rb;
#define GRID_YPOS 10
+#define COLOR_NAME_TEXT LCD_RGBPACK(0xFF,0xFF,0xFF)
#define COLOR_NORMAL LCD_RGBPACK(0xFF,0xFF,0xFF)
#define COLOR_PLAY LCD_RGBPACK(0xFF,0xFF,0x00)
#define COLOR_DISABLED LCD_RGBPACK(0xA0,0xA0,0xA0)
@@ -274,7 +331,7 @@ inline void synthbuf(void)
unsigned char trackPos[V_NUMCELLS];
unsigned char trackData[H_NUMCELLS][V_NUMCELLS];
-unsigned char trackMap[V_NUMCELLS] = {38, 39, 40, 41, 42, 43, 44, 45};
+unsigned char trackMap[V_NUMCELLS] = {38, 39, 40, 41, 42, 43, 44, 56};
struct Cell
@@ -305,10 +362,18 @@ void sendEvents()
for(i=0; i<V_NUMCELLS; i++)
{
if(trackData[trackPos[i]][i] == VAL_ENABLED)
- pressNote(9, trackMap[i], 127);
+ pressNote_Nonstatic(9, trackMap[i], 127);
}
}
+#define NAME_POSX 10
+#define NAME_POSY 100
+void showDrumName(int trackNum)
+{
+ rb->lcd_set_foreground(COLOR_NAME_TEXT);
+ rb->lcd_putsxy(NAME_POSX, NAME_POSY, drumNames[trackMap[trackNum]-35]);
+}
+
void updateDisplay()
{
int i, j;
@@ -460,6 +525,12 @@ int beatboxmain()
int i, j;
+ /* Start at 16 cells/loop for now. User can un-loop if more are needed */
+ for(i=0; i<V_NUMCELLS; i++)
+ trackData[16][i] = VAL_LOOP;
+
+
+/* Very very rough beat to 'Goodbye Horses'
trackData[16][3] = VAL_LOOP;
trackData[16][2] = VAL_LOOP;
@@ -474,9 +545,10 @@ int beatboxmain()
trackData[6][2] = 1;
trackData[10][2] = 1;
trackData[14][2] = 1;
-
+*/
drawGrid();
+ showDrumName(yCursor);
updateDisplay();
redrawScreen(1);
@@ -557,6 +629,7 @@ int beatboxmain()
if(yCursor > 0)
{
yCursor--;
+ showDrumName(yCursor);
updateDisplay();
redrawScreen(0);
}
@@ -572,6 +645,7 @@ int beatboxmain()
if(yCursor < V_NUMCELLS-1)
{
yCursor++;
+ showDrumName(yCursor);
updateDisplay();
redrawScreen(0);
}
@@ -662,3 +736,4 @@ int beatboxmain()
return 0;
}
+
diff --git a/apps/plugins/midi/sequencer.c b/apps/plugins/midi/sequencer.c
index b2756f296f..a44bacfce8 100644
--- a/apps/plugins/midi/sequencer.c
+++ b/apps/plugins/midi/sequencer.c
@@ -379,3 +379,12 @@ int tick(void)
return 0;
}
+
+/* Ugly hack so that beatbox can get at teh pressnote function */
+/* Is there a speed advantage to keeping pressNote itself static? */
+/* Note that midiplay needs the speed much more than beatbox does */
+void pressNote_Nonstatic(int ch, int note, int vol)
+{
+ pressNote(ch, note, vol);
+}
+