From 69db656239b3030ec65154650b718c46c1651c52 Mon Sep 17 00:00:00 2001 From: Valentin Boettcher Date: Tue, 10 Apr 2018 08:36:37 +0200 Subject: [PATCH] SomE WHITESPACE --- src/avtk/clipselector.cxx | 76 ++++++------ src/avtk/clipselector.hxx | 32 +++-- src/looper.cxx | 249 +++++++++++++++++++------------------- 3 files changed, 175 insertions(+), 182 deletions(-) diff --git a/src/avtk/clipselector.cxx b/src/avtk/clipselector.cxx index 13b625c..5311580 100644 --- a/src/avtk/clipselector.cxx +++ b/src/avtk/clipselector.cxx @@ -104,7 +104,7 @@ double getCairoTextWith(cairo_t * cr, const char * str) return ex.width; } -void trimToFit(cairo_t * cr, std::string * str, double maxWidth) +void trimStringToFit(cairo_t * cr, std::string * str, double maxWidth) { double ellWidth = getCairoTextWith(cr, "…"); double textWidth = getCairoTextWith(cr, str->c_str()); @@ -253,7 +253,7 @@ void ClipSelector::draw() cairo_set_font_size( cr, 11 ); std::string tmp = clips[i].getName(); - trimToFit(cr, &tmp, clipWidth - (clipHeight + 15 + beatLen)); + trimStringToFit(cr, &tmp, clipWidth - (clipHeight + 15 + beatLen)); cairo_show_text( cr, tmp.c_str() ); // special indicator @@ -285,24 +285,24 @@ void ClipSelector::resize(int X, int Y, int W, int H) void setRecordBarsCb(Fl_Widget *w, void* data) { - if(!w || !data) - return; + if(!w || !data) + return; ClipSelector *track = (ClipSelector*)w; long bars = (long)data; - if(bars == -2) { + if(bars == -2) { const char* answer = fl_input("Enter a custom number: "); - if(!answer) { - bars = -1; - fl_message("Please enter value between 1 and %i.", MAX_BARS); - } else + if(!answer) { + bars = -1; + fl_message("Please enter value between 1 and %i.", MAX_BARS); + } else bars = atoi(answer); } - if(bars > MAX_BARS) { - bars = -1; - fl_message("Please enter value between 1 and %i.", MAX_BARS); - } + if(bars > MAX_BARS) { + bars = -1; + fl_message("Please enter value between 1 and %i.", MAX_BARS); + } EventLooperBarsToRecord e(track->ID, track->getLastClipNum(), bars); writeToDspRingbuffer( &e ); @@ -316,16 +316,6 @@ void setLengthCb(Fl_Widget *w, void* data) writeToDspRingbuffer( &e ); } -int ClipSelector::findClipNum() { - // calculate the clicked clip number - int clipHeight = (h / numClips); - clipNum = ( (Fl::event_y() ) - y ) / clipHeight; - if (clipNum >= numClips) - clipNum = numClips -1; // fix for clicking the lowest pixel - - return clipNum; -} - int ClipSelector::getLastClipNum() { return clipNum; @@ -342,7 +332,13 @@ int ClipSelector::handle(int event) case FL_PUSH: highlight = 1; { - findClipNum(); + // calculate the clicked clip number + int clipHeight = (h / numClips); + clipNum = ( (Fl::event_y() ) - y ) / clipHeight; + if (clipNum >= numClips) + clipNum = numClips -1; // fix for clicking the lowest pixel + + return clipNum; // handle right clicks: popup menu if ( Fl::event_state(FL_BUTTON3) ) { @@ -362,7 +358,7 @@ int ClipSelector::handle(int event) { "Load" }, { "Save" }, { "Special"}, - { "Beats", 0, 0, 0, FL_SUBMENU | FL_MENU_DIVIDER }, + { "Beats", 0, 0, 0, FL_SUBMENU | FL_MENU_DIVIDER }, RECORD_LENGTH_MENU_ITEM(1), RECORD_LENGTH_MENU_ITEM(2), RECORD_LENGTH_MENU_ITEM(4), @@ -371,15 +367,15 @@ int ClipSelector::handle(int event) RECORD_LENGTH_MENU_ITEM(32), RECORD_LENGTH_MENU_ITEM(64), {0}, - { "Bars to record", 0, 0, 0, FL_SUBMENU | FL_MENU_DIVIDER}, + { "Bars to record", 0, 0, 0, FL_SUBMENU | FL_MENU_DIVIDER}, RECORD_BARS_MENU_ITEM(1), RECORD_BARS_MENU_ITEM(2), RECORD_BARS_MENU_ITEM(4), RECORD_BARS_MENU_ITEM(6), RECORD_BARS_MENU_ITEM(8), - {"Endless", 0, setRecordBarsCb, (void*)-1, FL_MENU_DIVIDER | FL_MENU_RADIO | ((clips[clipNum].getBeatsToRecord() <= 0) ? FL_MENU_VALUE : 0) | (empty ? 0 : FL_MENU_INACTIVE)}, - {"Custom", 0, setRecordBarsCb, (void*)-2, empty ? 0 : FL_MENU_INACTIVE}, - {0}, + {"Endless", 0, setRecordBarsCb, (void*)-1, FL_MENU_DIVIDER | FL_MENU_RADIO | ((clips[clipNum].getBeatsToRecord() <= 0) ? FL_MENU_VALUE : 0) | (empty ? 0 : FL_MENU_INACTIVE)}, + {"Custom", 0, setRecordBarsCb, (void*)-2, empty ? 0 : FL_MENU_INACTIVE}, + {0}, //{ "Record" }, { "Use as tempo" }, { "Rename", 0, 0, 0, FL_MENU_DIVIDER}, @@ -472,18 +468,18 @@ int ClipSelector::handle(int event) void ClipState::setBeats(int numBeats, bool isBeatsToRecord) { if(numBeats > 0) { - beatsText = std::to_string(numBeats); - barsText = std::to_string(numBeats/4); - if(isBeatsToRecord){ - beatsToRecord = numBeats; - beats = 0; - } else { - beats = numBeats; - if(numBeats <= 0) - beatsToRecord = -1; - } + beatsText = std::to_string(numBeats); + barsText = std::to_string(numBeats/4); + if(isBeatsToRecord){ + beatsToRecord = numBeats; + beats = 0; + } else { + beats = numBeats; + if(numBeats <= 0) + beatsToRecord = -1; + } } else - barsText = beatsText = std::string(""); + barsText = beatsText = std::string(""); } } // Avtk diff --git a/src/avtk/clipselector.hxx b/src/avtk/clipselector.hxx index 21ae5f9..55ebcc9 100644 --- a/src/avtk/clipselector.hxx +++ b/src/avtk/clipselector.hxx @@ -69,28 +69,28 @@ public: return beatsToRecord; } - int getBeats(){ - return beats; - } + int getBeats(){ + return beats; + } void setBeats(int numBeats, bool isBeatsToRecord); - const char *getBeatsText() { - return beatsText.c_str(); - } + const char *getBeatsText() { + return beatsText.c_str(); + } - const char *getBarsText() { - return barsText.c_str(); - } + const char *getBarsText() { + return barsText.c_str(); + } private: - GridLogic::State state; - std::string name; - std::string beatsText; - std::string barsText; + GridLogic::State state; + std::string name; + std::string beatsText; + std::string barsText; - int beatsToRecord = -1; - int beats = 0; + int beatsToRecord = -1; + int beats = 0; }; class ClipSelector : public Fl_Button @@ -129,13 +129,11 @@ public: int handle(int event); void resize(int X, int Y, int W, int H); - int findClipNum(); int getLastClipNum(); private: int clipNum; }; - } // Avtk #endif // AVTK_CLIP_SELECTOR_H diff --git a/src/looper.cxx b/src/looper.cxx index 5d1e431..3c34480 100644 --- a/src/looper.cxx +++ b/src/looper.cxx @@ -31,181 +31,180 @@ extern Jack* jack; Looper::Looper(int t) : - AudioProcessor(), - TimeObserver(), - track(t) + AudioProcessor(), + TimeObserver(), + track(t) { - uiUpdateConstant= jack->getSamplerate() / 30.f; - uiUpdateCounter = jack->getSamplerate() / 30.f; + uiUpdateConstant= jack->getSamplerate() / 30.f; + uiUpdateCounter = jack->getSamplerate() / 30.f; - // pre-zero the internal sample - //tmpRecordBuffer = (float*)malloc( sizeof(float) * MAX_BUFFER_SIZE ); - //memset( tmpRecordBuffer, 0, sizeof(float) * MAX_BUFFER_SIZE ); + // pre-zero the internal sample + //tmpRecordBuffer = (float*)malloc( sizeof(float) * MAX_BUFFER_SIZE ); + //memset( tmpRecordBuffer, 0, sizeof(float) * MAX_BUFFER_SIZE ); - for(int i = 0; i < NSCENES; i++ ) { - clips[i] = new LooperClip(track, i); - } + for(int i = 0; i < NSCENES; i++ ) { + clips[i] = new LooperClip(track, i); + } - tmpBuffer.resize( MAX_BUFFER_SIZE ); + tmpBuffer.resize( MAX_BUFFER_SIZE ); - fpb = 22050; + fpb = 22050; - // init faust pitch shift variables - fSamplingFreq = jack->getSamplerate(); - IOTA = 0; + // init faust pitch shift variables + fSamplingFreq = jack->getSamplerate(); + IOTA = 0; - //tmpRecordBuffer.resize(MAX_BUFFER_SIZE); + //tmpRecordBuffer.resize(MAX_BUFFER_SIZE); - for (int i=0; i<65536; i++) - fVec0[i] = 0; - for (int i=0; i<2; i++) - fRec0[i] = 0; - semitoneShift = 0.0f; - windowSize = 1000; - crossfadeSize = 1000; + for (int i=0; i<65536; i++) + fVec0[i] = 0; + for (int i=0; i<2; i++) + fRec0[i] = 0; + semitoneShift = 0.0f; + windowSize = 1000; + crossfadeSize = 1000; } LooperClip* Looper::getClip(int scene) { - return clips[scene]; + return clips[scene]; } void Looper::beat() { - //TODO needed? - //FIXME: Need to keep looperClips in sync when there exists no int N - // such that playSpeed*N==1 -// for(int i=0;igetPlayhead()+1.0; -// long targetFrames = clips[i]->getBeats() * fpb; -// long actualFrames = clips[i]->getActualAudioLength();//getBufferLenght(); -// float playSpeed = 1.0; + //TODO needed? + //FIXME: Need to keep looperClips in sync when there exists no int N + // such that playSpeed*N==1 + // for(int i=0;igetPlayhead()+1.0; + // long targetFrames = clips[i]->getBeats() * fpb; + // long actualFrames = clips[i]->getActualAudioLength();//getBufferLenght(); + // float playSpeed = 1.0; -// if ( targetFrames != 0 && actualFrames != 0 ) -// { -// playSpeed = float(actualFrames) / targetFrames; -// } -// clips[i]->setPlayHead(iph-(iph%fpb)*playSpeed); + // if ( targetFrames != 0 && actualFrames != 0 ) + // { + // playSpeed = float(actualFrames) / targetFrames; + // } + // clips[i]->setPlayHead(iph-(iph%fpb)*playSpeed); -// } + // } } void Looper::setRequestedBuffer(int s, AudioBuffer* ab) { - clips[s]->setRequestedBuffer( ab ); + clips[s]->setRequestedBuffer( ab ); } void Looper::setFpb(int f) { - fpb = f; + fpb = f; } void Looper::process(unsigned int nframes, Buffers* buffers) { - // process each clip individually: this allows for playback of one clip, - // while another clip records. - for ( int clip = 0; clip < NSCENES; clip++ ) { - // handle state of clip, and do what needs doing: - // record into buffer, play from buffer, etc - if ( clips[clip]->recording() ) { - if(clips[clip]->getBeatsToRecord() > 0 && clips[clip]->getBeats() >= clips[clip]->getBeatsToRecord() - 4) - clips[clip]->queuePlay(true); + // process each clip individually: this allows for playback of one clip, + // while another clip records. + for ( int clip = 0; clip < NSCENES; clip++ ) { + // handle state of clip, and do what needs doing: + // record into buffer, play from buffer, etc + if ( clips[clip]->recording() ) { + if(clips[clip]->getBeatsToRecord() > 0 && clips[clip]->getBeats() >= clips[clip]->getBeatsToRecord() - 4) + clips[clip]->queuePlay(true); - if ( clips[clip]->recordSpaceAvailable() < LOOPER_SAMPLES_BEFORE_REQUEST && - !clips[clip]->newBufferInTransit() ) { - EventLooperClipRequestBuffer e( track, clip, clips[clip]->audioBufferSize() + LOOPER_SAMPLES_UPDATE_SIZE); - writeToGuiRingbuffer( &e ); - clips[clip]->newBufferInTransit(true); - } + if ( clips[clip]->recordSpaceAvailable() < LOOPER_SAMPLES_BEFORE_REQUEST && + !clips[clip]->newBufferInTransit() ) { + EventLooperClipRequestBuffer e( track, clip, clips[clip]->audioBufferSize() + LOOPER_SAMPLES_UPDATE_SIZE); + writeToGuiRingbuffer( &e ); + clips[clip]->newBufferInTransit(true); + } - // copy data from input buffer to recording buffer - float* inputL = buffers->audio[Buffers::MASTER_INPUT_L]; - float* inputR = buffers->audio[Buffers::MASTER_INPUT_R]; - clips[clip]->record( nframes, inputL, inputR); - } else if ( clips[clip]->playing() ) { - // copy data into tmpBuffer, then pitch-stretch into track buffer - long targetFrames = clips[clip]->getBeats() * fpb; - long actualFrames = clips[clip]->getActualAudioLength();//getBufferLenght(); - float playSpeed = 1.0; + // copy data from input buffer to recording buffer + float* inputL = buffers->audio[Buffers::MASTER_INPUT_L]; + float* inputR = buffers->audio[Buffers::MASTER_INPUT_R]; + clips[clip]->record( nframes, inputL, inputR); + } else if ( clips[clip]->playing() ) { + // copy data into tmpBuffer, then pitch-stretch into track buffer + long targetFrames = clips[clip]->getBeats() * fpb; + long actualFrames = clips[clip]->getActualAudioLength();//getBufferLenght(); + float playSpeed = 1.0; - if ( targetFrames != 0 && actualFrames != 0 ) { - playSpeed = float(actualFrames) / targetFrames; - } + if ( targetFrames != 0 && actualFrames != 0 ) { + playSpeed = float(actualFrames) / targetFrames; + } - float* outL = buffers->audio[Buffers::SEND_TRACK_0_L + track]; - float* outR = buffers->audio[Buffers::SEND_TRACK_0_R + track]; + float* outL = buffers->audio[Buffers::SEND_TRACK_0_L + track]; + float* outR = buffers->audio[Buffers::SEND_TRACK_0_R + track]; - for(unsigned int i = 0; i < nframes; i++ ) { - // REFACTOR into system that is better than per sample function calls - float tmpL = 0; - float tmpR = 0; - clips[clip]->getSample(playSpeed, &tmpL, &tmpR); + for(unsigned int i = 0; i < nframes; i++ ) { + // REFACTOR into system that is better than per sample function calls + float tmpL = 0; + float tmpR = 0; + clips[clip]->getSample(playSpeed, &tmpL, &tmpR); - float deltaPitch = 12 * log ( playSpeed ) / log (2); - semitoneShift = -deltaPitch; + float deltaPitch = 12 * log ( playSpeed ) / log (2); + semitoneShift = -deltaPitch; - // write the pitch-shifted signal to the track buffer - //FIXME: pitchShift adds delay even for playSpeed = 1.0!! - //we should use something better (e.g librubberband) - if(0) { //playSpeed!=1.0f) { - pitchShift( 1, &tmpL, &outL[i] ); - pitchShift( 1, &tmpR, &outR[i] ); - } else { - outL[i]+=tmpL; - outR[i]+=tmpR; - } - } + // write the pitch-shifted signal to the track buffer + //FIXME: pitchShift adds delay even for playSpeed = 1.0!! + //we should use something better (e.g librubberband) + if(0) { //playSpeed!=1.0f) { + pitchShift( 1, &tmpL, &outL[i] ); + pitchShift( 1, &tmpR, &outR[i] ); + } else { + outL[i]+=tmpL; + outR[i]+=tmpR; + } + } - //printf("Looper %i playing(), speed = %f\n", track, playSpeed ); + //printf("Looper %i playing(), speed = %f\n", track, playSpeed ); - if ( uiUpdateCounter > uiUpdateConstant ) { - jack->getControllerUpdater()->setTrackSceneProgress(track, clip, clips[clip]->getProgress() ); - uiUpdateCounter = 0; - } - uiUpdateCounter += nframes; - } + if ( uiUpdateCounter > uiUpdateConstant ) { + jack->getControllerUpdater()->setTrackSceneProgress(track, clip, clips[clip]->getProgress() ); + uiUpdateCounter = 0; + } + uiUpdateCounter += nframes; + } - } + } } void Looper::resetTimeState() { - for(int i=0; isetPlayHead(0.0); + for(int i=0; isetPlayHead(0.0); } void Looper::pitchShift(int count, float* input, float* output) { - float fSlow0 = windowSize; - float fSlow1 = ((1 + fSlow0) - powf(2,(0.08333333333333333f * semitoneShift))); - float fSlow2 = (1.0f / crossfadeSize); - float fSlow3 = (fSlow0 - 1); - float* input0 = &input[0]; - //float* output0 = &output[0]; + float fSlow0 = windowSize; + float fSlow1 = ((1 + fSlow0) - powf(2,(0.08333333333333333f * semitoneShift))); + float fSlow2 = (1.0f / crossfadeSize); + float fSlow3 = (fSlow0 - 1); + float* input0 = &input[0]; + //float* output0 = &output[0]; - for (int i=0; i