Author Topic: SysEx messages all mapping to ctrl 85  (Read 6172 times)

Offline Linzmeister

  • Jr. Member
  • **
  • Posts: 86
Re: SysEx messages all mapping to ctrl 85
« Reply #150 on: June 02, 2017, 04:48:51 PM »
Quote
I had one instance when I had Selected Track 1 for ACT control, but Track 2 Compressor was being controlled. 
I switched to busses and back to tracks and it seemed to sort it self out.
In current logic, only in EQ Screen focus is change to corresponding EQ when you press SEL. So if you change focus by mouse or work with Compressor/other modules, auto-focusing does not work.
Yeah, it wasn't a case of selecting the wrong plugin, but wrong channel.  From memory I switched to busses and back to tracks, or went to  LOCAL ON, LOCAL off and it reset to synchronizing correctly again.  I haven't noticed it happening again.  I will remain observant though.
Found IT!!..

I had accessed ACT via the Dynamics Buttons..  When I select a different Channel, I have to press the First In PC button to get ACT to follow Select.  You gave me the answer the other day but I completely didn't understand what you meant... 

Systematic  operation understood.

Offline Linzmeister

  • Jr. Member
  • **
  • Posts: 86
Re: SysEx messages all mapping to ctrl 85
« Reply #151 on: June 03, 2017, 08:41:24 AM »
G'day,

Is there a way to restrict the PREV/NEXT ACT buttons to stay within the current channel  - Pro channel is, but FX Bin moves ACT focus to next/prev channel rather than loop back to beginning/end of current channel.

Sequence of 3 Next Button presses with 2 plugins each in adjacent Channel FX Bins:

CH1 FX 1 --> CH 1 FX 2 -->  Ch 1 FX 1

instead of the current

CH1 FX 1 --> CH 1 FX 2 -->  Ch 2 FX 1

In thinking through the practical operation I have mimicked your EQ screen ACT Selection onto Dynamics - but selecting the track compressor.

Then I thought further.  Use Dynamics Page 1 for Compressor, Page 2 for other PC modules, and leave EQ (page 1) as EQ currently is and setup Page 2 for FX bin auto navigation. 

Dynamics Page 1: Track/buss compressor
Dynamics Page 2: Current PC Module
EQ Page 1: PC EQ
EQ Page 2: FX Bin
Another screen/page combo would be required to do the same with the Synth rack..

Question: 
If I have a series of 6 drum tracks and they all have a Slate VTM & VCC in FX Bin slots 1 & 2 and a gate in slot 3.  Selecting the first gate would require ACT navigation (First in FX Bin, NEXT, NEXT), but I would like to be able to move from channel to channel adjusting the gates of each simply by selecting the channels. 

I have been thinking about and trying to come up with a tidy preset solution.  In attempting to solve it I have created 4 software states:
ACTFocus - with states of PC, FX, Synth
LastPC with states of 1-20 and unknown
LastFX with states of 1-20 and unknown
LastSynth with states of 1-20 and unknown

Unknown is the default in each case.  I'm just using 20 as it should be way beyond any practical limitation.

The ACTFocus is to tell us which of the LASTXXX states to update when PREV/NEXT is pressed.
The ACTFocus & LASTXXX values are then to be used to select the correct bin and an offset when selecting a new channel.

Obviously 20 is never going to happen in a single channel.
Is there any way to discern how many plugins are in any given Bin?
When moving PREV from 1, what value do we set LASTXXX to??
How can we tell when NEXT should set LASTXXX back to 1??


Thought application:
Set ACT Focus and initialize the appropriate LASTXXX state =1 (if currently unknown) when First in PC,FX,Synth, or EQ/Dynamics Page 2 is Selected.

The incomplete beginnings of my thought process as an export follows:
Code: [Select]
((None)) _Sel Set(_Ch) :
 'Selection:Invalid' - Reset _Sel Feedback :  : State Monitor, and trigger it
 'Selection:Invalid' - Undefined *
 'IgnoreSelect:Yes' - Reset _Sel Feedback :  : State Monitor, and trigger it
 'IgnoreSelect:Yes' - Undefined *
 'SonarStripType:Bus' 'Strip:Track' - Command 'Move Input Focus to Mains View'
 'SonarStripType:Bus' 'Strip:Track' - Command 'Move Input Focus to Track View'
 'SonarStripType:Track' 'Strip:Bus' - Command 'Move Input Focus to Track View'
 'SonarStripType:Track' 'Strip:Bus' - Command 'Move Input Focus to Mains View'
 - Select Strip
 - GlobalMode != ACT *
 'Page:1' 'Screen:EQ' - Filter EQ shift 0 parameter 1
 'Page:2' 'Screen:EQ' - FX <any> shift (LastFX) parameter 1
 'Screen:EQ' - Focus *
 'Page:1' 'Screen:Dynamics' - Filter PC4K S-Type Bus Compressor shift 0 parameter 1
 'Page:2' 'Screen:Dynamics' - Filter <any> shift (LastPC) parameter 1
 'Screen:Dynamics' - Focus



