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

Reply
 
Thread Tools Display Modes
Old 05-06-2024, 07:35 AM   #25881
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by MixMonkey View Post
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...
Great !

The Window remembers its size and position for an open project here, does it not there ?

As far as the initial size upon project load, that will be calculated based on:

Code:
Zone FXRowLayout
	Channels 8
...
When I finish the coding
__________________
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, 11:18 AM   #25882
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 5,003
Default

Quote:
Originally Posted by Geoff Waddington View Post
The Window remembers its size and position for an open project here, does it not there ?
Actually it seems to have something to do with the column widths changing. When I open the window initially, I can see 6 columns. So I drag the window out to show all 8. The next time I open the window, the size an position seem the same , but the column widths have changed and now I can only see 6 columns again. Not something to worry about now
Quote:
As far as the initial size upon project load, that will be calculated based on:

Code:
Zone FXRowLayout
	Channels 8
...
When I finish the coding
This will probably solve it
MixMonkey is offline   Reply With Quote
Old 05-07-2024, 05:06 AM   #25883
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

New Exp build is up.

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

Primitive implementation demo for Windows.

If you thought the resize was ugly on Mac, just wait until you see the Windows version

Ignore that and concentrate on the title bar.

You must focus an FX before you press the button mapped to LearnFocusedFX.

Then you can focus another FX and you should see the Learn Window title bar reflect the change.

You can also press the Edit Alias button to change the Alias.

That's all for now

Just want to confirm 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-07-2024, 05:22 AM   #25884
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 923
Default

Quote:
Originally Posted by Geoff Waddington View Post
New Exp build is up.

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

Primitive implementation demo for Windows.

If you thought the resize was ugly on Mac, just wait until you see the Windows version

Ignore that and concentrate on the title bar.

You must focus an FX before you press the button mapped to LearnFocusedFX.

Then you can focus another FX and you should see the Learn Window title bar reflect the change.

You can also press the Edit Alias button to change the Alias.

That's all for now

Just want to confirm the workflow.

Can confirm window opens and title bar changes as expected when switching FX


I don't have any of the "Learn" zones setup on my system as up until now, manual editing has seemed faster,
Looks l;ike im gonna have to add them
Freex is offline   Reply With Quote
Old 05-07-2024, 03:10 PM   #25885
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 665
Default

Hey Geoff,

How can I get the "action context" when I am in either of these:
Code:
  • class X32_Fader_OSC_MessageGenerator : public CSIMessageGenerator
  • class OSC_X32FaderFeedbackProcessor : public OSC_FeedbackProcessor
Cheers,
Roy
__________________
AKA: Roy Wallingford

Last edited by jacksoonbrowne; 05-07-2024 at 03:24 PM.
jacksoonbrowne is offline   Reply With Quote
Old 05-10-2024, 05:35 AM   #25886
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Just an FYI, the following Zones will be in a folder named Learn, cleans up the main Zone folder:

Code:
FXEpilogue.zon
FXPrologue.zon
FXRowLayout.zon
FXWidgetLayout.zon
LearnFocusedFX.zon
__________________
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-11-2024, 06:26 AM   #25887
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 397
Default

Quote:
Originally Posted by Geoff Waddington View Post
Just an FYI, the following Zones will be in a folder named Learn, cleans up the main Zone folder:

Code:
FXEpilogue.zon
FXPrologue.zon
FXRowLayout.zon
FXWidgetLayout.zon
LearnFocusedFX.zon
Great
__________________

CSI_FX
: SubZone based GUI/Automapper for CSI.(UPD:2024-09-04)
Video Demo/Tutorial
Scripts for CSI: Reaper EEL2 scripts to use with CSI
MT4U is offline   Reply With Quote
Old 05-11-2024, 08:17 PM   #25888
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 665
Default

Hi Geoff,

Code changes to make X32 Track Select (the odd X32 OSC message ) to be more robust.

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

    virtual const char *GetName() override { return "OSC_X32IntFeedbackProcessor"; }
    
    virtual void ForceValue(const PropertyList &properties, double value) override
    {
        lastDoubleValue_ = value;
        
        if (oscAddress_.find("/-stat/selidx/") != string::npos  && value != 0.0)
        {
            string selectIndex = oscAddress_.substr(oscAddress_.find_last_of('/') + 1);
            surface_->SendOSCMessage(this, "/-stat/selidx", (int)atoi(selectIndex .c_str()));
        }
        else
            surface_->SendOSCMessage(this, oscAddress_.c_str(), (int)value);
    }
};
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 05-12-2024, 04:52 AM   #25889
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Hi Geoff,

