Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Reply
 
Thread Tools Display Modes
Old 05-02-2024, 04:47 PM   #25841
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Moving an X32 physical fader has gone gone back to fighting with the Reaper feedback because the faders don't support "Touch".
We used to use:
Code:
Widget Fader1
    MotorizedFaderWithoutTouch  oscAddress
    FB_X32Processor             oscAddress
WidgetEnd

So I will attempt to duplicate the "MotorizedFaderWithoutTouch" timing in "X32Fader"

Code:
Widget Fader1
	X32Fader             oscAddress
	FB_X32FaderProcessor oscAddress
WidgetEnd
Sorry, I forgot about that detail.

I agree the way to do it is add the MotorizedFaderWithoutTouch functionality to X32Fader.

I think we can then remove MotorizedFaderWithoutTouch, don't think it's used by anything else.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-02-2024, 04:51 PM   #25842
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 657
Default

Quote:
Originally Posted by Geoff Waddington View Post
Sorry, I forgot about that detail.

I agree the way to do it is add the MotorizedFaderWithoutTouch functionality to X32Fader.

I think we can then remove MotorizedFaderWithoutTouch, don't think it's used by anything else.
I just modified "X32Fader" and tested it.
Working like a charm.

I'll test it a bit more then post the change
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 05-02-2024, 05:04 PM   #25843
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 657
Default

Quote:
Originally Posted by jacksoonbrowne View Post
I just modified "X32Fader" and tested it.
Working like a charm.

I'll test it a bit more then post the change
Made the change, tested, and working perfectly.
Code:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class X32_Fader_OSC_MessageGenerator : public CSIMessageGenerator
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
public:
    X32_Fader_OSC_MessageGenerator(CSurfIntegrator *const csi, Widget *widget) : CSIMessageGenerator(csi, widget) {}
    ~X32_Fader_OSC_MessageGenerator() {}


    virtual void ProcessMessage(double value) override
    {
        if      (value >= 0.5)    value = value *  40.0 - 30.0;  // max dB value: +10.
        else if (value >= 0.25)   value = value *  80.0 - 50.0;
        else if (value >= 0.0625) value = value * 160.0 - 70.0;
        else if (value >= 0.0)    value = value * 480.0 - 90.0;  // min dB value: -90 or -oo

        widget_->SetIncomingMessageTime(GetTickCount());
        widget_->GetZoneManager()->DoAction(widget_, value);
    }
};

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class OSC_X32FaderFeedbackProcessor : public OSC_FeedbackProcessor
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
public:
    OSC_X32FaderFeedbackProcessor(CSurfIntegrator *const csi, OSC_ControlSurface *surface, Widget *widget, const char *oscAddress) : OSC_FeedbackProcessor(csi, surface, widget, oscAddress) {}
    ~OSC_X32FaderFeedbackProcessor() {}

    virtual const char *GetName() override { return "OSC_X32FaderFeedbackProcessor"; }
    
    virtual void ForceValue(const PropertyList &properties, double value) override
    {
        lastDoubleValue_ = value;

        if      (value < -60.0) value = (value + 90.0) / 480.0;
        else if (value < -30.0) value = (value + 70.0) / 160.0;
        else if (value < -10.0) value = (value + 50.0) /  80.0;
        else if (value <= 10.0) value = (value + 30.0) /  40.0;

        if ((GetTickCount() - GetWidget()->GetLastIncomingMessageTime()) >= 50)
	    surface_->SendOSCMessage(this, oscAddress_.c_str(), value);
    }
};
Now moving on to "X32MoveEditCursor"
__________________
AKA: Roy Wallingford

Last edited by jacksoonbrowne; 05-02-2024 at 05:13 PM.
jacksoonbrowne is offline   Reply With Quote
Old 05-02-2024, 05:21 PM   #25844
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Made the change, tested, and working perfectly.

Now moving on to "X32MoveEditCursor"
Excellent !
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-03-2024, 06:35 AM   #25845
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Ux question.

LearnFX, which launches the new Learn Window, is now mapped to the Inst button on my X-touch, last in the row of all of the other Associated Zones.

However, this one is unique, in that it launches a gui in Reaper.

Should it behave like any other radio buttoned Associated Zone ?

What happens if you are in the midst of mapping, and you press GoHome, Sends, etc. ?

