Created
March 29, 2015 18:57
-
-
Save zeffii/53a70d3b025131d9326e to your computer and use it in GitHub Desktop.
tb303 skin
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
( | |
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