-
-
Notifications
You must be signed in to change notification settings - Fork 111
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
NavigationView #3320
NavigationView #3320
Conversation
overlaying the BPM. Display mode degree as a roman numeral instead of the church modes names.
I have moved the Remaining Countdown 'cue' to appear at the upper left corner of the OLED display overlaying the BPM. Changing the tempo when a cue is displayed will show the change as a popup. I changed the display of scale from church modes names to the mode degree as a roman numeral. Instead of Dorian there is a 'II', for Phrygian there is 'III'. Instead of Lydian there is 'IV' and for Mixolydian there is a 'V'. Instead of Minor there is 'VI'. The exotic scales like melodic minor, harmonic minor and pentatonic all still use their scale names. |
3850762
to
c1e9dd4
Compare
I don't think this is going to work for automation view. Try scrolling to the patch cables in automation view and see how they're rendered on the display. If you have two sources and a destination there won't be enough space to write out the patch cable + the potential left and right values Also my personal preference is to keep automation view as is -- Regarding the horizontal scrolling I think we should be maintaining the current format displayed which is: 1:1:1 -- I also feel like we should not enforce all these changes on people as people have already complained about a "cluttered display" with just the song view additions of BPM and Scale. People want the ability to have a streamlined display. We were recently discussing adding a toggle to remove the song view additions. So we would need a way of toggling / configuring what is on the display through the default menu, both for song view and clip view. -- Re scales: I think removing the names in favour of Roman numerals is going to be confusing as that is what people are used to. |
I withdraw this PR. |
NavigationView
There are three things to remember while navigating the rows and columns of the Deluge UI, the current bar, the current subdivision and the key/scale. Navigating between different Clip Views to Song View to Arranger View to Performance View and Automation View, these things sometimes change unexpectedly. Then one must press buttons and encoders to see temporary popups that reveal these things. NavigationView instead places this information on the top line of the OLED main canvas replacing the 'SYNTH' label.
This implementation of NavigationView preserves the current functionality of the OLED main canvas when Isomorphic or Piano keyboards are set as default. NavigationView is enabled when the In-Key Keyboard is the default.
Layout of the OLED display
Horizontal Scroll/Bars and Beats
On the left corner of the Dashboard the current/total bar count is displayed as a fraction (eg. 1/8 is the first bar of eight bars total). When the zoom level increases beyond a sixteenth note, the current quarter note beat of a bar appears (eg. 3/4:1 at 1/32 note zoom level). When the zoom level is 1/128, the beat subdivision is added (eg. 3/4:1:3). When the zoom magnification is reduced again the display returns to just current/total bars. Turning the HORIZONTAL encoder will change these numbers in place without a popup appearing.
Subdivision/Zoom Magnification/Length of Note
Next is the zoom magnification for a single column of pads (eg. 1/16 for a sixteenth note, 1/2 for a half note). When zoom reduces magnification to whole 'bars per column' the display reads 1B/C or 2B/C. Pressing down and turning the HORIZONTAL encoder and this info changes in place without a popup appearing.
Key and Scale
For SYNTH, MIDI and CV output types, shown next is the current key root note and scale. The words 'Major' and 'Minor' are omitted. Minor scales are represented with a dash '-' suffix like is done in the chord library. When the mode/scale is neither Major or Minor, the scale name is displayed without the word 'Minor' (eg. Eb- Melodic). KIT and AUDIO clips do not display a key. AUDIO clips display one of three output types; Player, Sampler or Looper. Pressing SHIFT-SCALE will change the chosen scale in place without a popup appearing.
EDIT: Key and Scale
Instead of using church modes names like Dorian, the display of scale now shows the mode degree as a roman numeral. Instead of Dorian there is a 'II', for Phrygian there is 'III'. Instead of Lydian there is 'IV' and for Mixolydian there is a 'V'. Instead of Minor there is 'VI'. Locrian is 'VII'. Major is blank. The exotic scales like melodic minor, harmonic minor and pentatonic still display their scale names.
Beats per Minute
Right justified on the dashboard is displayed the BPM (Beats per Minute). BPM is displayed only when the dashboard doesn't already show Scale or AUDIO output type information. Turning the TEMPO encoder will change this number in place if visible otherwise show a popup.
Title Name
The mainboard with the larger font displays CLIP or SONG name and remains visible in all views including AUTOMATION and PERFORMANCE. The labels for output types "MIDI", "MPE", "Internal" and "CV" become prefixes to their channel number shown as titles for MIDI and CV clips.
Parameters
Navigation is allowed while editing parameters in AUTOMATION view but not in PERFORMANCE which puts a label on the dashboard instead. In both views, the baseboard displays parameter names and values as they are being altered (eg. 'LPF Frequency:L14-R36' when a range of two pads is selected together). When a parameter is automated the phrase (Automated) appears on the dashboard instead of scale.
Cue Countdown
On the right side of the baseboard playback appears the "Bars/Beats remaining" countdown shown when a group launch event is about to occur. This cue notice reads 'Q3:4' and counts down to 'Q1:1' before disappearing again.
EDIT: Cue Countdown
The cue countdown has been moved to the top line dashboard positioned to overlay the BPM tempo. When the tempo is modified while a cue is displayed the tempo change appears in a popup instead of inline on the screen.
Strategy for Implementation
The code is found in the file 'src\deluge\gui\views\navigation_view.cpp'. The strategy is to delegate updates of the OLED screen to a NavigationView singleton 'naviview' whenever another View writes information to the main OLED canvas. Code implementation takes the form of this pattern:
or
Display Popups
Instead of showing popups which obscure the main content of the OLED screen, delegate to NavigationView display of the info on the screen. Code that calls display->displayPopup(), display->popupTextTemporary() or drawPermanentPopupLookingText(), like in the procedures displayNumberOfBarsAndBeats(), displayZoomLevel(), displayLoopsRemainingPopup() and displayTempoBPM(), use the same delegation strategy as illustrated above.
Unit Test Script