Hate to throw up dialogs, as you know, but maybe, if there are unsaved params, give them a heads up, dunno, what do you think ?

On a related topic, what happens if you focus another FX, not the one you are currently mapping ?

The easy way out is to do nothing, buyer beware, but pretty sure folks don't want to lose their mapping work without warning.

Thoughts/suggestions more than welcomed.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-03-2024, 07:35 AM   #25846
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 920
Default

Quote:
Originally Posted by Geoff Waddington View Post
Ux question.

LearnFX, which launches the new Learn Window, is now mapped to the Inst button on my X-touch, last in the row of all of the other Associated Zones.

However, this one is unique, in that it launches a gui in Reaper.

Should it behave like any other radio buttoned Associated Zone ?

What happens if you are in the midst of mapping, and you press GoHome, Sends, etc. ?

Hate to throw up dialogs, as you know, but maybe, if there are unsaved params, give them a heads up, dunno, what do you think ?

On a related topic, what happens if you focus another FX, not the one you are currently mapping ?

The easy way out is to do nothing, buyer beware, but pretty sure folks don't want to lose their mapping work without warning.

Thoughts/suggestions more than welcomed.
I would think a prompt would be appropriate for both cases.

Generally
IF SOMETHING HAS CHANGED, and
IT'S NOT SAVED

PROMPT PROMPT PROMPT!!!

"You haven't saved this"
"Save" "Exit"
Freex is offline   Reply With Quote
Old 05-03-2024, 04:29 PM   #25847
MST
Human being with feelings
 
Join Date: May 2021
Posts: 115
Default

Quote:
Originally Posted by Geoff Waddington View Post
Ux question.

LearnFX, which launches the new Learn Window, is now mapped to the Inst button on my X-touch, last in the row of all of the other Associated Zones.

However, this one is unique, in that it launches a gui in Reaper.

Should it behave like any other radio buttoned Associated Zone ?
Hi,
I would choose it to be a seperate toggle action.

Quote:
Originally Posted by Geoff Waddington View Post
What happens if you are in the midst of mapping, and you press GoHome, Sends, etc. ?

Hate to throw up dialogs, as you know, but maybe, if there are unsaved params, give them a heads up, dunno, what do you think ?


On a related topic, what happens if you focus another FX, not the one you are currently mapping ?

The easy way out is to do nothing, buyer beware, but pretty sure folks don't want to lose their mapping work without warning.

Thoughts/suggestions more than welcomed.
Something as Freex said is expected.
One could also choose to skip the saving procedure, make it automatic so the last changes always stay, so no more dialogs needed.
MST is offline   Reply With Quote
Old 05-03-2024, 04:46 PM   #25848
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by MST View Post
Hi,
I would choose it to be a seperate toggle action.

One could also choose to skip the saving procedure, make it automatic so the last changes always stay, so no more dialogs needed.
That does seem to be the more modern way.

So press to open, press to save and close.

In that case it's probably best implemented as a regular Zone, not an Associated Zone.

I like that because "LearnFocusedFX" can be in the same folder as "FXRowLayout" and "FXWidgetLayout".

If you focus a different FX, the current one saves first.

No pesky modal dialogs, I like it !

It also means only 4 buttons on the Learn Window
Code:
Delete Map
Erase Control
Edit Alias
Auto Map
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-03-2024, 05:36 PM   #25849
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 657
Default

Hi Geoff,

I have X23MoveEditCursor added, tested and working


Code:
....
else if (tokenLines[i].size() > 1 && tokenLines[i][0] == "X32MoveEditCursor")
    AddCSIMessageGenerator(tokenLines[i][1], new X32_MoveEditCursor_OSC_MessageGenerator(csi_, widget));
