byte metronomeTick(byte midiNote, byte volume) { byte i = findNoteIndex(); initNote(i, midiNote); note[i].startTime = millis(); note[i].waveform = METRONOME_WAVEFORM; note[i].waveformBuf = waveformBuffers[METRONOME_WAVEFORM]; note[i].isSample = true; note[i].sampleLength = sampleLength[METRONOME_WAVEFORM - N_WAVEFORMS]; note[i].envelopePhase = ATTACK; note[i].volIndex = volume; note[i].volume = volume; note[i].volumeNext = volume; setPhaseIncrement(i); return i; }
void setFrequency(float f) { frequency = f; setPhaseIncrement(f/sr); }