}
// A little silliness to test the grid API
- for (int i = 0; i < 7; ++i) {
- for (int j = 0; j < 8; ++j) {
- int gi = (int) constrain(j * NUM_DIVISIONS / 8, 0, NUM_DIVISIONS-1);
- float b = 1 - 4.*abs((6-i)/7. - gravity[gi].getValuef() / model.yMax);
- midiEngine.grid.setState(i, j, (b < 0) ? 0 : 1);
+ if (midiEngine != null && midiEngine.getFocusedPattern() == this) {
+ for (int i = 0; i < 5; ++i) {
+ for (int j = 0; j < 8; ++j) {
+ int gi = (int) constrain(j * NUM_DIVISIONS / 8, 0, NUM_DIVISIONS-1);
+ float b = 1 - 4.*abs((6-i)/6. - gravity[gi].getValuef() / model.yMax);
+ midiEngine.grid.setState(i, j, (b < 0) ? 0 : 3);
+ }
}
}
final BasicParameter desat = new BasicParameter("DSAT", 0);
final BasicParameter sharp = new BasicParameter("SHARP", 0);
final BasicParameter soft = new BasicParameter("SOFT", 0);
+ final BasicParameter mono = new BasicParameter("MONO", 0);
final BasicParameter invert = new BasicParameter("INVERT", 0);
final BasicParameter hueShift = new BasicParameter("HSHFT", 0);
addParameter(desat);
addParameter(sharp);
addParameter(soft);
+ addParameter(mono);
addParameter(invert);
addParameter(hueShift);
}
float hMod = hueShift.getValuef();
float fSharp = 1/(1.0001-sharp.getValuef());
float fSoft = soft.getValuef();
+ boolean mon = mono.getValuef() > 0.5;
boolean ivt = invert.getValuef() > 0.5;
- if (bMod < 1 || sMod < 1 || hMod > 0 || fSharp > 0 || ivt || fSoft > 0) {
+ if (bMod < 1 || sMod < 1 || hMod > 0 || fSharp > 0 || ivt || mon || fSoft > 0) {
for (int i = 0; i < colors.length; ++i) {
lx.RGBtoHSB(colors[i], hsb);
+ if (mon) {
+ hsb[0] = lx.getBaseHuef() / 360.;
+ }
if (ivt) {
hsb[2] = 1 - hsb[2];
}