....
Code:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class X32_MoveEditCursor_OSC_MessageGenerator : public CSIMessageGenerator
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
public:
    X32_MoveEditCursor_OSC_MessageGenerator(CSurfIntegrator *const csi, Widget *widget) : CSIMessageGenerator(csi, widget) {}
    ~X32_MoveEditCursor_OSC_MessageGenerator() {}

    virtual void ProcessMessage(double value) override
    {
        // DEBOUNCE
        if (value == 64) return;

        // GET WIDGET NAME AND STRING LENGTH
        string widgetName = widget_->GetName();
        int widgetNameLength = widgetName.length();

        // BANK MUST BE ONE OF A,B,C,D
        unsigned char bank = toupper(widgetName[widgetNameLength-2]);
        if (bank < 'A'  ||  bank > 'C') return;
        bank -= 'A';

        // ROTARY MUST BE ONE OF 1,2,3,4
        unsigned char rotary = widgetName[widgetNameLength-1];
        if (rotary < '1'  ||  rotary > '4') return;
        rotary -= '1';

        //DETERMINE ROTARY OSC VALUE
        rotary = 25 + 4*bank + 4*rotary;

        //  CENTER THE ROTARY - MAKE IT APPEAR THAT THE X32 ROTARY IS ENDLESS
        string oscMessage = "/-stat/userpar/" + int_to_string(rotary) + "/value";
        widget_->GetSurface()->SendOSCMessage(oscMessage.c_str(), 64);


        // REAPER:  MOVE CURSOR RIGHT TO NEXT MEASURE
        if (value >  64) DAW::SendCommandMessage(41042);

        // REAPER:  MOVE CURSOR LEFT  TO NEXT MEASURE
        else DAW::SendCommandMessage(41043);
    }
};
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 05-04-2024, 04:52 AM   #25850
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Hi Geoff,

I have X23MoveEditCursor added, tested and working
Pushed a commit for you to try

In the .ost:
Code:
Widget SomeWidget
    X32RotaryToEncoder oscAddress
    FB_ X32RotaryToEncoder oscAddress
WidgetEnd
In the Zone:
Code:
SomeWidget MoveEditCursor  Bar
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-04-2024, 07:56 AM   #25851
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 657
Default

Quote:
Originally Posted by Geoff Waddington View Post
Pushed a commit for you to try

In the .ost:
Code:
Widget SomeWidget
    X32RotaryToEncoder oscAddress
    FB_ X32RotaryToEncoder oscAddress
WidgetEnd
In the Zone:
Code:
SomeWidget MoveEditCursor  Bar
Close but no cigar

OSC_X32_RotaryToEncoderFeedbackProcessor() only gets invoked during startup of Reaper.
Never invoked when moving the rotary.

.ost
Code:
Widget UserAssignableRotaryC1
    X32RotaryToEncoder         /-stat/userpar/33/value
    FB_X32RotaryToEncoder      /-stat/userpar/33/value
WidgetEnd
.zon
Code:
UserAssignableRotaryC1   MoveEditCursor   Bar   // Move edit cursor +- 1 Bar
__________________
AKA: Roy Wallingford

Last edited by jacksoonbrowne; 05-04-2024 at 08:02 AM.
jacksoonbrowne is offline   Reply With Quote
Old 05-04-2024, 08:13 AM   #25852
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Close but no cigar

OSC_X32_RotaryToEncoderFeedbackProcessor() only gets invoked during startup of Reaper.
Never invoked when moving the rotary.

.ost
Code:
Widget UserAssignableRotaryC1
    X32RotaryToEncoder         /-stat/userpar/33/value
    FB_X32RotaryToEncoder      /-stat/userpar/33/value
WidgetEnd
.zon
Code:
UserAssignableRotaryC1   MoveEditCursor   Bar   // Move edit cursor +- 1 Bar
Oops, just pushed a commit that might fix things.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-04-2024, 08:15 AM   #25853
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 657
Default

Quote:
Originally Posted by Geoff Waddington View Post
Oops, just pushed a commit that might fix things.
I think I just fixed it.
Will compare my fix to yours
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 05-04-2024, 11:12 AM   #25854
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 657
Default

Tested and working


Code:
actions_.Insert("MoveCursor", new MoveCursor());

Code:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class MoveCursor : public Action
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
public:
    virtual const char *GetName() override { return "MoveCursor"; }

    virtual double GetCurrentNormalizedValue(ActionContext *context) override
    {
        return  0.5;
    }
    
    virtual void RequestUpdate(ActionContext *context) override
    {
        context->UpdateWidgetValue(1.0);
    }
    
    virtual void Do(ActionContext *context, double value) override
    {
        const char *amount = context->GetStringParam();
        
        if (value > 0.5)
        {
            if ( ! strcmp(amount, "Bar"))
                DAW::SendCommandMessage(41042); // move to next bar

            else if ( ! strcmp(amount, "Marker"))
                DAW::SendCommandMessage(40173); // move to next marker/region
        }

        else if (value < 0.5)
        {
            if ( ! strcmp(amount, "Bar"))
                DAW::SendCommandMessage(41043); // move to previous bar

            else if ( ! strcmp(amount, "Marker"))
                DAW::SendCommandMessage(40172); // move to previous marker/region
        }
    }
};

