Permalink
Browse files

refactoring beatseqr firmware to change "solo" voice button mode to b…

…e a more correctly labeled generic "toggle" mode. You can still use these as solo toggles, but you can also use them for any toggle that you can map a midi CC to in your music program.

	modified:   ../README
	modified:   beatseqr_arduino_firmware_4/beatseqr_arduino_firmware_4.pde
	modified:   beatseqr_arduino_firmware_4/config.h
	modified:   beatseqr_arduino_firmware_4/serial_utilities.pde
	modified:   beatseqr_arduino_firmware_4/transport_button_routine.pde
	modified:   beatseqr_arduino_firmware_4/voice_select_button_routine.pde
  • Loading branch information...
stevecooley committed Oct 13, 2010
1 parent aecc65f commit dabf8d97cc6b0af234aea58b26990e1661ab2870
View
5 README
@@ -39,6 +39,11 @@ Thanks to Alexander Brevig and Mikal Hart for their library contributions to the
Version updates:
Beatseqr Firmware Version 4.1 - 2010-10-13 Steve Cooley
* refactored "solo" voice button mode to be "toggle" mode.
* using "T" to represent the "toggle" voice button mode on the LCD screen.
* replaced the custom character for "solo" and am now using that space for a solid square character for "stop"
Beatseqr Firmware Version 4.0 - 2010-08-26 Steve Cooley
* significant rewiring on the hardware for the new 4.0 hardware boards required rewiring in the firmware as well.
* parameter record button now allows you to click and hold this button on the hardware to momentarily change the message header that is sent to the sequencer. In Steppa, this will let you momentarily send slider parameters to a parameter sequencer/looper subpatch, which we think is significantly awesome.
@@ -60,7 +60,7 @@ void setup(){
}
lcd.print("?x00?y0");// move cursor to beginning of line 0
lcd.print("O"); // pause symbol
lcd.print("?7"); // pause symbol
lcd.print(" "); // space
lcd.print("?11 "); // voice 1
lcd.print("?2"); // velocity
@@ -123,7 +123,7 @@ int pulse_adder = 1;
// int last_voice_selected = 0;
int mute_mode_memory[8] = {
0,0,0,0,0,0,0,0};
int solo_mode_memory[8] = {
int toggle_mode_memory[8] = {
0,0,0,0,0,0,0,0};
@@ -44,7 +44,10 @@ void run_LCD_setup_routine()
delay(100);
lcd.print("?D71F19171B1D1D131F"); // Solo... we'll use S for "select" and "M" for mute
lcd.print("?D7001F1F1F1F1F1F00"); // STOP ...
// this used to be "solo", but instead of explicitly calling it "solo", I'm going to go with "toggle" instead, and just use a "T" to represent that
// Doing that will let me change the "O" I was using to represent "stop" and replace it with a solid square instead.
delay(100);
@@ -45,7 +45,7 @@ void run_transport_button_routine()
serial_printer(the_serial_message);
lcd.print("?x00?y0");// move cursor to beginning of line 0
lcd.print("O");
lcd.print("?7");
lcd.print(" ");
}
}
@@ -55,9 +55,9 @@ void run_voice_select_button_routine()
// lcd.print("?f"); // clear the LCD
lcd.print("?x14?y0");// move cursor to beginning of line 0
lcd.print("?6"); // voice mode
lcd.print("?7"); // solo
lcd.print("T"); // toggle
run_solo_mode();
run_toggle_mode();
break;
}
@@ -194,7 +194,7 @@ void run_voice_select_button_routine()
break;
}
case 3: // solo
case 3: // toggle
{
int voiceval = voice_select_buttons.getValue();
@@ -223,7 +223,7 @@ void run_voice_select_button_routine()
// get the LED value and set the mute_mode_memory accordingly
if((voice_select_leds[v].getState() == 0))
{
solo_mode_memory[v] = 1;
toggle_mode_memory[v] = 1;
voice_select_leds[v].on();
the_serial_message = "ZSO,";
the_serial_message += v;
@@ -235,7 +235,7 @@ void run_voice_select_button_routine()
}
else
{
solo_mode_memory[v] = 0;
toggle_mode_memory[v] = 0;
voice_select_leds[v].off();
the_serial_message = "ZSO,";
the_serial_message += v;
@@ -294,14 +294,14 @@ void run_mute_mode()
}
void run_solo_mode()
void run_toggle_mode()
{
clear_voice_select_leds();
// recall mute memory and set the LEDs accordingly
for(int v = 0; v<=7; v++)
{
if(solo_mode_memory[v] == 0)
if(toggle_mode_memory[v] == 0)
{
voice_select_leds[v].off();
}

0 comments on commit dabf8d9

Please sign in to comment.