Code: [Select]
((None)) _Solo 3 :
 '_Local:On' - Undefined *
 - _Ch -> 3
 - Call ((None)) _fSolo Select(_Ch) :
 - State <SoloMonMode> dependent Monitor
 - Call ((None)) _fSolo Set(_Ch) :  *
 'BtnMode:Transport' - Command 'Project | Insert Marker'
 - BtnMode == Transport
 'GlobalMode:ACT' 'Last action:Failed' - Focus Prev.
 'ACTFocus:PC' 'GlobalMode:ACT' - Prev LastPC, set engine state
 'ACTFocus:FX' 'GlobalMode:ACT' - Prev LastFX, set engine state
 'ACTFocus:Synth' 'GlobalMode:ACT' - Prev LastSynth, set engine state
 - Reset _Solo 3 :  : State based Monitor

((None)) _Solo 4 :
 '_Local:On' - Undefined *
 - _Ch -> 4
 - Call ((None)) _fSolo Select(_Ch) :
 - State <SoloMonMode> dependent Monitor
 - Call ((None)) _fSolo Set(_Ch) :  *
 'BtnMode:Transport' - Command 'Next Marker'
 - BtnMode == Transport
 'GlobalMode:ACT' 'Last action:Failed' - Focus Next
 'ACTFocus:PC' 'GlobalMode:ACT' - Next LastPC, set engine state
 'ACTFocus:FX' 'GlobalMode:ACT' - Next LastFX, set engine state
 'ACTFocus:Synth' 'GlobalMode:ACT' - Next LastSynth, set engine state
 - Reset _Solo 4 :  : State based Monitor

((None)) _Solo 5 :
 '_Local:On' - Undefined *
 - _Ch -> 5
 - Call ((None)) _fSolo Select(_Ch) :
 - State <SoloMonMode> dependent Monitor
 - Call ((None)) _fSolo Set(_Ch) :  *
 'BtnMode:Transport' - Command 'Go to the time of the last event'
 - BtnMode == Transport -> _YesNo
 'GlobalMode:ACT' '_YesNo:No' - Selected Strip  Volume
 'GlobalMode:ACT' '_YesNo:No' - Filter <any> shift 0 parameter 1
 'GlobalMode:ACT' '_YesNo:No' - Focus
 'GlobalMode:ACT' - LastPC -> 1
 'GlobalMode:ACT' - ACTFocus -> PC
 - Reset _Solo 5 :  : State based Monitor

((None)) _Solo 6 :
 '_Local:On' - Undefined *
 - _Ch -> 6
 - Call ((None)) _fSolo Select(_Ch) :
 - State <SoloMonMode> dependent Monitor
 - Call ((None)) _fSolo Set(_Ch) :  *
 'BtnMode:Transport' - Command 'Clear all automation write enables'
 - BtnMode == Transport -> _YesNo
 'GlobalMode:ACT' '_YesNo:No' - Selected Strip  Volume
 'GlobalMode:ACT' '_YesNo:No' - FX <any> shift 0 parameter 1
 'GlobalMode:ACT' '_YesNo:No' - Focus
 'GlobalMode:ACT' - LastFX -> 1
 'GlobalMode:ACT' - ACTFocus -> FX
 - Reset _Solo 6 :  : State based Monitor

((None)) _Solo 7 :
 '_Local:On' - Undefined *
 - _Ch -> 7
 - Call ((None)) _fSolo Select(_Ch) :
 - State <SoloMonMode> dependent Monitor
 - Call ((None)) _fSolo Set(_Ch) :  *
 'BtnMode:Transport' - Command 'Edit | Select | From = Now'
 - BtnMode == Transport -> _YesNo
 'GlobalMode:ACT' '_YesNo:No' - Synth <any> shift 0 parameter 1
 'GlobalMode:ACT' '_YesNo:No' - Focus
 'GlobalMode:ACT' - LastSynth -> 1
 'GlobalMode:ACT' - ACTFocus -> Synth
 - Reset _Solo 7 :  : State based Monitor


Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 930
Re: SysEx messages all mapping to ctrl 85
« Reply #152 on: June 06, 2017, 06:07:38 PM »
I hope that I have understood your idea right, and so the implementation attempt.
Please install b366, it has "find last plug-in" addition required for "previous" button to work.