.ost
Code:
Widget UserAssignableRotaryC1
    X32RotaryToEncoder             /-stat/userpar/33/value
    FB_X32RotaryToEncoder      /-stat/userpar/33/value
WidgetEnd

Widget UserAssignableRotaryC2
    X32RotaryToEncoder             /-stat/userpar/34/value
    FB_X32RotaryToEncoder      /-stat/userpar/34/value
WidgetEnd
.Zon
Code:
    UserAssignableRotaryC1     MoveCursor   Bar     // Move cursor to previous or next Bar
    UserAssignableRotaryC2     MoveCursor   Marker  // Move cursor to previous or next Marker/RegionBar
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 05-04-2024, 11:26 AM   #25855
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Tested and working

Cool, committed.

Left the name "MoveEditCursor", since that more accurately reflects what it does, even though the class is named MoveCursor to avoid conflicts.

If you look at that dictionary, there are many examples of the names not exactly matching, for many different reasons
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-05-2024, 03:28 AM   #25856
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Tweaked the code, so you shouldn't need all of those OnInitializations.

Code:
virtual void SetValue(const PropertyList &properties, double value) override
{
    if (widget_->GetLastIncomingDelta() != 0.0)
    {
        widget_->SetLastIncomingDelta(0.0);
        ForceValue(properties, value);
    }
}
    
virtual void ForceValue(const PropertyList &properties, double value) override
{
    surface_->SendOSCMessage(this, oscAddress_.c_str(), 64);
}
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-05-2024, 05:41 AM   #25857
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Another great vid from UNdark:

https://www.youtube.com/watch?v=POOhASWN1Zo
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-05-2024, 05:52 AM   #25858
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 655
Default

How's the windows version coming along? Just curious, no rush.
fourdogslong is offline   Reply With Quote
Old 05-05-2024, 06:06 AM   #25859
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by fourdogslong View Post
How's the windows version coming along? Just curious, no rush.
Turning out to be a total redesign, so the Mac version is also non functional at the moment.

Will be at least a week or two, likely more.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-05-2024, 06:42 AM   #25860
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Ok, need a thumbs up on the final save Learn design.

If you close the Learn Window, it automatically saves.

If you focus another FX, it automatically saves the current one, and loads the newly focused one.

No modal dialogs to be seen.

If you don't like what you saved, you can edit it by opening the Learn Window.

If you want to start again, just delete the Zone/Map, and start again.

Everyone agree ?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-05-2024, 06:53 AM   #25861
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,090
Default

That sounds great to me! Would be very efficient when it comes to quick mapping a few plugins.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 05-05-2024, 08:18 AM   #25862
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 920
Default

so am I right in thinking the work flow will be (or could be)

Open Learn Mode

Focus FX

twiddle some knobs (on screen and on controller)

Close learn mode

Mapping is now saved.

__________________
Open Learn mode

Focus an FX

Change some stuff twiddle a few more knobs

Close learn mode

Mapping is now saved.
___________________
Open Learn mode

Focus FX

Decide that your approach was all wrong and you need to start again

Delete FX Map

?????????

Now at this point does learn mode close or reset?


Also is open and close learn mode a toggle function?

Will it be possible to have the extra buttons you meantioned only accessable from within learn mode, Alias Delete, like it's own zone?
Freex is offline   Reply With Quote
Old 05-05-2024, 09:28 AM   #25863
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by Freex View Post
so am I right in thinking the work flow will be (or could be)

Open Learn Mode

Focus FX

twiddle some knobs (on screen and on controller)

Close learn mode

Mapping is now saved.

__________________
Open Learn mode

Focus an FX

Change some stuff twiddle a few more knobs

Close learn mode

Mapping is now saved.
___________________
Open Learn mode

Focus FX

Decide that your approach was all wrong and you need to start again

Delete FX Map

?????????

Now at this point does learn mode close or reset?


Also is open and close learn mode a toggle function?

Will it be possible to have the extra buttons you meantioned only accessable from within learn mode, Alias Delete, like it's own zone?
Close, but it is slightly different, at least as presently envisioned.

