v2.5 pre-release bugs/fixes
dantrueman opened this issue · 1 comments
dantrueman commented
- v2.5 done!
-------- Final stuff --------
- iOS; check UI, functionality (dt, mw)
- Windows testing (mw, tt)
- check and update all built-in galleries
- create GitHub release, with notes of changes/fixes/additions
- update manual
- make Target example galleries
- make Blendrónic example galleries
- check Mods for all preps, make sure up to date with all the new stuff
- plugin testing (dt, mw, tt); AU, VST, Mac, Win
--does not respond to Host-MIDI or external keyboard MIDI when AU in Logic, or VST in Sibelius. On-screen keyboard makes sound, however
-------- For Next Time? --------
- I wonder how difficult it would be to have the main keyboard UI element show (via grey or something) which keys are active in a particular Keymap when you mouse-over the keymap
- I wonder if it would be easy enough to have the "cables'' connecting Keymaps to Preparations change color or highlight in some way when they are active?
- Synchronic: ADSR slider UI doesn't initialize properly (first one isn't yellow) when VC is initially opened; moving to another tab and then back gets it there, but shouldn't have to do that. minor, maybe ignore
- add more Nostalgic targets. Ideas: Hold, could act almost like a pedal but only for timing how long Nostalgic notes are held
- Customize window menu options, appearance, and layout
- add "ignore pedal" toggle option to Keymap. some situations might want to ignore the pedal; for instance, Spring Tuning might want to factor in only depressed notes, while at the same time Direct might want to sustain with the pedal.
- we are getting one leak detection on quit; looks like it is of type sfzero::Sample. _i think we should just leave this.
-------- Tests --------
- Mikroetude, Houseboat; works in Sibelius, revised Gallery
- Mikroetude, Crests; works in Sibelius, no need to revise Gallery
- Mikroetude, for Bill D; works in Sibelius, no need to revise Gallery
- Mikroetude, Cygnet; works in Sibelius, no need to revise Gallery
- Mikroetude, Circleville; works in Sibelius, no need to revise Gallery
- Mikroetude, Southwing; works in Sibelius, no need to revise Gallery
- Mikroetude, Pyramids; works in Sibelius, no need to revise Gallery
- Mikroetude, Petite Gymnopedie; works in Sibelius, no need to revise Gallery
- Mikroetude, Mama's Musette; works in Sibelius, no need to revise Gallery
- Mikroetude, Gigue Interrupted; found bug in Synchronic, fixed, now working in Sibelius, no need to revise Gallery
- Prelude 6 (Widdershins); works in Sibelius (AU), no need to revise Gallery
- Prelude 5 (Icedrop); works in Sibelius (AU), no need to revise Gallery
- Prelude 4 (Helene's Shadow); works in Sibelius (AU), no need to revise Gallery
- Prelude 3 (Shambolic); works in Sibelius (AU), revised Gallery
- Prelude 2 (Continuing); discovered bug in Synchronic, fixed, working now, no need to revise Gallery
- Mikroetude, Quickie; works in Sibelius, no need to revise Gallery
- Mikroetude, Listen; works in Sibelius, no need to revise Gallery
- Mikroetude, And So; works in Sibelius, no need to revise Gallery
- Mikroetude, Juxtaposed Weather; works in Sibelius, no need to revise Gallery
- Mikroetude, Scales within Sliding Scales; works in Sibelius, revised Gallery
- Mikroetude, Keep It Steady; works in Sibelius, no need to revise Gallery
- Mikroetude, Keep It Steady (or not); works in Sibelius, no need to revise Gallery
- Mikroetude, Hurra; works in Sibelius, revised Gallery
- Mikroetude, Didymus; works in Sibelius, no need to revise Gallery
- Mikroetude, Around 60; works in Sibelius, no need to revise Gallery
- Mikroetude, Worm; works in Sibelius, no need to revise Gallery
- Mikroetude, Slow To Come Back; works in Sibelius, no need to revise Gallery
- Mikroetude, Mars; works in Sibelius, no need to revise Gallery
- Mikroetude, Daily Decrease; works in Sibelius, no need to revise Gallery
- NS Etude 8 (It Is Enough); works in Sibelius, no need to revise Gallery
- NS Etude 3 (Song); works in Sibelius (VST), revised Gallery
- NS Etude 2 (Undertow); works in Sibelius, no need to revise Gallery
- NS Etude 1 (Prelude); found bug with noteOffSync modes, but now works in Sibelius (VST), revised Gallery
- NS Etude 4 (Marbles); works in Sibelius (VST), revised Gallery
- NS Etude 5 (Wallumrod); works in Sibelius, no need to revise Gallery
- NS Etude 6 (Points Among Lines); works in Sibelius, no need to revise Gallery
- NS Etude 7 (Systerslaat); works in Sibelius, revised Gallery
- Prelude 9 (What El Nino Will See); works in Dorico (VST3), revised Gallery
- Prelude 12 (Bariolage); works in Dorico (VST3), no need to revise Gallery
- Prelude 11 (Goldberg Pedal Slip); works in Dorico (VST3), no need to revise Gallery
- Prelude 8 (Evidence); works in Dorico (VST3), revised Gallery
- Prelude 10 (Slagedalen); works in Dorico (VST3), no need to revise Gallery
- Prelude 1 (Inside Out); hangs! in Sibelius (VST and AU), with looping sound, at m37. the crash happens every time shortly after it switches Pianos to "4. Add High Synchronic" which has a Synchronic Mod in it; maybe the problem is in there. YEP: i can crash it in standalone by just triggering that Mod. Seems to be a bogus Mod, all values set to 0, and we get "beatMultiplierCounter = -2013169104". probably should check for bogus values, but it looks like the original mod is just pointless. decided this was just a bogus Mod edge case; i don't think it's worth doing much about
-------- Done --------
- check out Copy, see how reliable it is. in part because of the email we got, but I also periodically get crashes, especially when pasting from one gallery to a new one
- Action menu should have Paste in it when there are no objects selected
- rename Piano:Duplicate to Piano:Linked Copy, since it creates a new Piano that has the same Preparations, and changing the preparation in one will change in the other; should make another that is like copy/paste
- wondering if Piano "duplicate" should be changed to make copies of preparations, rather than using the actual same preparations? or, create "clone" which makes copies rather than pointing to the same preparations. ?
- Sibelius will crash when trying to save a Gallery. The Gallery file does get saved and seems to work properly, so it after that...
- Synchronic last-note-off is not working as expected; key downs don't suppress pulses, as it should. NS_1 is a good test.
- a few issues with tuning mod UI: transparency of keyboards is a bit weird, custom keyboard cents values are incorrect on reentering editor (fixed), custom keyboard doesn't update when selecting a scale
- PianoMaps, Mods, and Resets can be triggered by any midi input device regardless of the settings in attached keymaps.
- remove dependence on STK; still getting plugin validator crashes for the AU unless the STK sampleRate set is commented out, and just annoying to have the dependence for such little code
- add way for user to set the size of the delay buffer implemented, needs testing, could be a crash prone feature
- smoothing multi slider doesn't seem to work; changing values does nothing, and then closing/re-opening the VC it goes back to original value
- cleanup plugin wrapper MIDI message handling? cleaned this up a bit but having trouble testing, can't get logic to validate =>make sure you build AU for "release", otherwise it will probably be too slow to validate
- add cluster Max to cluster Min slider (Nostalgic); actually, i'm not sure there is a good way to do this; you'd have to wait for the clusterThreshold time to see how many keys have been released before doing anything
- SoundFonts are no longer loading layered presets properly. With the Orgue de Salon, try preset 1: Bourdon 8, then 2: Flute4, then 6: Bourdon + Flute4; in the last one, you should hear both octaves (and do in v2.4.1), but don't. I'm seeing this in other libraries as well. i think this is fixed, in BKSynthesiserVoice* BKSynthesiser::keyOn, which was returning a voice mid-loop; not sure why it was changed to return a voice, when it was a void function in 2.4.1?
- figure out why Comment boxes hit the CPU so hard.
- sustain pedal is broken; it prints out correctly when it's depressed, but it doesn't actually sustain
- check to confirm that sus pedal is behaving properly across Piano changes
- add a clear target to Nostalgic?
- Make sure each preparation's editor view supports resizing
- cmd/ctrl + s on an unsaved gallery should bring up prompt to make a new saved gallery
- On Windows, the lines indicating pulse length in the blendronic buffer display are not correctly positioned was a sample rate issue, not just Windows
- deleting a connection does not seem to actually remove the connection until add/removing an item, probably not reconfiguring on connection deletion and need to
- Should separately define shortcuts for Mac vs Windows
- minor: whether an item is selected after creation is not consistent not sure what changed but this stopped happening. not really an issue anyway
- gain slider currently affects feedback. is this intended?
- will MIDI In choices make sense when a plugin? removed
- keymap invert: how should we handle note on velocity when inverting note on/off? save velocity of note on? (mw) (good question: my experience looking at note-off velocities that keyboards send is that it's very crude, so, yes, I thinking saving note-on velocity and sending that is a good approach)
- confirm that nothing has broken regarding note messages when Piano switches happen, and keys are held down across the switch
- need to be able to distinguish between two of the same preps connected to one keymap. or, require using multiple keymaps, even if they have the same content, to connect to different preps? yeah, I think the latter; this will be easy to manage both for the user and for the code, rather than having to figure some way to give and see names for preps, etc... we can also design keymap to look clearer, with a max number of targets that will never be exceeded.
- move target menu display so it isn't a menu, but is always showing in the center of the main tab?
- add a Blendronic gain slider!
- Adding/deleting Blendronic preparations sometimes causes a crash. The number to crash is not consistent. seemed to be caused by prepareToPlay sometimes sending spurious sampleRate values to the constructor
- When executing a mod with Blendrónic open, the mod doesn't show up; you need to close the Blendronic window and then reopen it to see that it happened
- after accidentally setting Tempo subdivision to 0, Blendronic went silent (waiting forever?) Probably should set a hard minimum for Tempo subdivision.
similar issue is that a very low tempo/subdiv makes any subsequent change to tempo take very long to occur because the numSamplesBeat threshold is only updated on beat changes, so tempo updates don't apply to the current beat. changed to update numSampleBeat whenever tempo changes and update the delay params whenever numSamplesBeat changessetting tempo or subdiv to 0 actually locks up everything (maybe only after above change?) so while above helps low tempo cases, it does not change 0 tempo cases - Blendrónic Mods need to be implemented
- figure out more sensible label/scale for Blendronic smooth types. I spent some time with this, and changed the slider titles to be more reflective of what’s actually going on. I also think the best way to make clear what’s going on is to display the current smooth time, in ms. In fact, this could be useful for beat and delay lengths as well, also in ms. I’m not sure the best way to arrange this though; perhaps bottom right, so below the multislider title?
- Blendronic: how useful are open/close delay line? would open/close output be useful? interesting! I wonder if open input can be a toggle, rather than having separate for open/close, and then similar for output? I can imagine both being useful, am just worried about the explosion of options/menus, etc.... follow up: with a Target Tab, this should all be fine; we can have quite a few targeted parameters, without it cluttering the interface otherwise, so being able to open/close both input and output would be good, though maybe still as toggles?
- Last Note-Off; does that then wait for the cluster threshold and then do what it's supposed to do? this question would be moot if we just go with the simpler Target Tab approach, with only noteOn, noteOff, and Both as options
- tempo mods do not highlight the correct parameter after selecting one, exiting and reentering the editor
- tempo reset doesn't seem to work in some case, but can't seem to replicate (dt: i can't replicate either; let's leave it for now)
- grey out adaptive if not attached to Keymap, have text box indicating Keymap must be attached
- grey out adaptive if not attached to Keymap, have text box indicating Keymap must be attached
- keymap invert: need to clear note ons when switching inversion to avoid stuck notes? (mw) on second though, don't think this is necessary
- SYNCHRONIC BUG: scaling off after 12th step in sustain length mult slider (dt)
- make sure Synchronic multslider current (red slider) is updating as expected; in 2.4.1, it seems to be one behind (dt)
- thinking the layout of the stuff in Keymap could use some work (dt)
- add keystroke to turn on/off "midi edit" in Keymap?
- Blendronic: each source preparation (synchronic/nostalgic/synchronic) can only support one blendronic, should allow multiple (mw)
-
on-screen keyboard does not work(mw) fixed, but need to decide exact behavior for the on-screen keyboard in relation to keymap input setting (currently will always send through all keymaps); maybe the Select MIDI inputs menus should have "onscreen keyboard" and "computer keyboard" (assuming we make one) as options as well, by default selected. that way they will work, but can be turned off if you want only test part of a Piano - ui keyboard shows notes played on midi devices that aren't necessarily active in juce settings and won't play through any keymaps. potentially confusing but unclear what the behavior should be since keymaps can have inputs selected that are not active in juce settings (mw) i think it may be ok as it is. we can see that a device is sending input, and if we don't get sound, we know to look at the MIDI input settings to see where it is going
- behaviors of separate Synchronic targets don't really make sense (cluster only notes reset phase of multisliders) need to fix separation (mw)
mattmora commented
Synchronic behavior on the most current branch seems correct. Note-on-triggered pulse without skip-first will wait one beat then play the sequence and with skip first will wait the length of the first beat length mult then play starting from the second step. Note-off-triggered pulse will never wait regardless of skip-first and also properly skips. **Several presets seem to have odd beatsToSkip values (mostly -1) leading to incorrect behavior.