View Single Post
Old 09-21-2017, 02:37 AM   #136
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
Default

Wow, one of those super weeks you get every now and then, mostly by luck

Pleased to announce a working prototype -- maps are hardwired in code right now, so next step is to read/write map file, then we can put out an alpha.

A billion details yet to solve, but thought I'd throw out some terminology and explain basic architecture so that you good folks can find holes in the thinking as early and as often as possible.

Seriously, please make sure to point out any design errors/omissions you see, let's get this thing as "right" as possible from the git go, it's way easier to solve problems earlier in the cycle !

OK, here's the basic architecture from the "Russian Dolls" code viewpoint:

Control Surface
Contains Components (e.g. Mute switch, Fader, etc.)
You can name a Component anything you like.
Component tells Reaper to perform an Action (more general than Reaper Actions)
Component can receive feedback from Reaper
Arbitrary Surface Components can be gathered together and treated as a Channel

So we have:

Control Surface
--Components
--Channels
----Components

Now on the Reaper side we have the functionality that can be controlled by the surfaces:

Reaper itself has Actions -- global things like Transport
Reaper Tracks -- Actions are things like Fader, Mute, etc.
Actions -- not Reaper Actions, but rather arbitrary Actions than can be performed like "Adjust Fader", "Toggle Mute", etc.
You can name an Action anything you like.

So we have:

Reaper
--Actions
--Track
----Actions

with Control Surface:

Control Surface
--Components
--Channels
----Components

Components and Reaper Actions are linked by names you define, name a Component and Action the same and they're linked, it's that simple.

The only caveat is that names must be unique in a given map file.

I'm sure there be dragons somewhere, but the Mackie basics, Channels, Transport, and Bank are working right now, along with this bonus -- Pushing top switch on rotary encoder switches between Pan and Width.

It's all described with just map entries that are saved in a file that you can customize

Really, really, need your input -- now's the time !!

What do you think ?

What's wrong ?

What could be better ?
__________________
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; 09-21-2017 at 02:46 AM.
Geoff Waddington is offline   Reply With Quote