Enabled C and D sequencer banks

This commit is contained in:
Oleksiy
2025-03-12 20:28:49 +02:00
parent 709c21aaf8
commit 4b30e2ee9f
10 changed files with 32 additions and 4485 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +0,0 @@
/*
Fontname: Velvet Screen
Copyright: Created with Fony 1.4.7
Glyphs: 52/256
BBX Build Mode: 0
*/
const uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") =
"\64\0\2\2\3\3\2\3\4\5\5\0\0\5\0\5\0\0\221\0\0\1\230 \4\200\134%\11\255tT"
"R\271RI(\6\252\334T\31)\7\252\134bJ\12+\7\233\345\322J\0,\5\221T\4-\5\213"
"f\6.\5\211T\2/\6\244\354c\33\60\10\254\354T\64\223\2\61\7\353\354\222\254\6\62\11\254l"
"\66J*\217\0\63\11\254l\66J\32\215\4\64\10\254l\242\34\272\0\65\11\254l\206\336h$\0\66"
"\11\254\354T^\61)\0\67\10\254lF\216u\4\70\11\254\354TL*&\5\71\11\254\354TL;"
")\0:\6\231UR\0A\10\254\354T\34S\6B\11\254lV\34)\216\4C\11\254\354T\324\61"
")\0D\10\254lV\64G\2E\10\254l\206\36z\4F\10\254l\206^\71\3G\11\254\354TN"
"\63)\0H\10\254l\242\34S\6I\6\251T\206\0J\10\254\354k\231\24\0K\11\254l\242J\62"
"\225\1L\7\254lr{\4M\11\255t\362ZI\353\0N\11\255t\362TI\356\0O\10\254\354T"
"\64\223\2P\11\254lV\34)g\0Q\10\254\354T\264b\12R\10\254lV\34\251\31S\11\254\354"
"FF\32\215\4T\7\253dVl\1U\10\254l\242\63)\0V\11\255t\262Ne\312\21W\12\255"
"t\262J*\251.\0X\11\254l\242L*\312\0Y\12\255tr\252\63\312(\2Z\7\253df*"
"\7p\10\255\364V\266\323\2q\7\255\364\216\257\5r\10\253d\242\32*\2t\6\255t\376#w\11"
"\255\364V\245FN\13x\6\233dR\7\0\0\0\4\377\377\0";

Binary file not shown.

View File

@ -25,13 +25,13 @@ byte bpmModulationRange = 0;
struct channel { struct channel {
byte mode : 3; //mv: 7. 0 - CLK, 1 - RND, 2 - SEQ, 3 - SWING, 4 - Gate byte mode : 3; //mv: 7. 0 - CLK, 1 - RND, 2 - SEQ, 3 - SWING, 4 - Gate
byte subDiv : 5; //mv: 32 byte subDiv : 5; //mv: 31
byte random : 4; //mv: 16 byte random : 4; //mv: 15
byte seqPattern : 4; byte seqPattern : 5;
byte CV1Target : 3; //0 - Off, 1 - Subdiv, 2 - RND, 3 - SeqPattern byte CV1Target : 3; //0 - Off, 1 - Subdiv, 2 - RND, 3 - SeqPattern
byte CV2Target : 3; byte CV2Target : 3;
uint8_t swing : 3; uint8_t swing : 3;
uint8_t offset : 7; //mv: 128 uint8_t offset : 7; //mv: 127
uint8_t gate : 7; uint8_t gate : 7;
bool isMute : 1; bool isMute : 1;
}; };

View File

