|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- class Shader {
- int id;
- int number;
- String name;
- boolean animating = true;
- ArrayList<Param> params = new ArrayList<Param>();
-
- class Param {
- int type;
- String name;
- float minValue, maxValue;
- float value;
- float inc;
- boolean animating;
- int[] osciModes;
- //Osci[] oscis;
- Osci osci;
- //incrementer -- in bpm
-
-
- Param(String paramName, int maxValue_, int[] osciModes_) {
- name = paramName;
- maxValue = maxValue_;
- minValue = 0;
- type = INTVAL; //int
- osciModes = osciModes_;
- makeOsci();
- play();
- }
- Param(String paramName, float minValue_, float maxValue_, int[] osciModes_) {
- name = paramName;
- minValue = minValue_;
- maxValue = maxValue_;
- type = FLOATVAL; //float
- osciModes = osciModes_;
- makeOsci();
- play();
- }
-
- void makeOsci() {
- int[] possibleBeats = {1, 2, 4, 8, 16, 32, 64};
- int beats = possibleBeats[(int)random(possibleBeats.length)];
- int mode = osciModes[(int)random(osciModes.length)];
- float phaseshift = (random(1) > .8) ? .25 : 0;
- osci = new Osci(beats, phaseshift, mode);
- }
-
- void play() {
- animating = true;
- }
- void pause() {
- animating = false;
- }
- void animate() {
- osci.update();
- value = getValue(osci.value, false);
- };
-
-
- void randomize() {
- if (type == INTVAL) {
- value = (int)random(minValue, maxValue);
- } else if (type == FLOATVAL) {
- //value = random(minValue, maxValue);
- value = random(minValue, maxValue);
- }
- }
-
- String formattedValue() {
- if (type == INTVAL) {
- return str((int)value);
- } else if (type == FLOATVAL) {
- return nf(getValue(value, true), 0, 2).replace(',', '.').replace(' ', ',');
- } else {
- return "";
- }
- }
-
- float getValue(float val, boolean normalize) { //used for other function, dont use it
- return normalize ? map(val, minValue, maxValue, 0, 1) : map(val, 0, 1, minValue, maxValue);
- }
-
- void setValue(float value_) {
- if (type == INTVAL) {
- value = constrain((int)value_, 0, maxValue);
- } else if (type == FLOATVAL) {
- value = getValue(value_, false);
- }
- }
- }
- void apply() {
- }; //override me
-
- String[] getParamNames() {
- String[] pnames = new String[params.size()];
- for (int i = 0; i < params.size(); i++) {
- pnames[i] = params.get(i).name;
- }
- return pnames;
- }
- int paramIdByName(String name_) {
-
- for (int i = 0; i < params.size(); i ++) {
- if (params.get(i).name.equals(name_)) {
- return i;
- }
- }
- return -1;
- }
- }
- /*
- */
|