You can't open the LearnWindow without a focused FX.

There is one Action only -- LearnFocusedFX -- which must be assigned to a button.

It is a toggle, hitting it while it is open closes and saves.

Alternatively, you can close the Learn Window by clicking the mouse on the X (close icon at top) of the Learn Window, which also closes and saves.

All of the other Actions are removed -- Save, Erase Last Touched, Delete, etc., you can't assign them to surface buttons.

They are ONLY available via gui buttons on the Learn Window.

Whenever the Learn Window is open, you are automatically in Learn mode for the focused FX.

If you delete an FX map, the LearnWindow stays open, and you remain in Learn mode for the focused FX.

If you focus another FX, you automatically enter Learn mode for that FX.

If there was a currently "learned" FX in the Learn Window, it automatically saves, before entering Learn mode for the newly focused FX.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-05-2024, 10:31 AM   #25864
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 920
Default

Quote:
Originally Posted by Geoff Waddington View Post
Close, but it is slightly different, at least as presently envisioned.

You can't open the LearnWindow without a focused FX.

There is one Action only -- LearnFocusedFX -- which must be assigned to a button.

It is a toggle, hitting it while it is open closes and saves.

Alternatively, you can close the Learn Window by clicking the mouse on the X (close icon at top) of the Learn Window, which also closes and saves.

All of the other Actions are removed -- Save, Erase Last Touched, Delete, etc., you can't assign them to surface buttons.

They are ONLY available via gui buttons on the Learn Window.

Whenever the Learn Window is open, you are automatically in Learn mode for the focused FX.

If you delete an FX map, the LearnWindow stays open, and you remain in Learn mode for the focused FX.

If you focus another FX, you automatically enter Learn mode for that FX.

If there was a currently "learned" FX in the Learn Window, it automatically saves, before entering Learn mode for the newly focused FX.

Sounds Awesome, thanks for clearing that up.

now when will a windows version be ready LOL
Freex is offline   Reply With Quote
Old 05-05-2024, 10:59 AM   #25865
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by Freex View Post
Sounds Awesome, thanks for clearing that up.

now when will a windows version be ready LOL
I'm not even close to a Mac version yet
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-05-2024, 12:42 PM   #25866
MST
Human being with feelings
 
Join Date: May 2021
Posts: 115
Default

Quote:
Originally Posted by Geoff Waddington View Post
Ok, need a thumbs up on the final save Learn design.
MST is offline   Reply With Quote
Old 05-05-2024, 02:30 PM   #25867
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 655
Default

Quote:
Originally Posted by Geoff Waddington View Post
Turning out to be a total redesign, so the Mac version is also non functional at the moment.

Will be at least a week or two, likely more.
Thanks for the update, no worries
fourdogslong is offline   Reply With Quote
Old 05-06-2024, 06:25 AM   #25868
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,927
Default

Quote:
Originally Posted by Geoff Waddington View Post
Ok, need a thumbs up on the final save Learn design.

If you close the Learn Window, it automatically saves.

If you focus another FX, it automatically saves the current one, and loads the newly focused one.

No modal dialogs to be seen.

If you don't like what you saved, you can edit it by opening the Learn Window.

If you want to start again, just delete the Zone/Map, and start again.

Everyone agree ?
This sounds good Am I right in understanding that no map creation happens automatically unless the Learn window is opened?
MixMonkey is offline   Reply With Quote
Old 05-06-2024, 06:31 AM   #25869
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by MixMonkey View Post
This sounds good Am I right in understanding that no map creation happens automatically unless the Learn window is opened?
That is correct sir
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-06-2024, 06:32 AM   #25870
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,927
Default

Quote:
Originally Posted by Geoff Waddington View Post
That is correct sir
Excellent! This is sounding tidy
MixMonkey is offline   Reply With Quote
Old 05-06-2024, 06:34 AM   #25871
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by MixMonkey View Post
Excellent! This is sounding tidy
You are primarily on a Mac, right ?

Think I'll post the barebones sketch I have so far, just to get final approval on the workflow.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-06-2024, 06:41 AM   #25872
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,927
Default

Quote:
Originally Posted by Geoff Waddington View Post
You are primarily on a Mac, right ?
Yup

Quote:
Think I'll post the barebones sketch I have so far, just to get final approval on the workflow.
Cool
MixMonkey is offline   Reply With Quote
Old 05-06-2024, 06:50 AM   #25873
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

