-
-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New 'Launch Exclusively' Option for Clip Sections #3213
New 'Launch Exclusively' Option for Clip Sections #3213
Conversation
section with numRepetions == -1, which is the indicator that a clip is Launch Non-Exclusively.
Here is the song used in testing. |
Open Issues:
|
Yeah maybe change it to "plan non exclusively"? I think that makes it clearer that it doesn't only refer to launches. Additionally I think this should be a new mode rather than a change of the existing mode since this removes the ability to have a clip which starts on its own and ends on section switch For your open issues 2 and 3 both sound good to me! |
Open Issue (1): Left existing label for 'Launch Non-exclusively' alone. Added new mode 'Launch Exclusively'. |
numRepeats. Launch Non-exclusively remains as it was.
Updated test song configuration with added 'Launch Exclusively' mode. |
Video playback of testing song: |
Code lgtm. Before we merge it needs user facing docs under community features to explain what it's for and how to use it effectively though! |
Retested and found defect that I'm currently trying to resolve. Clips that 'Launch Exclusively' will not shut off except at the end of the song. |
I've completed a refactor of the strategy for implementing this LE (Launch Exclusively) section. I've done a better job contrasting the functionality between an LE section with the original LNE (Launch Non-Exclusively) section. The strategy I had before where the code would ignore clips with numRepetitions=-2 during traversal across the song's list of clips meant that the LE clip could never be launched or stopped, yielding the wrong interpretation of the word 'Exclusively'. Starting over. I've concentrated the focus around when and how the variable lastSectionArmed is set. This variable is left untouched when the launch event being processed is from an LE section or clip. A clip in an LE section will launch or stop without affecting the arming of other sections. In the opposite direction any other launch event will launch and stop without affecting the status of the LE section. Contrast this behavior with LNE clips after launch that cause other clips to repeat infinitely or LNE clips that arm and stop playing when another section launches. The second change made to code is the logic that gets the next section to arm. With SONG ROW VIEW the clips are ordered bottom to top and the next section to launch after n number of repeats is c - 1. With SONG GRID VIEW the clips are ordered top to bottom by section number and the next section to launch is c + 1. When either of these next sections is an LE section, the code now skips over that section to find one not an LE section. A new testing plan includes launching and muting the LE clip. Tests conducted against an LNE section are included to contrast results between the two options. Tests using the SONG GRID VIEW are also included. |
Testing Plan
Setup (Using same song as above, all test results above are still valid)
|
In all the tests cases above, section 2 is set to repeat twice and end the song, as there are no more normal sections that follow in SONG ROW view. Both Section 2 and section 3 are FG signaling they are about to stop. If I change section 2 to repeat infinitely the flashing goes away. Section 2 and 3 are solid green. Then when section 1 is armed the flashing begins and then stops once section 2 is launched. This makes testing the visual UI slightly easier to comprehend. New test case:
|
I've completed my development and testing on this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Structure looks good, if you replace the magic numbers with constants so it's more readable then I'm good to merge it
e708ad7
A new option LE (Launch Exclusively), isolates the arming of a Clip Section from all other launch activity. This option is found to the left of option LNE (Launch Non-Exclusively) when selecting the section's number of repetitions:
AUDITION-HOLD-->SELECT-ENC-->TURN-LEFT
All section launch events leave untouched the launch status of LE sections. In contrast, LNE sections arm and turn off when a new section launches. LNE sections armed with another section will have that section repeat infinitely and ignore its set number of repetitions.
TEST PLAN: A link to the song XML used in this test plan can be found in a comment link below.
SETUP:
Section 3, Launch Exclusively, Clip 7
Section 4, Launch Non-exclusively, Clip 6
Section 1, repeat 2, Clips 4 and 5, Fill 3
Section 2, repeat 2, Clips 1 and 2, Fill 0
START: Several ways to start. One way is to arm section (3) and press PLAY, or alternatively section (1) or section (2) can be armed or PLAY can start with no clips active. Note the difference between arming a clip versus arming a section. If any tracks are armed individually or the song is loaded from disk with clips already armed, then these clips will loop infinitely and not queue the transition to the next section.
LAUNCH: Launch (3). After play starts, launch section (1). Drums in (3) continue. FILL Instrument in section (1) does a walk-up bass line. Section (1) begins. Drum track (3) still ON. Instrument fill played once and now is OFF. Section (2) is flashing red and Section (1) is flashing green. OLED is reporting 2 Bars Remaining. Instrument Fill on Section (2) plays during the last bar of the repeat before (2) launches.
STOP: After section (2) launches, the 'exclusive' section (3) is NOT flashing green. The section (2) instruments are flashing green. If left to complete 2 repetitions, then all clips will stop.
REPEAT: However, if section (1) is armed to launch again, the non-exclusive section (3) button becomes solid green and continues to play. The section (1) flashes green. This effectively repeats step number 4) above.
TEST NON-EXCLUSIVELY: Launch section (4) after (1) has launched. Section (1) is flashing green while playing for its two-bar repeat. Section (4) flashes red for one bar and green for the second. It turns off when section (2) launches.
TEST SONG FILE SAVE: When song saveed to disk, a section's numRepeats values allows numbers in the range -2 to 9999.
The same behavior was observed to occur in Session Grid View.