Skip to content

Commit

Permalink
issue #117: Curved cv input problem - add option to disable multi cv …
Browse files Browse the repository at this point in the history
…recording
  • Loading branch information
mebitek committed May 20, 2024
1 parent c5ddde9 commit 99e4f5b
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/apps/sequencer/engine/CurveTrackEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -240,11 +240,16 @@ void CurveTrackEngine::updateOutput(uint32_t relativeTick, uint32_t divisor) {
}

bool CurveTrackEngine::isRecording() const {
return
bool val =
_engine.state().recording() &&
_curveTrack.curveCvInput() != Types::CurveCvInput::Off;
//&&
//_model.project().selectedTrackIndex() == _track.trackIndex();

if (!_track.curveTrack().useMultiCvRec()) {
return val && _model.project().selectedTrackIndex() == _track.trackIndex();
}
return val;
}

void CurveTrackEngine::updateRecordValue() {
Expand Down
3 changes: 3 additions & 0 deletions src/apps/sequencer/model/CurveTrack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ void CurveTrack::clear() {
setCurveCvInput(Types::CurveCvInput::Off);
setMin(0);
setMax(CurveSequence::Max::max());
setUseMultiCvRec(true);

for (auto &sequence : _sequences) {
sequence.clear();
Expand All @@ -64,6 +65,7 @@ void CurveTrack::write(VersionedSerializedWriter &writer) const {
writer.write(_max);
writeArray(writer, _sequences);
writer.write(_patternFollow);
writer.write(_useMultiCv);
}

void CurveTrack::read(VersionedSerializedReader &reader) {
Expand All @@ -81,4 +83,5 @@ void CurveTrack::read(VersionedSerializedReader &reader) {
reader.read(_max, ProjectVersion::Version37);
readArray(reader, _sequences);
reader.read(_patternFollow, ProjectVersion::Version39);
reader.read(_useMultiCv, ProjectVersion::Version39);
}
17 changes: 17 additions & 0 deletions src/apps/sequencer/model/CurveTrack.h
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,22 @@ class CurveTrack : public BaseTrack, public BaseTrackPatternFollow {
str(Types::curveCvInput(_curveCvInput));
}

// use multi cv recording
bool useMultiCvRec() const { return _useMultiCv;}

void editUseMultiCvRec(int value) {
_useMultiCv = value == 1;
}

void printUseMultiCvRec(StringBuilder &str) const {
if (_useMultiCv) str("On");
else str("Off");
}

void setUseMultiCvRec(bool enabled) {
_useMultiCv = enabled;
}

// min

float min() const { return _min.get(isRouted(Routing::Target::CurveMin)); }
Expand Down Expand Up @@ -305,6 +321,7 @@ class CurveTrack : public BaseTrack, public BaseTrackPatternFollow {
Routable<float> _max;

Types::CurveCvInput _curveCvInput;
bool _useMultiCv;

CurveSequenceArray _sequences;

Expand Down
8 changes: 8 additions & 0 deletions src/apps/sequencer/ui/model/CurveTrackListModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ class CurveTrackListModel : public RoutableListModel {
GateProbabilityBias,
PatternFollow,
CurveCvInput,
MultiCvRec,
Min,
Max,
Last
Expand All @@ -81,6 +82,7 @@ class CurveTrackListModel : public RoutableListModel {
case ShapeProbabilityBias: return "Shape P. Bias";
case GateProbabilityBias: return "Gate P. Bias";
case PatternFollow: return "Pattern Follow";
case MultiCvRec: return "Multi Cv Rec";
case CurveCvInput: return "Curve CV Input";
case Min: return "Min";
case Max: return "Max";
Expand Down Expand Up @@ -125,6 +127,9 @@ class CurveTrackListModel : public RoutableListModel {
case PatternFollow:
_track->printPatternFollow(str);
break;
case MultiCvRec:
_track->printUseMultiCvRec(str);
break;
case CurveCvInput:
_track->printCurveCvInput(str);
break;
Expand Down Expand Up @@ -170,6 +175,9 @@ class CurveTrackListModel : public RoutableListModel {
case PatternFollow:
_track->editPatternFollow(value, shift);
break;
case MultiCvRec:
_track->editUseMultiCvRec(value);
break;
case CurveCvInput:
_track->editCurveCvInput(value, shift);
break;
Expand Down

0 comments on commit 99e4f5b

Please sign in to comment.