Fixes and updates for v1.0.3 - #44
Open
nomadbyte wants to merge 43 commits into
Open
Conversation
- Most of that functionality is already handled by patch object - Also, need to refactor some of the remaining functions to forward the calls to respective patch object
- Multistomp internal binary patch data is 7bit encoded prior to being sent in a SysEx message (0x28); - Multistomp effect id is generally a 4-byte integer, but in the patch only the lower 28 bits are stored; - the AMP effect's cab id is encoded in the 8th param and is an effect id of the respective AMP effect (28-bit only). > NOTE: Multistomp firmware allows only selecting cabs from the list > which corresponds to the AMPs actually installed; This is because > the cab data is stored in the AMP effect. > So the editor too should take this into account at some point...
In Multistomp patches, AMP effect's cab id parameter value is actually an effect id of the corresponding AMP effect. However, the Parameter Change SysEx (0x31) allows only two 7-bit bytes to encode the value. Thus, only the lower byte of the cab id is passed, the remaining bytes are assumed the same (corresponding to Multistomp model) and are filled in by the fw. To keep the patch data consistent, it's preferred to send the whole patch which includes the correct/full value for the cab id.
- This allows picking a Bass AMP while connected to MS-50G or MS-70CDR and vice versa. - Previously, this would fail due to cab details not being initialized for "foreign" AMP effects. > NOTE: In the common configuration, Multistomps are not expected to > have the "foreign" effects. So selecting such effects in the editor > should not make it available in the patch.
The scanning is done sequentially for all patches (1 to 50). Each patch should first be explicitly set (MIDI 0xc0, ProgramChange). - read mode: requests the current patch data (SysEx: 0x29); - update mode: first sends the editor's data for the current patch, (SysEx: 0x28), then requests the current patch data (SysEx: 0x29) With update mode, if any of effects referenced in editor's patch data are not actually installed on the device, the patch recevied back from the device will have these effects set to THRU.
- installed=-2: Not-Installed; effect is not defined for the model or belongs to different/newer fw version. - installed=1: Installed; effect is fixed (always installed) in the fw, as is for MS-60B and MS-70CDR, which officially do not support effect module management (adding/removing), unlike the MS-50G. - installed=0: Unknown; these effects are defined for the model, yet are not referenced in any of the scanned patches. - installed=-1: Maybe-Installed; effect intially had the Unknown status and then was added into current patch, so it needs to be verified that it's actually installed. The patch is then sent to device and received again, the effect ids are parsed and when valid their status set as installed=1. > NOTE: Effects referenced in the scanned patches are considered as > Installed (installed=1). By default, the Effect Panel shows both Defined (for the model) and Installed effects. Installed effects are shown in green, Not-Installed or Not-Defined effects are shown in red; the Not-Defined are hidden, unless 'Show All MS Effects' box is checked.
- Similar to MS-50G which supports management of installed effects. - This also assumes that pedal can have effects from other MS pedals.
- Bass AMP and DRIVE effects defined for MS-60B are not directly compatible with MS-50G and MS-70CDR, as they depend on additional module CMN_BASS.ZDL which is not loaded by MS-50G or MS-70CDR fw. - However, older B1on pedal has equivalent effects which appear to be compatible, though somewhat larger in size. - The B1on effects have IDs which overlap the respective MS-60B IDs, so some mapping is needed for patch portability. > NOTE: the CAB handling implemented in B1on fw is different from > the one on Multistomps; a given AMP module on B1on includes all > cabinets, while on Multistomp an AMP effect includes only a single > cabinet and the fw allows selection only for cabinets shared from > the installed AMPs.
Provided the connected Multistomp pedal has all referenced effect modules installed (equivalent B1on effects, when needed), the editor handles all needed mappings to port a patch from another Multistomp model. This mainly relates to Bass AMP and DRIVE effects, which differ between MS-60B and MS-50G, the latter needs to use the equivalent effect modules from B1on pedal.
The updated BPM value is sent to the device as part of the whole patch data via SysEx:0x28. NOTE: The pedal fw only supports TAP function. It does not send the updated BPM value (in the patch data) to the editor; it just updates the patch internally. So user should avoid using the TAP function while attached to the editor. Otherwise, the editor data will override the BPM value set via TAP.
This sends the updated patch to the device; when the needed AMP is not installed, the fw forces the cabid to OFF. The editor is then requests the patch and re-displays the received patch. Simliarly, this is also done when importing patch or bank.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This includes a bunch of fixes and updates which could be released in v1.0.3. Briefly,
What's new v1.0.3
Fixed are errors in patch data parsing and writing. BPM value set in the source patch is now properly read and retained.The effect ids are now consistent with the ones referenced in respective ZDL modules (see #30).
A dedicated BPM knob is added to allow BPM editing for the current patch. Another main feature is the ability to convert patches between Multistomp models (the original ones, not Multistomp+). Patches from the sibling Multistomp models can be easily imported as individually, as at once in a Bank.
Most of the Multistomp effects are compatible across the Multistomp models. However, Bass DRIVEs and AMPs are not directly compatible with MS-50G and MS-70CDR (due to lack of a Bass-specific module). It's possible to use for this the alternative effects from B1Xon model, which have same effect names, yet somewhat different or overlapping ids.
The editor's patch conversion takes care of mapping the effect ids between the ones specific to MS-60B and the ones from B1Xon. This way, the MS-60B patches (with AMP and DRIVE effects) can be directly set up on MS-50G/MS-70CDR and vice versa.
NOTE: Obviously, for the patch portability to work, the target pedal must have all the needed effect modules installed. This means a MS-60B should have the MS-50G/MS-70CDR specific effects installed (as used in the patch), and a MS-50G/MS-70CDR should have the respective B1Xon Bass effects installed (if patch uses Bass AMPs or DRIVEs).
This PR does not include updates to the stand-alone binaries. Perhaps, these should be set up to build automatically via GitHub workflow actions as part of Release process.
Also, the Japanese version of the What's new in v1.03 is output from Google Translate, so it may benefit from a more native proofing.
I hope this PR will shortly get tested and merged so that the users could benefit from the updates in the Web-version of the editor.
Fixes issues #31, #36, #38, #24, #12.