MAC ONLY MAC ONLY

New Exp build is up.

https://stash.reaper.fm/v/42044/CSI%20Exp.zip

For demo purposes only, generally non functional.

Demonstration of the new Learn Window.

It is non modal and can be resized.

There is only one Action, which is a Toggle.

Code:
SomeButton LearnFocusedFX
You must first focus an FX.

Then, press the button to open/close the Learn Window.

You can also close it via the red close icon at the top left.

Try changing the focused FX, whilst the Learn Window is open, to see the workflow.

For now the only thing you will see is the Learn Window title changing.

Thoughts/suggestions more than welcomed, as always.

[edit]
You will also need Zones that look like this:

Code:
Zone FXRowLayout
	Channels 8
	"" ""
	"Shift" ""
	"Control" ""
	"Option" ""
ZoneEnd
Code:
Zone FXWidgetLayout
	Rotary FXParam RingStyle=Dot
	DisplayUpper FixedTextDisplay
	DisplayLower FXParamValueDisplay
ZoneEnd

#WidgetTypes Rotary RotaryPush Fader
#DisplayRows DisplayUpper DisplayLower
#RingStyles Dot Fill BoostCut Spread
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-06-2024, 06:59 AM   #25874
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,927
Default

Quote:
Originally Posted by Geoff Waddington View Post
MAC ONLY MAC ONLY

New Exp build is up.

https://stash.reaper.fm/v/42044/CSI%20Exp.zip

For demo purposes only, generally non functional.
Do the other syntax changes need to be implemented for this to work?
MixMonkey is offline   Reply With Quote
Old 05-06-2024, 07:01 AM   #25875
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by MixMonkey View Post
Do the other syntax changes need to be implemented for this to work?
Don't think so, are you having trouble ?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-06-2024, 07:09 AM   #25876
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,927
Default

Quote:
Originally Posted by Geoff Waddington View Post
You will also need Zones that look like this:

Code:
Zone FXRowLayout
	Channels 8
	"" ""
	"Shift" ""
	"Control" ""
	"Option" ""
ZoneEnd
Code:
Zone FXWidgetLayout
	Rotary FXParam RingStyle=Dot
	DisplayUpper FixedTextDisplay
	DisplayLower FXParamValueDisplay
ZoneEnd

#WidgetTypes Rotary RotaryPush Fader
#DisplayRows DisplayUpper DisplayLower
#RingStyles Dot Fill BoostCut Spread
So that's a "yes", then
MixMonkey is offline   Reply With Quote
Old 05-06-2024, 07:17 AM   #25877
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,473
Default

Quote:
Originally Posted by MixMonkey View Post
So that's a "yes", then
Not even sure you need those for the demo, but you will for production

Might as well rename the files as well to reflect the changes.

One last thing for production, pretty sure you don't need it for the demo, LearnFocusedFX is no longer an Associated Zone, it can just go in the main folder with the other 2, along with FXPrologue and FXEpilogue.

[edit] Might even want to put all of those in a subfolder - "LearnFX" ?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 05-06-2024, 07:30 AM   #25878
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,090
Default

For us [primarily] Windows folks, any hope of posting a preview screenshot?
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 05-06-2024, 07:31 AM   #25879
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,927
Default

Quote:
Originally Posted by Geoff Waddington View Post
Demonstration of the new Learn Window.

It is non modal and can be resized.

There is only one Action, which is a Toggle.

Code:
SomeButton LearnFocusedFX
You must first focus an FX.

Then, press the button to open/close the Learn Window.

You can also close it via the red close icon at the top left.

Try changing the focused FX, whilst the Learn Window is open, to see the workflow.

For now the only thing you will see is the Learn Window title changing.

Thoughts/suggestions more than welcomed, as always.
Works very nicely here Title bar changes when different FX are focused (the window itself is blank, but that's correct yes?). It would be good if the window could remember its size. It's going to be a pain dragging it out to see the last two channels everytime...
MixMonkey is offline   Reply With Quote
Old 05-06-2024, 07:35 AM   #25880
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,927
Default

Quote:
Originally Posted by Funkybot View Post
For us [primarily] Windows folks, any hope of posting a preview screenshot?
This is after I dragged it out to show channels 7 and 8.
MixMonkey is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 10:44 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.