THERE IT IS: the ultimate custom module for cubase users (at least for me)

couldn't you use these cc identifiers with my custom module? something like:

if (host === 'midi' && port === 'DAWtoOSC' && address === '/control' && args[1].value === 117) {
    if (args[2].value = 12) {
    articulation = SPAO Woods High
        }
    }

assuming you have the articulations ready in the custom module.
this way you could leave track name as is. i don't know if this works. just a thought.

do you need to see the track name in OSC? if not we could edit the track name on the fly in custom module i think.
"Woods High [SPAO] [v] [m] [wh]" arrives in custom module and gets converted to "117 - 12"

and then:

if (trackname.includes(117 - 12)) {
    articulation = SPAO Woods High
}

No don’t think so - the cc value is the one that gets sent back from the transformer plugin using “the old method” to determine the map and therefore is object in the custom module - not the cc for the articulation itself.

I was going to use your custom module method with sysex to grab the track name, extract the tag from it as a variable so therefore use the tag to determine the map being used.

I don’t have too much trouble with the transformer plugin method for midi tracks but the benefit from your sysex method for me will be fixing a limitation on how many instrument tracks I can use the articulation mapping in OSC on - I’ve got a workaround to fix the lack of midi send function on instrument tracks but it is limited to 128 tracks and my template runs to 1000+

Hi everybody !

Are we still on christmas time ? :partying_face: Santa - @gcat - Claus, i'm trying to get the whole thing working... I understood how to have the trackname in a text widget, and that's super super cool, but now i'm stuck...

So...

  • to simplify the whole process for me, i just let one instrument in the json :
var as_bass_upright = loadJSON('../Cubase Expression Maps/AS - Bass Upright.json');

var art_as_bass_upright = [as_bass_upright.InstrumentMap.member[0]?.list.obj[0]?.string[1].value,
    as_bass_upright.InstrumentMap.member[0]?.list.obj[1]?.string[1].value,
    as_bass_upright.InstrumentMap.member[0]?.list.obj[2]?.string[1].value,
    as_bass_upright.InstrumentMap.member[0]?.list.obj[3]?.string[1].value,
    as_bass_upright.InstrumentMap.member[0]?.list.obj[4]?.string[1].value,
    as_bass_upright.InstrumentMap.member[0]?.list.obj[5]?.string[1].value];

var articulation = art_as_bass_upright;

  • i converted my expression map online (convertjson.com), having set the "encoding field" to uft-8.
  • in my O-S-C folder, i made a dedicated "Cubase Expression Map" folder, in which i put the converted json.
  • set all the 55 buttons :

And obviously, i'm missing something here... maybe in the props ?...

Thanks :wink:

Yes - this would work, but from what you're saying above the 18 character limitation would make this more difficult as I'd lose the tag - especially if I've got a number of similar tracks with a space at the same place.
Let me have a look at it and see.

i want to get to a point where the track is selected - the name is sent to OSC - OSC (on the fly as you say) extracts the tag from the name, OSC then reads the correct articulations for a map (using the tag) that has been populated into OSC dynamically from the xml of the expression map.

This would then avoid having to repopulate the custom module with articulations every time I edit or create a new map and I could use the sysex instead of plugins and therefore save time every time I add a new track.

Looking again at your original json file I think that there could be a way to slim that down to avoid a lot of the if statements - the really useful bit that you've created is the sysex filter. I'm going to have a real play with this over the next 24 hours and see what I can do.

Wish me luck...

Good luck :wink: May the Code be with you...

that's great. i hope things gonna work out somehow.

best of luck

did you style all your buttons like this?

css:

:host {
            #{
                OSC{/b1/show, 1, false} == 0 ? "display:none;" : ""
            } 
            text-transform:none;
            Font-size:147%;
            margin: 0.17em;
        }

label:

#{
OSC{/b1/label, , false}
}

I was searching something like that... not used to the OSC{} thing...
However... still nothing but tracks name..

can you post your custom module

image

And my custom module:

CubaseControl v4 alpha5.js (237.5 KB)

you have to do it for each button:

b1:

// css
 
:host {
            #{
                OSC{/b1/show, 1, false} == 0 ? "display:none;" : ""
            } 
            text-transform:none;
            Font-size:147%;
            margin: 0.17em;
        }

// label

#{
OSC{/b1/label, , false}
}
...

b2:

// css

:host {
#{
OSC{/b2/show, 1, false} == 0 ? "display:none;" : ""
}
text-transform:none;
Font-size:147%;
margin: 0.17em;
}

// label

#{
OSC{/b2/label, , false}
}
...

did you do the custom module like i did?

Yep, i just took your custom module, and just change a few things :

  • delete all instr, and set just one of mine
  • change directory of the converted expression map
  • and that's it... now on my way to fill all the button's css and labels :slight_smile:

here is my module :
Cubase_touch_perso.js (5.5 KB)

here is my converted expression map :
AS_Bass_Upright.json (70.0 KB)

Btw, i was wondering : i don't know what really means ../ in the file path loadJSON('../Maps/AS_Bass_Upright.json')... i guess it leads to the o-s-c directory...

i will check it.
../ is the path relativ to your custom

Wow... as i can see... while i'm on Earth, making some little mouse jumps to try to get into the spacecraft, you're already far far away travelling through the Galaxy... :crazy_face: Gonna have a close look at your module ! So interesting ! So much to learn.... Thank you :+1:

No probs - most of it is pulled from other work and adapted, just as we’re doing here…

1 Like

i am by no means a coder. it's copy pasting, googling, deleting, googling again, trial and error...repeat repeat repeat... :crazy_face:

i think i found the problem:


all these underlines shouldn't be there. maybe you can try another site to convert your files. i used this one:

https://www.oxygenxml.com/xml_json_converter.html

after downloading the json file you have to open it in a code editor and save with encoding UTF-8

1 Like

:+1: got it, now i have the articulations names !

Coooooooooool ! Thank you, Santa gcataus !

awesome :ghost:

you're welcome

Here’s a useful resource…

Mackie HUI protocol