I have set up your project with your custom modul. I have installed the node modules xml2js and glob in my custom modul folder and set the right path for glob and the Expression Map
I get the the first text_1 from Cubase with little glitches but ok.
Text_2 makes nothing (recieved from xml)
And no Buttons on the grid.. I have the one expression map in cubase loaded.
Can you please help me were my mistake is?
Thank you very much
As for the text-2 widget, how did you name your expression maps ?
For me, using this : AmpleSound - ASBU - Bass Upright.expressionmap shows ASBU in text_2.
I'm really sorry Barry, but right now i'm "out from o-s-c"... i've spent too much time on it (actually... months... learning everything from 0...)... Custom module is a huge piece i do not master, and to help you with what i know, i would have to dig again into it... but now, i... just can't... I just need to turn off my pc, and have a big big break...
I'll be back for sure, and will be pleased to help you... as soon as possible...
In the meanwhile, have fun exploring this amazing piece of software ! (and don't forget to go for a walk...)
Hope you the best and yes we can be overhelmed by tech if we don't care of ourselves. So yes don't forget to have a walk or whatever else to take a break. La paresse a ses vertus !
Salutations
Unfortunately, I find it impossible to "insert" a expression map to a note remotely, I've already succeed in readinng expression maps from cubase. But there is just no way to do "insert" the expression map. The only thing I can do is to simply switch between articulations(won't write down the fixed expression map value, just a simple switch), which I already can do with my midi keyboard.
If you're recording, you can definitely record and write the expression map to the recorded notes, but I acutally prefer writing with mouse for orchestra instead of recording. So I actually wanted to do this: select the note, press a button from OSC, the expression map state of that note automatically change from "none" to "Legato" and I mean the real "written down" version(so there would be text no the note) instead of just changing the articulations from slot 1 to slot 2. Turns out it's impossible for cubase to do this..... There is just no function for that yet.....
Nice ok i will give it a try. but how can I display the track name?
I have done it until now via receive /EDIT , text_1. But with that fuction i think its different.
i have put the OSC Listener in a text widget and the reciever in your fuction but it didnt work, also put the reciever in the oscInFilter but also didnt work. i have put my last try in the code.
Can you help me were i must put the reciever?
module.exports = {
oscInFilter:function(data){
var { address, args, host, port } = data
////----------------------------------------------------------------------------------------------------///////////////
// MCU test area here //
////----------------------------------------------------------------------------------------------------///////////////
if (host === 'midi' && port === 'MCU_To_OSC' && address === '/sysex') {
//Check incoming sysex data and use if it contains the lcd text
if (args[0].value.includes("f0 00 00 66 14 12")) { // sysex header for mackie lcd text
let sysExVal = args[0].value
//Use the function getTrackName to do all the cool stuff to get the fullTrackName
let fullTrackName = getTrackName(sysExVal)
//Strip out the trackMapTag from the full name
//limitatation - track tag has to be in the last 6 characters of the name
//To avoid complications also strip off the square brackets
trackMapTag = (fullTrackName.substring(fullTrackName.length - 6));
trackMapTag = trackMapTag.replace('#', '')
if (fullTrackName) {
receive('/EDIT', 'text_1', {value: fullTrackName})}
}
}
I'm trying to use the code posted by Sylvain to get the track names from Logic using Mackie control protocol.
I've managed to get the full track name from logic on the virtual MCU lcd.
Problem is getting it correctly...
With cubase, the track name always start at the same position on the LCD and the actual code to get the track name is simple :
// update text widget
set("lcd_MODIFIED", locals.text.slice(72,101).join(""))}
With logic, MCU LCD look like this :
Track 1 "yourtrackname" channel strip
Track 258 "yourtrackname1234567890123" channel strip
Track 12 "yourtracknameotherlenght" channel strip
My first issue is with the starting slice :
after Track 9, the track name will be sliced at the wrong place as it will start one step further, more issues after the Track 99...
what code should I use to remove " at the beginning of the track name string and to also remove Space" while keeping the start if the string doesn't begin with " or Space" ?
Second issue is at the end of the track name, depending on its length, "channel strip" will be more or less closer.
Any idea of script slicing everything from the last " at the end of the track name will also be greatly appreciated.
I'm sorry, I'm not the best coder
I've managed to get the full length Logic track names from touch OSC in OpenStageControl (and it is really easier), but I'd rather use the MCU way as it is directly implemented in Logic and it should be a cleaner solution than using bridge and touch OSC as a Logic controller and as a relay to OpenStageControl on the top
Thanks for your help !
EDIT : I've duplicated this post on a new dedicated Logic topic :