Code changes to make X32 Track Select (the odd X32 OSC message ) to be more robust.

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

    virtual const char *GetName() override { return "OSC_X32IntFeedbackProcessor"; }
    
    virtual void ForceValue(const PropertyList &properties, double value) override
    {
        lastDoubleValue_ = value;
        
        if (oscAddress_.find("/-stat/selidx/") != string::npos  && value != 0.0)
        {
            string selectIndex = oscAddress_.substr(oscAddress_.find_last_of('/') + 1);
            surface_->SendOSCMessage(this, "/-stat/selidx", (int)atoi(selectIndex .c_str()));
        }
        else
            surface_->SendOSCMessage(this, oscAddress_.c_str(), (int)value);
    }
};
Thanks, will be in next commit.
__________________
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-12-2024, 09:33 AM   #25890
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

CSI has close to 8 years of bloat and cobwebs.

Part of the Reaper inclusion exercise aims to improve that situation.

First off, don't worry, we won't be changing the FX zones, folks have a lot of those, but they are relatively straightforward, no Included Zones, no Associated Zones, just the possibility of a SubZone or two.

If you saw the code for parsing Zones you would either get dizzy or sick to your stomach, or both

Which leads to the following.

I'm proposing some fairly substantial changes to what we now call Included and Associated Zones.

Keep in mind, this is mostly relatively hard coded stuff that gets distributed in the CSI folder, most folks won't ever modify it.

1) Do we really need a separate Buttons zone, seems like it should just be part of the Home definition.

2) Consider this Zone for Learn:

Code:
Zone FXRowLayout
	Channels 8
	"" ""
	"Shift" ""
	"Control" ""
	"Option" ""
ZoneEnd
This is metadata for generating/editing FX Zones.

We could apply the same technique to Associated Zones, which really should be called radio button Zones, since they are mutually exclusive:

Code:
Zone RadioButton
        Home
       	SelectedTracks
       	SelectedTrackSend
       	SelectedTrackReceive
       	SelectedTrackFXMenu
       	MasterTrackFXMenu
       	TrackSend
       	TrackReceive
       	TrackFXMenu
       	VCA
       	Folder
       	SelectedTrackTCPFX
       	SelectedTrackTCPFXTemplate
	CustomAux
	CustomBuses
	CustomOutputs
	CustomLayoutSmallCompressor
ZoneEnd
This approach allows a lot more freedom in defining what was previously an Associated Zone, and there would be no need for the "Custom" tag we hacked in there.

3) Do any other Zones except Home need Included Zones ?

The only reason Home actually needs these is because a Zone can only have one Navigator -- Track and MasterTrack need their own Navigators.

We could do something like this:

Code:
Zone HomeIncluded
	Track
        MasterTrack
ZoneEnd
4) Speaking of track, consider the other metadata Zone for Learn:
Code:
Zone FXWidgetLayout
	Rotary FXParam RingStyle=Dot
	DisplayUpper FixedTextDisplay
	DisplayLower FXParamValueDisplay
ZoneEnd
Notice the the '|' symbol is nowhere to be found.

That's because the 2 metadata files for Learn, when taken together, render that construct redundant.

So a Track file could look like this:
Code:
Zone "Track"
    VUMeter                 TrackOutputMeterMaxPeakLR
    DisplayUpper            TrackNameDisplay
    Fader                   TrackVolume 
    Touch+DisplayLower      TrackVolumeDisplay
    Flip+Fader              TrackPan 

    Rotary                  TrackPanAutoLeft RingStyle=Dot   // Pan
    Toggle+Rotary           TrackPanAutoRight RingStyle=Dot  // Width
    DisplayLower            TrackPanAutoLeftDisplay
    Toggle+DisplayLower     TrackPanAutoRightDisplay

    RotaryPush              ToggleChannel
    Control+RotaryPush      TrackPan [ 0.5 ]
    Option+RotaryPush       TrackPanWidth [ 1.0 ]

    ...

    ZoneEnd
What do you think ?
__________________
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-12-2024, 10:44 AM   #25891
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Quote:
Originally Posted by Geoff Waddington View Post
1) Do we really need a separate Buttons zone, seems like it should just be part of the Home definition.
Did we ever really NEED it? I always thought buttons could be defined in the Home zone but we just kept it separate to make things tidier and easier to find. Which makes sense to me. Otherwise, the Home zone can get very scary looking.

Quote:
Originally Posted by Geoff Waddington View Post
2) Consider this Zone for Learn:

Code:
Zone FXRowLayout
	Channels 8
	"" ""
	"Shift" ""
	"Control" ""
	"Option" ""
ZoneEnd
This is metadata for generating/editing FX Zones.

We could apply the same technique to Associated Zones, which really should be called radio button Zones, since they are mutually exclusive:

Code:
Zone RadioButton
        Home
       	SelectedTracks
       	SelectedTrackSend
       	SelectedTrackReceive
       	SelectedTrackFXMenu
       	MasterTrackFXMenu
       	TrackSend
       	TrackReceive
       	TrackFXMenu
       	VCA
       	Folder
       	SelectedTrackTCPFX
       	SelectedTrackTCPFXTemplate
	CustomAux
	CustomBuses
	CustomOutputs
	CustomLayoutSmallCompressor
ZoneEnd
This approach allows a lot more freedom in defining what was previously an Associated Zone, and there would be no need for the "Custom" tag we hacked in there.
Food for thought: why do we need the channel count in there at all? It's already defined at the device level in Preferences and in the csi.ini. Why can't CSI just assume if you have an 8 channel surface that it will use 8 channels everywhere? Is anyone defining a different number for FX?

Quote:
Originally Posted by Geoff Waddington View Post
3) Do any other Zones except Home need Included Zones ?
What about included SubZones? I've only ever called SubZones from either Buttons.zon (which gets covered by custom zones) and FX zones. Nothing else needs IncludedZones. At least, nothing that comes to mind.

Quote:
Originally Posted by Geoff Waddington View Post
4) Speaking of track, consider the other metadata Zone for Learn:
Code:
Zone FXWidgetLayout
	Rotary FXParam RingStyle=Dot
	DisplayUpper FixedTextDisplay
	DisplayLower FXParamValueDisplay
ZoneEnd
Notice the the '|' symbol is nowhere to be found.

That's because the 2 metadata files for Learn, when taken together, render that construct redundant.

So a Track file could look like this:
Code:
Zone "Track"
    VUMeter                 TrackOutputMeterMaxPeakLR
    DisplayUpper            TrackNameDisplay
    Fader                   TrackVolume 
    Touch+DisplayLower      TrackVolumeDisplay
    Flip+Fader              TrackPan 

    Rotary                  TrackPanAutoLeft RingStyle=Dot   // Pan
    Toggle+Rotary           TrackPanAutoRight RingStyle=Dot  // Width
    DisplayLower            TrackPanAutoLeftDisplay
    Toggle+DisplayLower     TrackPanAutoRightDisplay

    RotaryPush              ToggleChannel
    Control+RotaryPush      TrackPan [ 0.5 ]
    Option+RotaryPush       TrackPanWidth [ 1.0 ]

    ...

    ZoneEnd
What do you think ?
What about instances where a user wants to target a particular fader? Easiest example: utilizing Fader1 for FocusedFXParam, then leaving Faders2-8 alone. Would that still be possible?

Lots of "what about" questions in there but just trying to see if there are holes that can be poked into this. Otherwise, what you're proposing works for me!

Hopefully Undark sees this. His setup is much more complex than mine.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 05-12-2024, 10:58 AM   #25892
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by Funkybot View Post
Did we ever really NEED it? I always thought buttons could be defined in the Home zone but we just kept it separate to make things tidier and easier to find. Which makes sense to me. Otherwise, the Home zone can get very scary looking.
Well, once we remove Included and Associated Zones, Home would get pretty sparse by itself:

Code:
Zone Home
    OnInitialization	ToggleRestrictTextLength 7
    OnInitialization 	ToggleEnableFocusedFXMapping
    OnInitialization    ToggleUseLocalModifiers
    OnInitialization    SetLatchTime 100
ZoneEnd

Quote:
Originally Posted by Funkybot View Post
Food for thought: why do we need the channel count in there at all? It's already defined at the device level in Preferences and in the csi.ini. Why can't CSI just assume if you have an 8 channel surface that it will use 8 channels everywhere? Is anyone defining a different number for FX?
Sorry, wasn't clear enough.

I am saying the RadioButton Zone replaces the Associated Zones in Home, nothing to do with channel count, but rather, illustrating the use of metadata Zones -- both FXRowLayout and RadioButton are metadata Zones.

[edit] I also see what you mean, will remove:
Code:
	Channels 8
from FXRowLayout.

Quote:
Originally Posted by Funkybot View Post
What about included SubZones? I've only ever called SubZones from either Buttons.zon (which gets covered by custom zones) and FX zones. Nothing else needs IncludedZones. At least, nothing that comes to mind.
Yes, we would keep SubZones.

Quote:
Originally Posted by Funkybot View Post
What about instances where a user wants to target a particular fader? Easiest example: utilizing Fader1 for FocusedFXParam, then leaving Faders2-8 alone. Would that still be possible?

Lots of "what about" questions in there but just trying to see if there are holes that can be poked into this. Otherwise, what you're proposing works for me!

Hopefully Undark sees this. His setup is much more complex than mine.

Yes, Fader1 is fine in a FocusedFXParam Zone, I'm talking strictly about Zones where wildcards are presently used -- Track, TrackSend, etc.
__________________
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

Last edited by Geoff Waddington; 05-12-2024 at 12:46 PM.
Geoff Waddington is offline   Reply With Quote
Old 05-12-2024, 03:18 PM   #25893
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 397
Default

Quote:
Originally Posted by Funkybot View Post
What about included SubZones? I've only ever called SubZones from either Buttons.zon (which gets covered by custom zones) and FX zones. Nothing else needs IncludedZones. At least, nothing that comes to mind.
Same here, I only call SubZones from FX SubZones and the Buttons zones.
__________________

CSI_FX
: SubZone based GUI/Automapper for CSI.(UPD:2024-09-04)
Video Demo/Tutorial
Scripts for CSI: Reaper EEL2 scripts to use with CSI
MT4U is offline   Reply With Quote
Old 05-12-2024, 03:27 PM   #25894
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by MT4U View Post
Same here, I only call SubZones from FX SubZones and the Buttons zones.
Cool, that should work, since Buttons and Home have the same Navigator.

So, you will now be calling SubZones from Home instead of Buttons.

FX SubZones will remain unchanged.
__________________
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-13-2024, 05:10 AM   #25895
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

One more FYI.

Actions will now provide feedback, unless specifically instructed not to do so.

This only matters if a Widget triggers more than one Action.

Code:
SomeWidget AnAction
SomeWidget AnotherAction Feedback=No
I think this is reasonable, since very few folks -- who know what they are doing, mostly -- will be utilizing this feature.
__________________
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-13-2024, 05:41 AM   #25896
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 753
Default

It looks like there will be a lot of major changes, may I respectfully ask why?
I mean, it worked fine before, there are a couple of missing features (like touch+flip showing current value) or things that could be improved (like meters calibration), but did it really need to be changed so much?

Won't that be a lot of trouble to rearrange the whole config that most of us probably spent a lot of time on?

I'm not complaining, I'm just wondering why all the back and forth trying to change the way things work, as they say, if it ain't broke don't fix it.
fourdogslong is online now   Reply With Quote
Old 05-13-2024, 06:32 AM   #25897
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 923
Default

What about the likes of Scrub, Nudge and Zoom zones.
Subzones (from buttons) so they should still be fine RIGHT?
Freex is offline   Reply With Quote
Old 05-13-2024, 07:03 AM   #25898
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by fourdogslong View Post
It looks like there will be a lot of major changes, may I respectfully ask why?
I mean, it worked fine before, there are a couple of missing features (like touch+flip showing current value) or things that could be improved (like meters calibration), but did it really need to be changed so much?

Won't that be a lot of trouble to rearrange the whole config that most of us probably spent a lot of time on?

I'm not complaining, I'm just wondering why all the back and forth trying to change the way things work, as they say, if it ain't broke don't fix it.
Well, it ain't broke on the outside...

Aiming to improve improve the internal code quality to try and approach the lofty Reaper standard, believe me, it's a good thing

Most configs should only require minor changes.
__________________
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-13-2024, 07:05 AM   #25899
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by Freex View Post
What about the likes of Scrub, Nudge and Zoom zones.
Subzones (from buttons) so they should still be fine RIGHT?
Yup
__________________
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-13-2024, 07:30 AM   #25900
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Quote:
Originally Posted by Geoff Waddington View Post
Well, it ain't broke on the outside...

Aiming to improve improve the internal code quality to try and approach the lofty Reaper standard, believe me, it's a good thing

Most configs should only require minor changes.
Part of me kind of hopes that adding CSI to Reaper will eventually mean that there will be no more breaking changes in the future so this will be the last major re-arch of the code. The Reaper team is pretty good about not deprecating functionality unless absolutely needed so if one last cleanup gets us to a point where that becomes the future of CSI, then I'm all for it. But for the love of God, no more after this please! No one's looking at the code but Geoff, Roy, and maybe Justin/Schwa in the future. We just desire working CSI configs that aren't in constant flux. Don't let perfect be the enemy of good and all that jazz.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 05-13-2024, 07:37 AM   #25901
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by Funkybot View Post
Part of me kind of hopes that adding CSI to Reaper will eventually mean that there will be no more breaking changes in the future so this will be the last major re-arch of the code. The Reaper team is pretty good about not deprecating functionality unless absolutely needed so if one last cleanup gets us to a point where that becomes the future of CSI, then I'm all for it. But for the love of God, no more after this please! No one's looking at the code but Geoff, Roy, and maybe Justin/Schwa in the future. We just desire working CSI configs that aren't in constant flux. Don't let perfect be the enemy of good and all that jazz.
It won't be included in Reaper until it meets a certain standard, period.

After that, there will be no more breaking changes.

I totally get your frustration, but until the standard is met, it won't get added.
__________________
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-13-2024, 08:17 AM   #25902
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

I wouldn't even say it's frustration - so apologies if it comes across that way. I look at it as advocacy for not making breaking changes when possible.

It's all intended as being some good-natured food for though/consideration. I totally support and look forward to the new direction and future of CSI, especially being included in Reaper!
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 05-13-2024, 08:36 AM   #25903
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by Funkybot View Post
I wouldn't even say it's frustration - so apologies if it comes across that way. I look at it as advocacy for not making breaking changes when possible.

It's all intended as being some good-natured food for though/consideration. I totally support and look forward to the new direction and future of CSI, especially being included in Reaper!
Thanks.

Onward Ho !!
__________________
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-13-2024, 08:45 AM   #25904
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 397
Default

As a developer myself I totally understand (and don't envy ) what Geoff is doing right now. Specially with such a broad use-cases scenario as CSI, that adapts to ANY Surface and workflow.

It's a great time to show our support.
__________________

CSI_FX
: SubZone based GUI/Automapper for CSI.(UPD:2024-09-04)
Video Demo/Tutorial
Scripts for CSI: Reaper EEL2 scripts to use with CSI
MT4U is offline   Reply With Quote
Old 05-13-2024, 08:52 AM   #25905
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by MT4U View Post
As a developer myself I totally understand (and don't envy ) what Geoff is doing right now. Specially with such a broad use-cases scenario as CSI, that adapts to ANY Surface and workflow.

It's a great time to show our support.
Thanks man, appreciate it !
__________________
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-13-2024, 08:53 AM   #25906
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

It would be a great help if as many folks as possible post their SubZones, and how they call them.

That would ensure I get things right.

Thanks!
__________________
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-13-2024, 10:10 AM   #25907
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Quote:
Originally Posted by MT4U View Post
It's a great time to show our support.
Indeed! Donation sent!
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 05-13-2024, 10:56 AM   #25908
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 753
Default

Quote:
Originally Posted by Geoff Waddington View Post
Well, it ain't broke on the outside...

Aiming to improve improve the internal code quality to try and approach the lofty Reaper standard, believe me, it's a good thing

Most configs should only require minor changes.
I understand, thanks for all the hard work! I`m sure it will be worth it in the end.
fourdogslong is online now   Reply With Quote
Old 05-13-2024, 11:02 AM   #25909
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 753
Default

Quote:
Originally Posted by Geoff Waddington View Post
It would be a great help if as many folks as possible post their SubZones, and how they call them.

That would ensure I get things right.

Thanks!
Here are mine:

Mode (this changes what my arrows and jobwheel do)
Code:
Zone Mode
    Down                    	Reaper 40111                // Zoom in vertical                                            
  	Up                  		Reaper 40112                // Zoom out vertical                                                       
    Right                  		Reaper 1012                 // Zoom in horizontal                                      
    Left                   		Reaper 1011                 // Zoom out horizontal	
                                      
	Decrease+JogWheel           Reaper 40840                // Move edit cursor back one measure (no seek)  
    Increase+JogWheel           Reaper 40839                // Move edit cursor forward one measure (no seek)  
	
    Shift+Decrease+JogWheel    	Reaper 1011                 // Zoom out horizontal           
    Shift+Increase+JogWheel    	Reaper 1012                 // Zoom in horizontal                
    Option+Decrease+JogWheel    Reaper 40112                // Zoom out vertical   
    Option+Increase+JogWheel    Reaper 40111                // Zoom in vertical   	
	
	Control+Decrease+JogWheel   Reaper _SWS_SCROLL_L10      // SWS: Scroll left 10%
    Control+Increase+JogWheel   Reaper _SWS_SCROLL_R10      // SWS: Scroll right 10%   
    Alt+Decrease+JogWheel       Reaper _XENAKIOS_TVPAGEUP   // Xenakios/SWS: Scroll track view up (page)
    Alt+Increase+JogWheel       Reaper _XENAKIOS_TVPAGEDOWN // Xenakios-SWS: Scroll track view down
     
    Mode		   				LeaveSubZone
ZoneEnd
Scrub zone: (changes the jogwheel navigation behaviour)
Code:
Zone Scrub
    Decrease+JogWheel     Reaper 40084                // Rewind a little bit  
    Increase+JogWheel     Reaper 40085                // Forward a little bit    

	Scrub			    LeaveSubZone			
ZoneEnd
FX mode zone (gives me visual feedback for my FX categories on each track, uses the MT4U script)
Code:
Zone FXMode
		    
	RotaryPush1		 	    				Reaper _RS4a59873d8a864b25ad252cf47f7bed5a73c17cbf      // MT4U_F_FX4.eel
	Alt+RotaryPush1	 	    				Reaper _RS94d36270a59c05e387a234a4a359347c63cb2273		// MT4U_F_FX4_Add.eel

	RotaryPush2			    				Reaper _RS87571b848a098b379fa88401f9884989becf701c      // MT4U_F_FX5.eel
	Alt+RotaryPush2		    				Reaper _RS5fbaef55bfde55c2ebdd2ba5a7f3ef84e1684df9		// MT4U_F_FX5_Add.eel

	RotaryPush3			    				Reaper _RS3d5b56e2458a161a4e2191dc32c52f5aa9726bd6      // MT4U_F_FX6.eel
	Alt+RotaryPush3		    				Reaper _RSa65abfe8faf42eeffddef53188b1646c7ca9d81d		// MT4U_F_FX6_Add.eel

	RotaryPush4			    				Reaper _RS3a001acbac4ded63ca2187d0290fce88dbc713cc      // MT4U_F_FX7.eel
	Alt+RotaryPush4		    				Reaper _RSa13088123d871028400c1ffeb126af7f58d627d1		// MT4U_F_FX7_Add.eel

	RotaryPush5			    				Reaper _RS81348526f4d175fa6d40bbfcb4051dea643c6ac4      // MT4U_F_FX8.eel
	Alt+RotaryPush5		    				Reaper _RS173b2f63134d8e63d55783518c1b61a328a33751		// MT4U_F_FX8_Add.eel

	RotaryPush6			    				Reaper _RSc761747e39961c41fe2919a6330954754c0dd28d      // MT4U_F_FX9.eel
	Alt+RotaryPush6		    				Reaper _RS3064fad6946f480771ec28ec13eebfce92221b86		// MT4U_F_FX9_Add.eel
	
	RotaryPush7			    				Reaper _RS70deecde9d1768ba2e1fc7c32dbe5e5ebffe02a3      // MT4U_F_FX10.eel
	Alt+RotaryPush7		    				Reaper _RSfd2aee83062555058002371a7cd46ad9f7aff08b		// MT4U_F_FX10_Add.eel
	
	RotaryPush8			    				Reaper _RS46fd31e460a025da8b02d46b4266ad1f4e6db9a6      // MT4U_F_FX11.eel
	Alt+RotaryPush8		    				Reaper _RSdf35b4848af3dc6d07971386f976fffb023c98ca		// MT4U_F_FX11_Add.eel
	
	DisplayUpper1				FixedTextDisplay Inst
	DisplayUpper2				FixedTextDisplay 
	DisplayUpper3				FixedTextDisplay EQ
	DisplayUpper4				FixedTextDisplay 
	DisplayUpper5				FixedTextDisplay 
	DisplayUpper6				FixedTextDisplay 
	DisplayUpper7				FixedTextDisplay Dyn
	DisplayUpper8				FixedTextDisplay Harmo

    DisplayLower1               FixedTextDisplay Correct
    DisplayLower2               FixedTextDisplay FX
    DisplayLower3               FixedTextDisplay Delay
    DisplayLower4               FixedTextDisplay Verb
    DisplayLower5               FixedTextDisplay Utility
    DisplayLower6               FixedTextDisplay Tape
    DisplayLower7               FixedTextDisplay Field
    DisplayLower8               FixedTextDisplay Meters
	



// These lines provide the Prev/Next plug-in for each slot in the chain.

  Alt+Increase+Rotary1        	Reaper _RSc545ff69f595f1cae309546bcdb9179f7429c0e3      // MT4U_FX_MENU_Next_01.eel
  Alt+Increase+Rotary2        	Reaper _RS5439e90ffa8d42ed4c792c6b3a3ea73cf00fba3b      // MT4U_FX_MENU_Next_02.eel
  Alt+Increase+Rotary3	        Reaper _RS68d54e0a0cfd883a7a32300ad232da0b0b014582      // MT4U_FX_MENU_Next_03.eel
  Alt+Increase+Rotary4	        Reaper _RS03d759a19dd784936c0623261989a9d068b506b9      // MT4U_FX_MENU_Next_04.eel
  Alt+Increase+Rotary5	        Reaper _RSb2361f8e123048bd39d7939940b69a1bf42c9548      // MT4U_FX_MENU_Next_05.eel
  Alt+Increase+Rotary6	        Reaper _RS85f1b59aeae81a32fefe19bf6450a0fa211a6481      // MT4U_FX_MENU_Next_06.eel
  Alt+Increase+Rotary7	        Reaper _RSef0d0b1af31dc05cb612426330c91fe07772ba69      // MT4U_FX_MENU_Next_07.eel
  Alt+Increase+Rotary8	        Reaper _RS1f833e289409ee010d55aef22db12d40c2682bbc      // MT4U_FX_MENU_Next_08.eel
  Alt+Decrease+Rotary1	        Reaper _RS94465c3306bb9b3c9d55b8c7178f5ed761470a11      // MT4U_FX_MENU_Prev_01.eel  
  Alt+Decrease+Rotary2	        Reaper _RSa53d4aacb8b072d7a6ab0396a9defe16ad65cdb9      // MT4U_FX_MENU_Prev_02.eel  
  Alt+Decrease+Rotary3	        Reaper _RS074637b1b554af8249c502f39f5ed701aa8f31e9      // MT4U_FX_MENU_Prev_03.eel  
  Alt+Decrease+Rotary4	        Reaper _RS6c27b24ff350d5e37917f5d04efe37a8cbddc3c8      // MT4U_FX_MENU_Prev_04.eel  
  Alt+Decrease+Rotary5	        Reaper _RSe93b961d483b93912ed350205563a80bf3d1ca4f      // MT4U_FX_MENU_Prev_05.eel  
  Alt+Decrease+Rotary6	        Reaper _RSc5afaed8eff8f9fe6fadd2aef6113d8fa8cf64e4      // MT4U_FX_MENU_Prev_06.eel  
  Alt+Decrease+Rotary7	        Reaper _RSebb16895b121c261b4738e73ad6fc42db29f0909      // MT4U_FX_MENU_Prev_07.eel  
  Alt+Decrease+Rotary8	        Reaper _RS8cdd865f8ede7ec4e95a7f433bea329f780d1362      // MT4U_FX_MENU_Prev_08.eel   

// FX Selection. These allow us to select a plug-in, so we can move it up or down whithin the chain.

  RecordArm1          	        Reaper _RS5a050d77bb0db671a322ab6afeea1c473e23922b      // MT4U_FX_MENU_Sel_01.eel
  RecordArm2          	        Reaper _RS943d149b67e3955639628ad3fcba5ecb09ef0a0e      // MT4U_FX_MENU_Sel_02.eel
  RecordArm3          	        Reaper _RS9c174a048d6852aac1146045de404f785820876b      // MT4U_FX_MENU_Sel_03.eel
  RecordArm4          	        Reaper _RSc39ebef0a88dcbbb01c9a266ca09f1086bfd06ad      // MT4U_FX_MENU_Sel_04.eel
  RecordArm5          	        Reaper _RS50b6875f1a9ec9faec87346b6116d0a98007f32f      // MT4U_FX_MENU_Sel_05.eel
  RecordArm6          	        Reaper _RS9cfda924b0efc46db8d57a8bd41e7375304c370e      // MT4U_FX_MENU_Sel_06.eel
  RecordArm7          	        Reaper _RS306c3f85913dbdd73e5ad305d2d2b68d63aebad7      // MT4U_FX_MENU_Sel_07.eel
  RecordArm8          	        Reaper _RS0088ef7ea422f2bb69a043a6065cb578405e4fa0      // MT4U_FX_MENU_Sel_08.eel

// Now the actual plug-in movers.

  Up           		      		Reaper _RS95211454bfbef97e0215b0b918446426978d0014      // Script: MT4U_FX_MENU_MoveUp.eel
  Down           	      		Reaper _RScab515c7031f31eec2ec211302e3ca346798462d      // Script: MT4U_FX_MENU_MoveDown.eel


// To delete a plug-in.

  Hold+RecordArm1             	Reaper _RS6d8c8a3ec1b91ea74ddbe140f8206376b571e630      // MT4U_FX_MENU_Del.eel
  Hold+RecordArm2             	Reaper _RS6d8c8a3ec1b91ea74ddbe140f8206376b571e630      // MT4U_FX_MENU_Del.eel
  Hold+RecordArm3             	Reaper _RS6d8c8a3ec1b91ea74ddbe140f8206376b571e630      // MT4U_FX_MENU_Del.eel
  Hold+RecordArm4             	Reaper _RS6d8c8a3ec1b91ea74ddbe140f8206376b571e630      // MT4U_FX_MENU_Del.eel
  Hold+RecordArm5             	Reaper _RS6d8c8a3ec1b91ea74ddbe140f8206376b571e630      // MT4U_FX_MENU_Del.eel
  Hold+RecordArm6             	Reaper _RS6d8c8a3ec1b91ea74ddbe140f8206376b571e630      // MT4U_FX_MENU_Del.eel
  Hold+RecordArm7             	Reaper _RS6d8c8a3ec1b91ea74ddbe140f8206376b571e630      // MT4U_FX_MENU_Del.eel
  Hold+RecordArm8             	Reaper _RS6d8c8a3ec1b91ea74ddbe140f8206376b571e630      // MT4U_FX_MENU_Del.eel

  Param			      			LeaveSubZone

ZoneEnd
fourdogslong is online now   Reply With Quote
Old 05-13-2024, 07:48 PM   #25910
MalcolmG
Human being with feelings
 
MalcolmG's Avatar
 
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 198
Default

Quote:
Originally Posted by Geoff Waddington View Post
Cool, that should work, since Buttons and Home have the same Navigator.

So, you will now be calling SubZones from Home instead of Buttons.

FX SubZones will remain unchanged.

I assume subzones will still be available from Radio Button Zones (like my FX Menu example in the other thread)?


Cheers
Malcolm
MalcolmG is offline   Reply With Quote
Old 05-13-2024, 08:40 PM   #25911
Perken
Human being with feelings
 
Perken's Avatar
 
Join Date: May 2019
Location: Los Angeles / God forbid…
Posts: 207
Default

Quote:
Originally Posted by Sonotor View Post
Nobody is able to have CSI on Linux?
It would be so great if someone could do that!
And.... Also be able to install reasons on Linux!
Thanks in advance for helping.
Sorry to be bringing this message from the grave, but I just thought I'd let someone know: CSI works fine for me on linux - at least from the very little I've tested - with my midi fighter.

I just compiled it using the repo's make file, and everything works.
You'll probably need gcc and build tools. Download the github repository, and compile from your terminal:
Code:
$ make .
Perken is offline   Reply With Quote
Old 05-14-2024, 08:12 AM   #25912
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 923
Default

I have
Code:
    Output                      GoAssociatedZone MasterTrack
and a MasterTrack.zone
Code:
Zone "MasterTrack"
    Fader1               TrackVolume
    Rotary1              TackPan [ (0.005,0.5) ]
    Mute                 TackMute
    Solo                 Reaper 40917                   //Toggle Stereo/Mono
ZoneEnd
for the Faderport Classic, it used to all work, but just noticed that only the Fader and Solo buttons are working as expected now.

Not sure what happened, as they did work at one point.
Freex is offline   Reply With Quote
Old 05-14-2024, 02:24 PM   #25913
MalcolmG
Human being with feelings
 
MalcolmG's Avatar
 
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 198
Default

Quote:
Originally Posted by Freex View Post
I have
Code:
    Output                      GoAssociatedZone MasterTrack
and a MasterTrack.zone
Code:
Zone "MasterTrack"
    Fader1               TrackVolume
    Rotary1              TackPan [ (0.005,0.5) ]
    Mute                 TackMute
    Solo                 Reaper 40917                   //Toggle Stereo/Mono
ZoneEnd
for the Faderport Classic, it used to all work, but just noticed that only the Fader and Solo buttons are working as expected now.

Not sure what happened, as they did work at one point.

I noticed Track is spelled incorrectly for Mute and Rotary1. Is that the case in the actual file?


Cheers
Malcolm
MalcolmG is offline   Reply With Quote
Old 05-14-2024, 03:49 PM   #25914
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by MalcolmG View Post
I assume subzones will still be available from Radio Button Zones (like my FX Menu example in the other thread)?


Cheers
Malcolm
Yes, they will.
__________________
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-14-2024, 03:51 PM   #25915
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by Perken View Post
Sorry to be bringing this message from the grave, but I just thought I'd let someone know: CSI works fine for me on linux - at least from the very little I've tested - with my midi fighter.

I just compiled it using the repo's make file, and everything works.
You'll probably need gcc and build tools. Download the github repository, and compile from your terminal:
Code:
$ make .
Thanks for compiling and testing this !!

The source code is basically non functional right now -- in the midst of some major renovations.

Once they are complete you should be good to go
__________________
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-14-2024, 03:55 PM   #25916
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

GoAssociatedZone will soon be removed.

Need a name for the Action that replaces it.

It has radio button / mutually exclusive behaviour.

Two candidates:
Code:
GoRadioButtonZone
GoMutexZone
Kinda leaning toward GoMutexZone, but is that too geeky ?

Got a better name ?
__________________
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-14-2024, 04:11 PM   #25917
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 923
Default

Quote:
Originally Posted by MalcolmG View Post
I noticed Track is spelled incorrectly for Mute and Rotary1. Is that the case in the actual file?


Cheers
Malcolm
And now i feel like such an idiot, I'm not even sure how that happened.
I just assumed something had gone awry, as they used to work.

Thanks for being my eyes.

Time for me to get new glasses.....
Freex is offline   Reply With Quote
Old 05-14-2024, 04:21 PM   #25918
MalcolmG
Human being with feelings
 
MalcolmG's Avatar
 
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 198
Default

Quote:
Originally Posted by Freex View Post
And now i feel like such an idiot

We've all done it before, so don't sweat it :-)
MalcolmG is offline   Reply With Quote
Old 05-14-2024, 04:57 PM   #25919
MalcolmG
Human being with feelings
 
MalcolmG's Avatar
 
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 198
Default

Quote:
Originally Posted by Geoff Waddington View Post
GoAssociatedZone will soon be removed.

Need a name for the Action that replaces it.

It has radio button / mutually exclusive behaviour.

Two candidates:
Code:
GoRadioButtonZone
GoMutexZone
Kinda leaning toward GoMutexZone, but is that too geeky ?

Got a better name ?

Just a thought, I wonder if the mutex-ness is an important distinction to a user? I mean, one scenario could just be to bring back the name GoZone, and the default behaviour is that going to a zone means it's mutually exclusive to those other zones. GoSubZone is the exception, and it's named as such.



Cheers
Malcolm
MalcolmG is offline   Reply With Quote
Old 05-14-2024, 05:04 PM   #25920
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by MalcolmG View Post
Just a thought, I wonder if the mutex-ness is an important distinction to a user? I mean, one scenario could just be to bring back the name GoZone, and the default behaviour is that going to a zone means it's mutually exclusive to those other zones. GoSubZone is the exception, and it's named as such.



Cheers
Malcolm
I like it !

And we could name the metadata file accordingly:
Code:
Zone GoZones
    SelectedTracks
    SelectedTrackSend
    SelectedTrackReceive
    SelectedTrackFXMenu
    MasterTrackFXMenu
    TrackSend
    TrackReceive
    TrackFXMenu
    VCA
    Folder
    SelectedTrackTCPFX
    SelectedTrackTCPFXTemplate
    CustomAux
    CustomBuses
    CustomOutputs
    CustomLayoutSmallCompressor
ZoneEnd
__________________
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
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 04:51 AM.


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