So, it should (I could easily introduce some bug here) function with 3 ACT submodes:
- EQ Page 1 - focus ProChannel EQ of current strip
- Comp Page 1 - focus ProChannel Comp of current strip
- EQ/Comp other pages - focus selectable plug-in type and number for current strip (except Synth).

In all 3 modes, except selectable Synth, preset tries to focus corresponding plug-in/PC Module for Current strip. Also it follows current strip changes (from surface and mouse).
In selectable mode, if corresponding plug-in/module could not be found (f.e. wen strip has less FXes), preset tries to focus the first plug-in/module (in the strip).
If there is no plug-ins of corresponding type (f.e. strip has no FX at all), focus WILL NOT BE CHANGED (I do not know how to "void" the mapping...) and stay where it was before.

Next/Previous and Plug-in type buttons are inactive in EQ/Comp mode.
Plug-in type buttons LEDs indicate current type when in Selectable mode. No from them light in EQ/Comp modes (as the indication they are inactive).

Next/Prev should be circular.

PS I have tried 2 approaches to focus PC/FX. I have found "direct" approach buggy in X2. There is "side effect" from the second method, Sonar is shortly "reseting" ACT context when switching between strips, especially if PC module had the focus (probably since PC Gui for corresponding strip is changed to the new strip... so till new context is set there is no context). It can happened that faders with move a little "in wrong direction" when switching strips in ACT mode (during Sonar switching to "no context -> value 0" and then to "new context -> target value"). If that is the case, I can try to disable motors for short time. So let me know if i should try to do that.

Offline Linzmeister

  • Jr. Member
  • **
  • Posts: 86
Re: SysEx messages all mapping to ctrl 85
« Reply #153 on: June 07, 2017, 02:39:22 PM »
Hi,
I had a suspicion I was missing a preset on a previous post, but it was good to spend some more time actually mixing instead of testing the preset now that you have given me so much functionality.

I put a part of you changes into place, bugfix in Input and Solo / ON labels.
I used only one row, for me the table with 15 columns and 3 rows looks more sane that way, but if you disagree with that I will put your "2 rows per button" description back.
Technically it is done a bit different. In other modes (currently ACT only, but who knows the future...) each button display the label (value) for itself. So in case we display on state switching,
it can be overwritten by buttons own procedure. So there are functions to convert _Ch->Text, called from appropriate place.
That looks great.  I just used 2 rows because the pre-existing information was already laid out that way..

If there is no plug-ins of corresponding type (f.e. strip has no FX at all), focus WILL NOT BE CHANGED (I do not know how to "void" the mapping...) and stay where it was before.
That is completely understandable.  I was not sure what to do in this instance either.  Leaving at last plugin sounds good.  When I get further into a mix I will see if there are any down sides to this approach.


Next/Previous and Plug-in type buttons are inactive in EQ/Comp mode.
Plug-in type buttons LEDs indicate current type when in Selectable mode. No from them light in EQ/Comp modes (as the indication they are inactive).

Next/Prev should be circular.
That is perfect!.  Indicates and circular navigation within a channel..  Very nicely done.

PS I have tried 2 approaches to focus PC/FX. I have found "direct" approach buggy in X2. There is "side effect" from the second method, Sonar is shortly "reseting" ACT context when switching between strips, especially if PC module had the focus (probably since PC Gui for corresponding strip is changed to the new strip... so till new context is set there is no context). It can happened that faders with move a little "in wrong direction" when switching strips in ACT mode (during Sonar switching to "no context -> value 0" and then to "new context -> target value"). If that is the case, I can try to disable motors for short time. So let me know if i should try to do that.
No, I don't see any fader  movements that seem out of place.  I think that the motors take longer to respond than the MIDI messages take to transmit.

