void createTrill(int key1, int key2, int velocity, int channel, int duration) { static FunctionEvent tn; // a Temporary Note for copying into eventBuffer // key1 should always be smaller than key2 int temp; if (key1 > key2) { temp = key1; key1 = key2; key2 = temp; } // setting the fields of the function note tn.setFunction(TrillAlgorithm); tn.setChannel(channel); tn.setKeyno(key1); tn.setVelocity(velocity); // set extra parameters tn.charValue(15) = 0; // 0 = play key1 next, 1 = play key2 next tn.charValue(14) = key2; // secondary pitch tn.intValue(10) = t_time; // initialization time tn.setStatus(EVENT_STATUS_ACTIVE); // start time of function and the duration between calling it tn.setOnDur(t_time + duration, duration); eventBuffer.insert(tn); cout << "Trill = " << key1 << " to " << key2 << "\tRate = " << duration << endl; }
void playgliss(int basenote, int loudness, int channel, int duration, int distancee) { static FunctionEvent tn; // a Temporary Note for copying into eventBuffer // setting the fields of the function note tn.shortValue(14) = distancee; tn.setFunction(EnhanceFunction); tn.setChannel(channel); tn.setKeyno(basenote + distancee); tn.setVelocity(loudness - 5); tn.setStatus(EVENT_STATUS_ACTIVE); // start time of function and the duration between calling it tn.setOnDur(t_time, duration); eventBuffer.insert(tn); cout << "StartKey = " << basenote << "\tLoudness = " << loudness << "\tRate = " << duration << "\tDirection = " << distancee << endl; }
void createDecay(int channel, int key, int duration, int velocity) { static FunctionEvent tn; // temporary function for copying into eventBuffer tn.shortValue(14) = gap; // gap between successive notes tn.setFunction(EchoAlgorithm); tn.setChannel(channel); tn.setKeyno(key); decaystates[key] = velocity * decayrate; tn.setVelocity((int)decaystates[key]); tn.setStatus(EVENT_STATUS_ACTIVE); // start time of function and the duration between calling it tn.setOnDur(t_time, duration); eventBuffer.insert(tn); cout << "Key= " << key << "\tDuration = " << duration + gap << "\tVelocity = " << velocity << endl; }