@ -139,11 +139,12 @@ void checkInputs() {
&& (menuItemSelected || shiftBtnPushed))) && (menuItemSelected || shiftBtnPushed)))
&& displayTab != 0 && displayTab != 0
&& channels[displayTab - 1].mode == 2) { //Change SEQ pattern && channels[displayTab - 1].mode == 2) { //Change SEQ pattern
channels[displayTab - 1].seqPattern = channels[displayTab - 1].seqPattern + change; if (channels[displayTab - 1].seqPattern == 0 && change == -1) {
if (channels[displayTab - 1].seqPattern > 100) {
channels[displayTab - 1].seqPattern = 0; channels[displayTab - 1].seqPattern = 0;
} else if (channels[displayTab - 1].seqPattern > 15) { } else if (channels[displayTab - 1].seqPattern == 31 && change == 1) {
channels[displayTab - 1].seqPattern = 15; channels[displayTab - 1].seqPattern = 31;
} else {
channels[displayTab - 1].seqPattern = channels[displayTab - 1].seqPattern + change;
} }
saveState(); saveState();
} else if (((!insideTab && shiftBtnPushed) } else if (((!insideTab && shiftBtnPushed)

View File

@ -232,9 +232,15 @@ void updateScreen() {
if (channels[displayTab - 1].seqPattern < 8) { if (channels[displayTab - 1].seqPattern < 8) {
valueStr = F("A"); valueStr = F("A");
valueStr = valueStr + String(channels[displayTab - 1].seqPattern + 1); valueStr = valueStr + String(channels[displayTab - 1].seqPattern + 1);
} else { } else if (channels[displayTab - 1].seqPattern >= 8 && channels[displayTab - 1].seqPattern < 16) {
valueStr = F("B"); valueStr = F("B");
valueStr = valueStr + String(channels[displayTab - 1].seqPattern - 7); valueStr = valueStr + String(channels[displayTab - 1].seqPattern - 7);
} else if (channels[displayTab - 1].seqPattern >= 16 && channels[displayTab - 1].seqPattern < 24) {
valueStr = F("C");
valueStr = valueStr + String(channels[displayTab - 1].seqPattern - 15);
} else if (channels[displayTab - 1].seqPattern >= 24 && channels[displayTab - 1].seqPattern < 32) {
valueStr = F("D");
valueStr = valueStr + String(channels[displayTab - 1].seqPattern - 23);
} }
} else if (channels[displayTab - 1].mode == 3) { } else if (channels[displayTab - 1].mode == 3) {
byte swingVals[6] = {50, 58, 66, 75, 83, 92}; byte swingVals[6] = {50, 58, 66, 75, 83, 92};

View File

@ -16,22 +16,23 @@ const PROGMEM uint8_t stkS[437] U8G2_FONT_SECTION("stk-s") =
"\7p\10\255\364V\266\323\2q\7\255\364\216\257\5r\10\253d\242\32*\2t\6\255t\376#w\11" "\7p\10\255\364V\266\323\2q\7\255\364\216\257\5r\10\253d\242\32*\2t\6\255t\376#w\11"
"\255\364V\245FN\13x\6\233dR\7\0\0\0\4\377\377\0"; "\255\364V\245FN\13x\6\233dR\7\0\0\0\4\377\377\0";
const PROGMEM uint8_t stkL[569] U8G2_FONT_SECTION("stk-l") = const PROGMEM uint8_t stkL[592] U8G2_FONT_SECTION("stk-l") =
"\25\0\4\4\4\5\2\1\6\17\27\1\0\27\0\0\0\1\77\0\0\2\34%'\17\37\313\330R#&" "\26\0\4\4\4\5\2\1\6\17\27\1\0\27\0\0\0\1\77\0\0\2\63%'\17\37\313\330R#&"
"\32!F\14\211I\310\24!\65\204(MF\21)Cd\304\10\62b\14\215\60Vb\334\20\0/\14" "\32!F\14\211I\310\24!\65\204(MF\21)Cd\304\10\62b\14\215\60Vb\334\20\0/\14"
"\272\336\336d\244\350\263q\343\0\60\37|\377\12\32\25\17\2\35\263\253ChD\30\21bB\14\242S" "\272\336\336d\244\350\263q\343\0\60\37|\377\216!%*\10\35\263\253ChD\30\21bB\14\242S"
"\306lv\350A\10\65H\0\61\24z\337\322\60R\205\314\234\31\61F\310\270\371\177\224\42\3\62\33|" "\306lv\210\204\22Ef\0\61\24z\337\322\60R\205\314\234\31\61F\310\270\371\177\224\42\3\62\33|"
"\377\216\251$*\10\35\63\66r\206\304\314`c\252\34\301\221\263|\360\300\0\63\34|\377\216)\64*" "\377\216)\64*\10\35\63\66r\206\304\314`c\252\34\301\221\263|\360\300\0\63\34|\377\216)\64*"
"\10\35\63\66r \71\332YIr\226\306\16\221P\203\312\14\0\64 |\377\226\220AC\306\20\31B" "\10\35\63\66r \71\332YIr\226\306\16\221P\203\312\14\0\64 |\377\226\220AC\306\20\31B"
"f\310\240\21\204F\214\32\61j\304(cv\366\200\305\312\371\0\65\32}\17\307\12.\206\316\213Bj" "f\310\240\21\204F\214\32\61j\304(cv\366\200\305\312\371\0\65\32|\377\206\212-F\316\27\204\224"
"\226\214\42JtN\315\235\42\261&\325\31\0\66\33}\17\317\251\64+\206\235\63:/\314,aA\352" "\254\30\65t\344,\215\35\42\241\6\225\31\0\66\33}\17\317\251\64+\206\235\63:/\314,aA\352"
"\234\335\235\42\261&\325\31\0\67\23|\377\302\212\7)\347Crt\70\345\300\221\363\16\0\70 |\377" "\234\335\235\42\261&\325\31\0\67\23|\377\302\212\7)\347Crt\70\345\300\221\363\16\0\70 |\377"
"\216)\64*\10\35\263\331!\22D\310\240\62\205\206\10\11B\307lv\210\204\32Tf\0\71\32|\377" "\216)\64*\10\35\263\354\20\11\42d\20\235BC\204\4\241cvv\210\204\32Tf\0\71\32|\377"
"\216)\64*\10\35\263\263C$\226\250I\71_\14\42\241\6\225\31\0A\26}\17S\271Si(\31" "\216)\64*\10\35\263\263C$\226\250I\71_\14\42\241\6\225\31\0A\26}\17S\271Si(\31"
"\65d\324\210q\366\356\301w\366\273\1B$}\17\203\232%KF\221\30\66b\330\210a#\206\215\30" "\65d\324\210q\366\356\301w\366\273\1B$}\17C\42\65KF\221\30\66b\330\210a#\206\215\30"
"Eb\311&\243H\14;g\317\36\204`\261\4\0D\33}\17C\42\65KF\15\31\66b\330\210q" "Eb\311&\243H\14;g\317\36\204`\261\4\0C\27}\17\317\251\64K\10!\63:\377\247\304F"
"\366\77;\66b\24\211%j\22\1E\21|\377\302\7)\347%\42\214F\316/\37<\60I\7so" "\20\42\261F\21\22\0D\33}\17C\42\65KF\15\31\66b\330\210q\366\77;\66b\24\211%j"
"\302\37$M$}\17\203\310r\346N\245Q\263\202E\12)L\224\60Q\302\310\20#C\214\14\61\23" "\22\1E\21|\377\302\7)\347%\42\214F\316/\37<\60I\7so\302\37$M$}\17\203\310"
"\306L\30s\366\335\0T\15}\17\303\7\251\206\316\377\377\12\0X)~\37\303@\203\307H\14\33B" "r\346N\245Q\263\202E\12)L\224\60Q\302\310\20#C\214\14\61\23\306L\30s\366\335\0T\15"
"\210\14\21RC\206\241\63h\222(I\203\346\220\15\31E\204\14!\42\303F\20;h\341\0x\24\312" "}\17\303\7\251\206\316\377\377\12\0X)~\37\303@\203\307H\14\33B\210\14\21RC\206\241\63h"
"\336\302 CGH\240\61E\312\14\222)\6Y\64\0\0\0\0\4\377\377\0"; "\222(I\203\346\220\15\31E\204\14!\42\303F\20;h\341\0x\24\312\336\302 CGH\240\61E"
"\312\14\222)\6Y\64\0\0\0\0\4\377\377\0";