I have actually started to mix a few songs.  I did experience a few crashes, but I can't say that they are related to the plugin or the preset.  More observation required to ascertain what is causing the crashes.

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 930
Re: SysEx messages all mapping to ctrl 85
« Reply #154 on: June 07, 2017, 09:33:39 PM »
I have actually started to mix a few songs.  I did experience a few crashes, but I can't say that they are related to the plugin or the preset.  More observation required to ascertain what is causing the crashes.
I had several kinds of Sonar crashes:
1) plug-ins... probably 90% of all crashes was inside (or coursed by) VST plug-ins
2) Sonar itself. Another 5%. Greatly reduced on X1 -> current Platinum way
3) 4.9% from Sonar crashes "inducted" by AZ Controller. Known cases are workarounded in AZ Controller code.
4) 0.1% from AZ Controller. I remember 2 critical bugs in very specific cases during lifetime of AZ Controller.

But I can solve only (4) and sometimes (3), so if you can reproduce some crash and it does not happened with AZ Controller removed, that we can nail and eliminate.

Offline Linzmeister

  • Jr. Member
  • **
  • Posts: 86
Re: SysEx messages all mapping to ctrl 85
« Reply #155 on: June 08, 2017, 02:58:45 PM »
If there is no plug-ins of corresponding type (f.e. strip has no FX at all), focus WILL NOT BE CHANGED (I do not know how to "void" the mapping...) and stay where it was before.
That is completely understandable.  I was not sure what to do in this instance either.  Leaving at last plugin sounds good.  When I get further into a mix I will see if there are any down sides to this approach.
While looking around trying to get the ACTLearn and ACTLock working, I stumbled onto:
Compare ACT MAP == No Mapping.  I don't know what it is supposed to do, but it does sound a little like void the mapping to me..  I realise it is a query not a command.. but maybe an area to look at??

I have found a bug.  I can get half way to solving it, but can't seem to get all the way there:

Code: [Select]
((None)) _Solo 8 :
...
 'BtnMode:Transport' - ACT Learn Toggle
...


((None)) _Solo 9 :
...
 'BtnMode:Transport' - ACT Lock Toggle
...

I created Software States for ACTLearn and ACTLock..  With default values of No.

Code: [Select]

...
 'GlobalMode:ACT' - BtnMode == Default
 'Last action:OK' - ACT Learn Toggle
 'ACTLearn:No' 'Last action:OK' - ACTLearn -> Yes
 'ACTLearn:Yes' 'GlobalMode:ACT' 'Last action:Failed' - ACTLearn -> No
...
I was able to affect ACT Learn and LOCK in Sonar, but I messed up the feedback.  The 01V buttons were always on regardless of Learn and Lock States.  :(

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 930
Re: SysEx messages all mapping to ctrl 85
« Reply #156 on: June 08, 2017, 06:09:39 PM »
If there is no plug-ins of corresponding type (f.e. strip has no FX at all), focus WILL NOT BE CHANGED (I do not know how to "void" the mapping...) and stay where it was before.
That is completely understandable.  I was not sure what to do in this instance either.  Leaving at last plugin sounds good.  When I get further into a mix I will see if there are any down sides to this approach.
While looking around trying to get the ACTLearn and ACTLock working, I stumbled onto:
Compare ACT MAP == No Mapping.  I don't know what it is supposed to do, but it does sound a little like void the mapping to me..  I realise it is a query not a command.. but maybe an area to look at??
Where you have seen that?
By itself it can not do bad things, "ACT MAP" is the System State.

Quote
I have found a bug.  I can get half way to solving it, but can't seem to get all the way there:

Code: [Select]
((None)) _Solo 8 :
...
 'BtnMode:Transport' - ACT Learn Toggle
...


((None)) _Solo 9 :
...
 'BtnMode:Transport' - ACT Lock Toggle
...
Yes, sorry. Should be fixed in attached version.

Quote
I created Software States for ACTLearn and ACTLock..  With default values of No.
Proper way will required some coding first... do you really need that indication? It is normally clearly visible in the Sonar toolbar.

ACTLearn in fact has no sense, to "learn" things the first action to do is to touch control by mouse. And if the mouse is already in your hands, why not click learn button?  ;)
For confirmation, "Enter" is required. So again the mouse should be in your hands (or keyboard... or assigned on surface action...). The whole procedure required Start/Stop Sonar, AZ ACT Fix, etc. So dedicated button on surface make sense for so called "scratch" learning only, described in some blog by Craig.

ACTLock make more sense from the surface. I think I have to implement corresponding System State and than put it into preset (for feedback and logic, to select correct plug-in when ACT is unlocked). Not next 2 weeks, but remind me later.