From 48802f14ad064f044ed71af98e770ecb96fd27b7 Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Mon, 12 Feb 2018 23:54:33 +0000 Subject: [PATCH 01/15] meson: add meson build for luppp This allows easier and faster building, with less complexity and better defaults than the previoius CMake based system. Signed-off-by: Harry van Haaren --- meson.build | 36 ++++++++++++++++++++++++++++++++++++ src/avtk/meson.build | 1 + src/cjson/meson.build | 1 + src/controller/meson.build | 6 ++++++ src/dsp/meson.build | 1 + src/meson.build | 32 ++++++++++++++++++++++++++++++++ src/observer/meson.build | 1 + src/state/meson.build | 1 + 8 files changed, 79 insertions(+) create mode 100644 meson.build create mode 100644 src/avtk/meson.build create mode 100644 src/cjson/meson.build create mode 100644 src/controller/meson.build create mode 100644 src/dsp/meson.build create mode 100644 src/meson.build create mode 100644 src/observer/meson.build create mode 100644 src/state/meson.build diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..4d46d8a --- /dev/null +++ b/meson.build @@ -0,0 +1,36 @@ +project('openav_luppp', ['c','cpp']) + +conf_data = configuration_data() +conf_data.set('version', '1.1.1') + +#add_project_arguments('-std=c99', language : 'c') +#add_project_arguments('-std=c++11', language : 'cpp') +add_project_arguments('-Wno-unused-variable', language : 'cpp') +add_project_arguments('-Wno-reorder', language : 'cpp') +add_project_arguments('-Wno-sign-compare', language : 'cpp') + +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') + +luppp_src = [] +subdir('src') + + +dep_names = [ + 'ntk', + 'cairo', + 'liblo', + 'jack', + 'sndfile', + 'samplerate', + 'x11' + ] +deps = [] + +foreach dep : dep_names + deps += dependency(dep) +endforeach + +# compile the main project +executable('luppp', luppp_src, + dependencies: deps) diff --git a/src/avtk/meson.build b/src/avtk/meson.build new file mode 100644 index 0000000..66860a8 --- /dev/null +++ b/src/avtk/meson.build @@ -0,0 +1 @@ +luppp_src += files( 'bindings.cxx', 'volume.cxx', 'clipselector.cxx') diff --git a/src/cjson/meson.build b/src/cjson/meson.build new file mode 100644 index 0000000..3d44a70 --- /dev/null +++ b/src/cjson/meson.build @@ -0,0 +1 @@ +luppp_src += files('cJSON.c') diff --git a/src/controller/meson.build b/src/controller/meson.build new file mode 100644 index 0000000..f240e87 --- /dev/null +++ b/src/controller/meson.build @@ -0,0 +1,6 @@ +luppp_src += files( + 'controller.cxx', + 'genericmidi.cxx', + 'guicontroller.cxx', + 'nonseq.cxx' +) diff --git a/src/dsp/meson.build b/src/dsp/meson.build new file mode 100644 index 0000000..c84e1a3 --- /dev/null +++ b/src/dsp/meson.build @@ -0,0 +1 @@ +luppp_src += files('dsp_sidechain_gain.cxx') diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..1af9470 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,32 @@ +luppp_src = files( + 'audiobuffer.cxx', + 'controllerupdater.cxx', + 'debug.cxx', + 'diskreader.cxx', + 'diskwriter.cxx', + 'event.cxx', + 'eventhandlerdsp.cxx', + 'eventhandlergui.cxx', + 'gaudioeditor.cxx', + 'gmastertrack.cxx', + 'goptions.cxx', + 'gridlogic.cxx', + 'gtrack.cxx', + 'gui.cxx', + 'jack.cxx', + 'jacksendreturn.cxx', + 'logic.cxx', + 'looperclip.cxx', + 'looper.cxx', + 'main.cxx', + 'metronome.cxx', + 'timemanager.cxx', + 'trackoutput.cxx' + ) + +subdir('cjson') +subdir('dsp') +subdir('controller') +subdir('observer') +subdir('state') +subdir('avtk') diff --git a/src/observer/meson.build b/src/observer/meson.build new file mode 100644 index 0000000..8016da9 --- /dev/null +++ b/src/observer/meson.build @@ -0,0 +1 @@ +luppp_src += files('midi.cxx', 'time.cxx') diff --git a/src/state/meson.build b/src/state/meson.build new file mode 100644 index 0000000..236ada8 --- /dev/null +++ b/src/state/meson.build @@ -0,0 +1 @@ +luppp_src += files('state.cxx', 'stately.cxx') From f34a44e7759f1f84da56263cba183a9ac108382e Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Sat, 3 Mar 2018 21:16:21 +0000 Subject: [PATCH 02/15] meson: add tests and option to disable them This enables building the Luppp unit tests with Meson, and adds an option to disable building those tests. For a release, the option should probably be off - although currently it has no significant impact on the result. Signed-off-by: Harry van Haaren --- meson.build | 12 +++++++++--- meson_options.txt | 1 + src/meson.build | 4 ++++ src/tests/meson.build | 5 +++++ 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 meson_options.txt create mode 100644 src/tests/meson.build diff --git a/meson.build b/meson.build index 4d46d8a..230eaac 100644 --- a/meson.build +++ b/meson.build @@ -1,10 +1,16 @@ -project('openav_luppp', ['c','cpp']) +project( 'openav_luppp', ['c','cpp'], + default_options : [ + 'cpp_std=c++11', + ]) conf_data = configuration_data() conf_data.set('version', '1.1.1') -#add_project_arguments('-std=c99', language : 'c') -#add_project_arguments('-std=c++11', language : 'cpp') + +if(get_option('tests') == true) + add_project_arguments('-DBUILD_TESTS', language : 'cpp') +endif + add_project_arguments('-Wno-unused-variable', language : 'cpp') add_project_arguments('-Wno-reorder', language : 'cpp') add_project_arguments('-Wno-sign-compare', language : 'cpp') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..701b984 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1 @@ +option('tests', type : 'boolean', value : true, description : 'Build tests') diff --git a/src/meson.build b/src/meson.build index 1af9470..7e02ce8 100644 --- a/src/meson.build +++ b/src/meson.build @@ -30,3 +30,7 @@ subdir('controller') subdir('observer') subdir('state') subdir('avtk') + +if(get_option('tests') == true) + subdir('tests') +endif diff --git a/src/tests/meson.build b/src/tests/meson.build new file mode 100644 index 0000000..2a5604d --- /dev/null +++ b/src/tests/meson.build @@ -0,0 +1,5 @@ +luppp_src += files( + 'diskreadertest.cxx', + 'diskwritertest.cxx', + 'goptionstest.cxx', + 'gridlogictests.cxx') From bc8e55b036f068e33a607eac6bbbae53aec6d071 Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Sun, 4 Mar 2018 02:13:52 +0000 Subject: [PATCH 03/15] meson: generate version.hxx on compile This fixes local builds (re-generates version.hxx if it gets removed), ninja dist now works correctly too. Signed-off-by: Harry van Haaren --- meson.build | 2 +- src/meson.build | 4 ++++ src/version.hxx.in | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/version.hxx.in diff --git a/meson.build b/meson.build index 230eaac..4fe900c 100644 --- a/meson.build +++ b/meson.build @@ -38,5 +38,5 @@ foreach dep : dep_names endforeach # compile the main project -executable('luppp', luppp_src, +executable('luppp', luppp_src + [version_hxx], dependencies: deps) diff --git a/src/meson.build b/src/meson.build index 7e02ce8..d350343 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,3 +1,7 @@ +version_hxx = vcs_tag( + input : 'version.hxx.in', + output : 'version.hxx') + luppp_src = files( 'audiobuffer.cxx', 'controllerupdater.cxx', diff --git a/src/version.hxx.in b/src/version.hxx.in new file mode 100644 index 0000000..9f82d90 --- /dev/null +++ b/src/version.hxx.in @@ -0,0 +1 @@ +#define GIT_VERSION "@VCS_TAG@" From 5692d5123dc42820ece7878794ec7144ff499f1f Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Tue, 13 Feb 2018 23:06:14 +0000 Subject: [PATCH 04/15] looperclip: use [] to access vector not .at() Optimize away a bunch of bad performance Signed-off-by: Harry van Haaren --- src/looperclip.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/looperclip.cxx b/src/looperclip.cxx index e193c6a..5b70f75 100644 --- a/src/looperclip.cxx +++ b/src/looperclip.cxx @@ -430,9 +430,9 @@ void LooperClip::getSample(float playSpeed, float* L, float* R) std::vector& vL = _buffer->getDataL(); std::vector& vR = _buffer->getDataR(); - *L = vL.at(_playhead); - *R = vR.at(_playhead); - _playhead +=playSpeed; + *L = vL[_playhead]; + *R = vR[_playhead]; + _playhead += playSpeed; } else { *L = 0.f; *R = 0.f; From 683f80027cc2b24237a9fa27e15fd3fe3cc18824 Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Fri, 2 Mar 2018 00:10:41 +0000 Subject: [PATCH 05/15] jacksendreturn: fix whitespace issues and cleanup No code functionality changes here Signed-off-by: Harry van Haaren --- src/jacksendreturn.cxx | 26 +++++++++++--------------- src/looper.cxx | 2 +- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/jacksendreturn.cxx b/src/jacksendreturn.cxx index 6b87e99..d803f4c 100644 --- a/src/jacksendreturn.cxx +++ b/src/jacksendreturn.cxx @@ -36,10 +36,12 @@ void JackSendReturn::process(unsigned int nframes, Buffers *buffers) //Process previous AudioProcessor m_previousProcessor->process(nframes,buffers); - float* sendL=(float*)jack_port_get_buffer(m_sendport_l,(jack_nframes_t)(buffers->nframes)); - float* sendR=(float*)jack_port_get_buffer(m_sendport_r,(jack_nframes_t)(buffers->nframes)); - float* retL=(float*)jack_port_get_buffer(m_returnport_l,(jack_nframes_t)(buffers->nframes)); - float* retR=(float*)jack_port_get_buffer(m_returnport_r,(jack_nframes_t)(buffers->nframes)); + + float* sendL=(float*)jack_port_get_buffer(m_sendport_l, (jack_nframes_t)(buffers->nframes)); + float* sendR=(float*)jack_port_get_buffer(m_sendport_r, (jack_nframes_t)(buffers->nframes)); + float* retL =(float*)jack_port_get_buffer(m_returnport_l,(jack_nframes_t)(buffers->nframes)); + float* retR =(float*)jack_port_get_buffer(m_returnport_r,(jack_nframes_t)(buffers->nframes)); + if(offset) { sendL+=offset; sendR+=offset; @@ -50,11 +52,7 @@ void JackSendReturn::process(unsigned int nframes, Buffers *buffers) for(int i=0; inframes) -// { -// cout<nframes); @@ -62,13 +60,11 @@ void JackSendReturn::process(unsigned int nframes, Buffers *buffers) if(m_active) { memcpy(rettrackL,retL,nframes*sizeof(float)); memcpy(rettrackR,retR,nframes*sizeof(float)); - } + } else { - memcpy(rettrackL, - sendtrackL,nframes*sizeof(float)); - memcpy(rettrackR, - sendtrackR,nframes*sizeof(float)); - } + memcpy(rettrackL, sendtrackL,nframes*sizeof(float)); + memcpy(rettrackR, sendtrackR,nframes*sizeof(float)); + } m_counter+=nframes; } diff --git a/src/looper.cxx b/src/looper.cxx index 71af0d9..a79892b 100644 --- a/src/looper.cxx +++ b/src/looper.cxx @@ -146,7 +146,7 @@ void Looper::process(unsigned int nframes, Buffers* buffers) // 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(playSpeed!=1.0f) { + if(0) { //playSpeed!=1.0f) { pitchShift( 1, &tmpL, &outL[i] ); pitchShift( 1, &tmpR, &outR[i] ); } else { From 3fd73ac58c950780733f484d72b45fb036caae48 Mon Sep 17 00:00:00 2001 From: vale981 Date: Mon, 26 Mar 2018 21:51:10 +0200 Subject: [PATCH 06/15] Space to control special track. (#205) Space to control special track, this enables you to use an ordinary pc keyboard as foot pedal! Thanks @vale981, I squashed the two patches as it was a fixup :) --- src/gui.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/gui.cxx b/src/gui.cxx index 3aaf3cd..f1e692e 100644 --- a/src/gui.cxx +++ b/src/gui.cxx @@ -880,7 +880,17 @@ int Gui::keyboardHandler(int event) } } - // keyboard arrows to special key mapping + // keyboard arrows / space to special key mapping + if ( Fl::event_key( 32 ) && Fl::event_state( FL_SHIFT ) ) { //spacebar + shift + EventGridState e( gui->specialTrack, gui->specialScene, GridLogic::STATE_EMPTY ); + writeToDspRingbuffer( &e ); + return 1; + } + if ( Fl::event_key( 32 ) ) { //spacebar + EventGridEvent e( gui->specialTrack, gui->specialScene, true ); + writeToDspRingbuffer( &e ); + return 1; + } if ( Fl::event_key( FL_Left ) ) { EventGridSelectNewChosen e( gui->specialTrack-1, gui->specialScene ); writeToDspRingbuffer( &e ); From 2c43704b8f4cfdbf1bca0522d5bce9c974782c6d Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Mon, 26 Mar 2018 20:28:11 +0200 Subject: [PATCH 07/15] set tempo by typing number Closes #206, thanks @georgkrause for the PR --- src/gmastertrack.cxx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/gmastertrack.cxx b/src/gmastertrack.cxx index e61f3dd..dfbe255 100644 --- a/src/gmastertrack.cxx +++ b/src/gmastertrack.cxx @@ -169,8 +169,17 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data) } else if ( strcmp( w->label(), "Tap" ) == 0 ) { - EventTimeTempoTap e; - writeToDspRingbuffer( &e ); + if ( Fl::event_button() == FL_RIGHT_MOUSE ) { + const char* answer = fl_input("Enter BPM value: "); + if(answer) { + int bpm = atoi(answer); + EventTimeBPM e = EventTimeBPM( bpm ); + writeToDspRingbuffer( &e ); + } + } else { + EventTimeTempoTap e; + writeToDspRingbuffer( &e ); + } } else { LUPPP_WARN("Error: unknown command string"); } From fe1b68a069bab75dfc5fc92b3c4f05999a5aa48f Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Sat, 31 Mar 2018 14:30:24 +0200 Subject: [PATCH 08/15] reduce magic numbers on calculating tempo limits --- src/config.hxx | 4 ++++ src/gmastertrack.cxx | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/config.hxx b/src/config.hxx index bc035ab..b238204 100644 --- a/src/config.hxx +++ b/src/config.hxx @@ -51,6 +51,10 @@ #define NSCENES 10 #define MAX_BUFFER_SIZE 1024 +/// TEMPO +#define MIN_TEMPO 60 +#define MAX_TEMPO 220 + #define CONTROLLERS_PREALLOC 20 // nsamples remaining during recording before Looper requests larger buffer diff --git a/src/gmastertrack.cxx b/src/gmastertrack.cxx index dfbe255..080c485 100644 --- a/src/gmastertrack.cxx +++ b/src/gmastertrack.cxx @@ -23,7 +23,7 @@ static void gmastertrack_tempoDial_callback(Fl_Widget *w, void *data) { Avtk::Dial* b = (Avtk::Dial*)w; - float bpm = (int)(b->value() * 160.f + 60); + float bpm = (int)(b->value() * (float)(MAX_TEMPO - MIN_TEMPO) + MIN_TEMPO); if(std::fabs(bpm-round(bpm))) { LUPPP_WARN("%f",bpm); } @@ -269,7 +269,7 @@ GMasterTrack::GMasterTrack(int x, int y, int w, int h, const char* l ) : void GMasterTrack::setBpm( int b ) { bpm = b; - tempoDial.value( ( bpm - 60 ) / 160.f ); + tempoDial.value( ( bpm - MIN_TEMPO ) / (float)(MAX_TEMPO-MIN_TEMPO) ); std::stringstream s; s << bpm; tempoDial.copy_label( s.str().c_str() ); From ac6d1fc4cc24848a6896e01d5a262f1cd0ce460f Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Sat, 31 Mar 2018 15:05:16 +0200 Subject: [PATCH 09/15] add sanity check for bpm value --- src/gmastertrack.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gmastertrack.cxx b/src/gmastertrack.cxx index 080c485..b7b46ad 100644 --- a/src/gmastertrack.cxx +++ b/src/gmastertrack.cxx @@ -173,8 +173,11 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data) const char* answer = fl_input("Enter BPM value: "); if(answer) { int bpm = atoi(answer); - EventTimeBPM e = EventTimeBPM( bpm ); - writeToDspRingbuffer( &e ); + + if ( bpm >= MIN_TEMPO && bpm <= MAX_TEMPO) { + EventTimeBPM e = EventTimeBPM( bpm ); + writeToDspRingbuffer( &e ); + } } } else { EventTimeTempoTap e; From fe77d3ca63e2d3d98dcfc548e202239d6b8f6ceb Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Sat, 31 Mar 2018 15:22:33 +0200 Subject: [PATCH 10/15] add hint for bpm limits --- src/gmastertrack.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gmastertrack.cxx b/src/gmastertrack.cxx index b7b46ad..5e8bb94 100644 --- a/src/gmastertrack.cxx +++ b/src/gmastertrack.cxx @@ -170,7 +170,9 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data) } else if ( strcmp( w->label(), "Tap" ) == 0 ) { if ( Fl::event_button() == FL_RIGHT_MOUSE ) { - const char* answer = fl_input("Enter BPM value: "); + string question = "Enter BPM value (between " + to_string(MIN_TEMPO) + " and " + + to_string(MAX_TEMPO) + "):"; + const char* answer = fl_input(question.c_str()); if(answer) { int bpm = atoi(answer); From 31a6de2b2751a7c7a60c07ee4f6a05810ab648bb Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Sat, 31 Mar 2018 20:37:48 +0200 Subject: [PATCH 11/15] fix formatting --- src/gmastertrack.cxx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gmastertrack.cxx b/src/gmastertrack.cxx index 5e8bb94..a100d7f 100644 --- a/src/gmastertrack.cxx +++ b/src/gmastertrack.cxx @@ -170,8 +170,7 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data) } else if ( strcmp( w->label(), "Tap" ) == 0 ) { if ( Fl::event_button() == FL_RIGHT_MOUSE ) { - string question = "Enter BPM value (between " + to_string(MIN_TEMPO) + " and " - + to_string(MAX_TEMPO) + "):"; + string question = "Enter BPM value (between " + to_string(MIN_TEMPO) + " and " + to_string(MAX_TEMPO) + "):"; const char* answer = fl_input(question.c_str()); if(answer) { int bpm = atoi(answer); @@ -274,7 +273,7 @@ GMasterTrack::GMasterTrack(int x, int y, int w, int h, const char* l ) : void GMasterTrack::setBpm( int b ) { bpm = b; - tempoDial.value( ( bpm - MIN_TEMPO ) / (float)(MAX_TEMPO-MIN_TEMPO) ); + tempoDial.value( ( bpm - MIN_TEMPO ) / (float)(MAX_TEMPO - MIN_TEMPO) ); std::stringstream s; s << bpm; tempoDial.copy_label( s.str().c_str() ); From 06d88ff7f5e86aaed884eaf8cf5e8e80d1d02dca Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Sun, 1 Apr 2018 09:41:30 +0200 Subject: [PATCH 12/15] Clean up string stuff --- src/gmastertrack.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gmastertrack.cxx b/src/gmastertrack.cxx index a100d7f..a25106a 100644 --- a/src/gmastertrack.cxx +++ b/src/gmastertrack.cxx @@ -170,8 +170,7 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data) } else if ( strcmp( w->label(), "Tap" ) == 0 ) { if ( Fl::event_button() == FL_RIGHT_MOUSE ) { - string question = "Enter BPM value (between " + to_string(MIN_TEMPO) + " and " + to_string(MAX_TEMPO) + "):"; - const char* answer = fl_input(question.c_str()); + const char* answer = fl_input("Enter BPM value (range %d and %d):", 0, MIN_TEMPO, MAX_TEMPO); if(answer) { int bpm = atoi(answer); From 982dd05708ec2b82d314778dbc96524b6528a305 Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Sun, 1 Apr 2018 21:04:30 +0200 Subject: [PATCH 13/15] found two more hard coded bpm limits --- src/controller/genericmidi.cxx | 2 +- src/timemanager.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/controller/genericmidi.cxx b/src/controller/genericmidi.cxx index b729678..78ca8b3 100644 --- a/src/controller/genericmidi.cxx +++ b/src/controller/genericmidi.cxx @@ -547,7 +547,7 @@ void GenericMIDI::midi(unsigned char* midi) break; case Event::TIME_BPM: // FIXME: quick-fix for "ZeroOne" type value -> BPM range - jack->getLogic()->setBpm( value * 160 + 60 ); + jack->getLogic()->setBpm( value * (MAX_TEMPO - MIN_TEMPO) + MIN_TEMPO ); break; case Event::METRONOME_ACTIVE: jack->getLogic()->metronomeEnable( b->active ); diff --git a/src/timemanager.cxx b/src/timemanager.cxx index 1a262d3..60bc9b2 100644 --- a/src/timemanager.cxx +++ b/src/timemanager.cxx @@ -82,7 +82,7 @@ void TimeManager::setBpm(float bpm) void TimeManager::setBpmZeroOne(float b) { - setBpm( b * 160 + 60 ); // 60 - 220 + setBpm( b * (MAX_TEMPO - MIN_TEMPO) + MIN_TEMPO ); // 60 - 220 } From dc0bf938e8c4794a7c02bd8895a9ab1fff2fc107 Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Mon, 2 Apr 2018 16:27:54 +0200 Subject: [PATCH 14/15] remove hardcoded clip numbers --- src/avtk/clipselector.cxx | 2 +- src/avtk/clipselector.hxx | 3 +-- src/looper.cxx | 2 +- src/looper.hxx | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/avtk/clipselector.cxx b/src/avtk/clipselector.cxx index b0ab6bf..5b6fccb 100644 --- a/src/avtk/clipselector.cxx +++ b/src/avtk/clipselector.cxx @@ -45,7 +45,7 @@ ClipSelector::ClipSelector( int _x, int _y, int _w, int _h, _master = master; if ( _master ) { - for(int i = 0; i < 10; i++ ) { + for(int i = 0; i < NSCENES; i++ ) { stringstream s; s << "Scene " << i + 1; clips[i].setName( s.str() ); diff --git a/src/avtk/clipselector.hxx b/src/avtk/clipselector.hxx index 35ba47d..001db14 100644 --- a/src/avtk/clipselector.hxx +++ b/src/avtk/clipselector.hxx @@ -77,8 +77,7 @@ public: int ID; - // FIXME: NSCENES? - static const int numClips = 10; + static const int numClips = NSCENES; ClipState clips[numClips]; /// indicates if a clip is the "special" clip diff --git a/src/looper.cxx b/src/looper.cxx index a79892b..ad376d1 100644 --- a/src/looper.cxx +++ b/src/looper.cxx @@ -42,7 +42,7 @@ Looper::Looper(int t) : //tmpRecordBuffer = (float*)malloc( sizeof(float) * MAX_BUFFER_SIZE ); //memset( tmpRecordBuffer, 0, sizeof(float) * MAX_BUFFER_SIZE ); - for(int i = 0; i < 10; i++ ) { + for(int i = 0; i < NSCENES; i++ ) { clips[i] = new LooperClip(track, i); } diff --git a/src/looper.hxx b/src/looper.hxx index 5bc3720..2f37814 100644 --- a/src/looper.hxx +++ b/src/looper.hxx @@ -70,7 +70,7 @@ private: int fpb; //vector tmpRecordBuffer; - LooperClip* clips[10]; + LooperClip* clips[NSCENES]; // Pitch Shifting void pitchShift(int count, float* input, float* output); From 0427fca96d934ee57789e7a055859c3ca8a5a6cf Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Mon, 2 Apr 2018 16:40:35 +0200 Subject: [PATCH 15/15] one more hard coded scene number --- src/avtk/avtk_unit.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/avtk/avtk_unit.h b/src/avtk/avtk_unit.h index c2626c8..935c0fd 100644 --- a/src/avtk/avtk_unit.h +++ b/src/avtk/avtk_unit.h @@ -76,7 +76,7 @@ public: clips[5].state = UnitState::UNIT_STOPPING; } - static const int numClips = 10; + static const int numClips = NSCENES; UnitState clips[numClips]; bool mouseOver;