Skip to content

Instantly share code, notes, and snippets.

@zeffii
Created March 29, 2015 18:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zeffii/53a70d3b025131d9326e to your computer and use it in GitHub Desktop.
Save zeffii/53a70d3b025131d9326e to your computer and use it in GitHub Desktop.
tb303 skin
(
var size = 50;
var start_x = 305;
var x_offset = 20;
var whitenotes_y = 450;
var coordinates = CSVFileReader.readInterpret("/home/zeffii/SUPERCOLLIDER/coordinates.csv");
Window.closeAll;
w = Window.new("tb303", Rect.new(10, 530, 1120, 570))
.front
.alwaysOnTop_(true);
// 1100 * 530
// 1200 * 600
w.drawFunc_{|me|
Pen.use {
Color.red.set;
Pen.width = 0.3;
Pen.beginPath;
coordinates.do{ |item, idx|
Pen.line(item[0]@item[1], item[2]@item[3]);
Pen.stroke
}
};
};
// top row
x_offset = 82;
k = Knob.new(w, Rect(start_x, 58, size, size));
k = Knob.new(w, Rect(start_x + (x_offset*1), 58, size, size));
k = Knob.new(w, Rect(start_x + (x_offset*2), 58, size, size));
k = Knob.new(w, Rect(start_x + (x_offset*3), 58, size, size));
k = Knob.new(w, Rect(start_x + (x_offset*4), 58, size, size));
k = Knob.new(w, Rect(start_x + (x_offset*5), 58, size, size));
// mid row
k = Knob.new(w, Rect(126, 177, 80, 80)); // l 1
k = Knob.new(w, Rect(290, 177, 80, 80)); // l 2
k = Knob.new(w, Rect(453, 177, 80, 80)); // l 3
k = Knob.new(w, Rect(923, 177, 80, 80)); // l 3
// notes, black
b = Button(w, Rect(294, 341, 25, 46));
b = Button(w, Rect(294 + (59.5*1), 341, 25, 46));
b = Button(w, Rect(294 + (59.5*3), 341, 25, 46));
b = Button(w, Rect(294 + (59.5*4), 341, 25, 46));
b = Button(w, Rect(294 + (59.5*5), 341, 25, 46));
// notes, white
whitenotes_y = 411;
b = Button(w, Rect(266, whitenotes_y, 25, 46));
b = Button(w, Rect(266 + (59.5*1), whitenotes_y, 25, 46));
b = Button(w, Rect(266 + (59.5*2), whitenotes_y, 25, 46));
b = Button(w, Rect(266 + (59.5*3), whitenotes_y, 25, 46));
b = Button(w, Rect(266 + (59.5*4), whitenotes_y, 25, 46));
b = Button(w, Rect(266 + (59.5*5), whitenotes_y, 25, 46));
b = Button(w, Rect(266 + (59.5*6), whitenotes_y, 25, 46));
b = Button(w, Rect(266 + (59.5*7), whitenotes_y, 25, 46));
// left side operator buttons
b = Button(w, Rect(62, 349, 46, 25)); // left most
b = Button(w, Rect(168, 349, 46, 25)); // beside it.
b = Button(w, Rect(51, 412, 69, 46)); // bottom left.
b = Button(w, Rect(157, 411, 25, 46)); // beside it.
// right side operators
b = Button(w, Rect(745, 411, 25, 46)); // left of whitenotes.
b = Button(w, Rect(745 + (59.5*1), 411, 25, 46)); // r beside it.
b = Button(w, Rect(745 + (59.5*2), 411, 25, 46)); // r beside it.
b = Button(w, Rect(745 + (59.5*3), 411, 25, 46)); // r beside it.
b = Button(w, Rect(991, 411, 69, 46)); // wide r beside it.
b = Button(w, Rect(912, 332, 46, 25)); // second from right above right ops.
b = Button(w, Rect(1001, 348, 46, 25)); // r beside it.
/////////// TEXT
// SIZE 11
// tempo BLACK
t = StaticText.new(w, Rect(148, 135, 58, 20)).string_("TEMPO").align_(\left);
t.font = Font("Monaco", 11);
t.stringColor_(Color.gray);
// TRACK - WHITE ON BLACK
t = StaticText.new(w, Rect(268, 135, 58, 20)).string_("TRACK").align_(\left);
t.font = Font("Monaco", 11);
t.stringColor_(Color.white);
// patt.group BLACK
t = StaticText.new(w, Rect(322, 135, 158, 20)).string_("PATT.GROUP").align_(\left);
t.font = Font("Monaco", 11);
t.stringColor_(Color.gray);
// mode BLACK
t = StaticText.new(w, Rect(478, 135, 158, 20)).string_("MODE").align_(\left);
t.font = Font("Monaco", 11);
t.stringColor_(Color.gray);
// volume BLACK
t = StaticText.new(w, Rect(941, 135, 158, 20)).string_("VOLUME").align_(\left);
t.font = Font("Monaco", 11);
t.stringColor_(Color.gray);
/////////// font size 9 ( top row )
// LEFT TOP
t = StaticText.new(w, Rect(46, 43, 158, 20)).string_("MIX IN").align_(\left);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(107, 43, 158, 20)).string_("WAVEFORM").align_(\left);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(203, 43, 158, 20)).string_("SYNC IN").align_(\left);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
// TOP ROW
t = StaticText.new(w, Rect(251, 31, 158, 20)).string_("TUNING").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(324, 31, 178, 20)).string_("CUT OFF FREQ.").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(405, 31, 178, 20)).string_("RESONANCE").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(487, 31, 178, 20)).string_("ENV MOD").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(568, 31, 178, 20)).string_("DECAY").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(650, 31, 178, 20)).string_("ACCENT").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
// TOP RIGHT
t = StaticText.new(w, Rect(727, 41, 158, 20)).string_("CV").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(774, 41, 158, 20)).string_("GATE").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(832, 41, 158, 20)).string_("HEADPHONE").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(896, 41, 158, 20)).string_("OUTPUT").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(958, 41, 158, 20)).string_("DC 9V").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
// MID BTTON, RIGHT text
t = StaticText.new(w, Rect(803, 253, 158, 20)).string_("POWER SW").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
// time mode.. SIZE 11
t = StaticText.new(w, Rect(768, 303, 158, 20)).string_("TIME MODE").align_(\center);
t.font = Font("Monaco", 11);
t.stringColor_(Color.gray);
/////// MID BUTTONS
// WHITE ON BLACK, UNDER MODE
t = StaticText.new(w, Rect(473, 173, 158, 20)).string_("WRITE").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.white);
t = StaticText.new(w, Rect(528, 184, 158, 20)).string_("TRACK").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.white);
t = StaticText.new(w, Rect(483, 195, 158, 20)).string_("PLAY").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.white);
// BLACK under mode
t = StaticText.new(w, Rect(483, 222, 158, 20)).string_("PLAY").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(474, 243, 158, 20)).string_("WRITE").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(533, 234, 158, 20)).string_("PATTERN").align_(\center);
t.font = Font("Monaco", 9);
t.stringColor_(Color.gray);
// ENDS OF DIALS
// LEFT SIDE MID
t = StaticText.new(w, Rect(44, 253, 158, 20)).string_("SLOW").align_(\center);
t.font = Font("Monaco", 8);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(130, 253, 158, 20)).string_("FAST").align_(\center);
t.font = Font("Monaco", 8);
t.stringColor_(Color.gray);
// RIGHT SIDE MID
t = StaticText.new(w, Rect(843, 253, 158, 20)).string_("OFF").align_(\center);
t.font = Font("Monaco", 8);
t.stringColor_(Color.gray);
t = StaticText.new(w, Rect(926, 253, 158, 20)).string_("MAX").align_(\center);
t.font = Font("Monaco", 8);
t.stringColor_(Color.gray);
w.refresh;
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment