Fix for missing MIDI remotes in Cubase 13/14
Fix for missing MIDI remotes in Cubase 13/14
In case anyone has been having the same Cubase problem as me - MIDI remotes disappearing after each start-up...
It seems that the .js script files are looking for ports that do not exist. Essentially the user-fix for this is to amend the script to point at the correct port name. I've done this and it's fixed the problem for me.
I'm adding this to the Windows sub-forum, as I can't speak for Mac.
Details here: https://forums.steinberg.net/t/midi-rem ... /951248/22
It seems that the .js script files are looking for ports that do not exist. Essentially the user-fix for this is to amend the script to point at the correct port name. I've done this and it's fixed the problem for me.
I'm adding this to the Windows sub-forum, as I can't speak for Mac.
Details here: https://forums.steinberg.net/t/midi-rem ... /951248/22
An Eagle for an Emperor, A Kestrel for a Knave.
Re: Fix for missing MIDI remotes in Cubase 13/14
I mentioned this in another thread, but with me, it seems it only happens with remotes set up with the new MIDI Remote Manager and because of this I have gone back to the old system, which I found so easy to use anyway, and just as flexible.
I was quite taken with the new MIDI Remote, so easy to add the graphical aspects, sliders et al, I spent considerable time configuring a couple of controllers, and they just vanished
I was quite taken with the new MIDI Remote, so easy to add the graphical aspects, sliders et al, I spent considerable time configuring a couple of controllers, and they just vanished
Re: Fix for missing MIDI remotes in Cubase 13/14
The Elf wrote: ↑Tue Apr 01, 2025 11:13 am In case anyone has been having the same Cubase problem as me - MIDI remotes disappearing after each start-up...
It seems that the .js script files are looking for ports that do not exist. Essentially the user-fix for this is to amend the script to point at the correct port name. I've done this and it's fixed the problem for me.
I'm adding this to the Windows sub-forum, as I can't speak for Mac.
Details here: https://forums.steinberg.net/t/midi-rem ... /951248/22
When I look up learning how to "do scripts" in terms of DAW work on DDD my search terms are too general for me to identify anything meaningful.
Where does one learn about this skill ... starting from scratch?
Thanks!
- alexis
Longtime Poster - Posts: 5283 Joined: Fri Jan 10, 2003 12:00 am Location: Hampton Roads, Virginia, USA
Home of the The SLUM Tapes (Shoulda Left Un-Mixed), mangled using Cubase Pro 14; W10 64 bit on Intel i5-4570 3.2GHz,16GB RAM;Steinberg UR28M interface; Juno DS88; UAD2 Solo/Native; Revoice Pro
Re: Fix for missing MIDI remotes in Cubase 13/14
Depends what you mean by learning 'scripting'
Do you mean learn javascript or just the script pertaining to Cubase scripts.
Learning Javascript, there are lots of tutorials online, I recommend W3Schools
https://www.w3schools.com/
This site gives examples with clear concise guidance and to test your understanding you can type your code in and see the results.
W3schools covers almost each and every aspect of coding and scripting.
Scripting for Cubase ranges from relatively simple xml files, which are text files with the .xml extender
Easiest way to understand these is to open a script in the text editor (they are referred to as patch name scripts)
Here's an example....
[cubase parse file]
[parser version 0001]
[comment] XG Device by Janne Roeper 22.04.99
[creators first name]Janne
[creators last name]Roeper
[device manufacturer]YAMAHA
[device name]XG Device
[script name]XG Device
[script version]version 1.00
[define patchnames]
[mode] XG Voices
[g1] Piano
[g2] GrandPno
[p3, 0, 0, 0] GrandPno
[p3, 0, 0, 1] GrndPnoK
[p3, 0, 0, 18] MelloGrP
[p3, 0, 0, 40] PianoStr
etc
These tell Cubase that what program change to make from a list of available patches(Sounds) available in a synthesizer
There is a utility available at Steinberg that if memory serves me well s called Steinberg Patch Editor, or you can roll your own in a text editor. The scripts live inside a folder inside programs/Steinberg/Cubase folder
For the main part you don't need to bother, do a search on the internet for a patchname script and it's odds one one has already been written and Cubase comes with a library of them anyway.
You go to Studio Settings/MIDI Manager/Add and a list of synths appears. And that could include one you've written if its been added to the patchname folder
Scripts for remote (MIDI Controllers) are more complex as the script has to reflect every control on a controller, so for example move a fader on the controller and that moves the requisite fader in the Cubase Mixer.
Again many scripts are out there anyway and again many come with Cubase, or again you can roll your own. You select Add Generic, a list of controls opens and by using the 'Learn' feature, you select a control in Cubase, select Learn and move the requisite control on the controller and Cubase picks it up and assigns it to the relevant control in Cubase. It's a tedious process, think of all the controls on a controller, and each has to be mapped. But on completion you have an XML file generated that you can move from one computer to the next.
For a start have a look at
https://github.com/steinbergmedia/midir ... serscripts
However Steinberg has introduced a new setup, which is far more complex, but allows for a much more flexible and powerful device integration. I haven't examined the underlying code but from a brief glance, it appears to be Javascript, which for the main part is the default choice of scripting these days in such scenarios for all kinds of reasons.
Referring back to W3Schools, I would advice anyone using a computer beyond casual every day use, using a computer in a more benign sense, to acquaint themselves with coding/scripting - there is a subtle difference, at least to a basic level. That knowledge goes such a long way in understanding a computer, because despite the myriad of coding/scripting languages they are all much of a muchness.
Computer code//script deals with nouns(data), nouns can have attributes, they can be fixed (your date of birth) or variables (your age) and verbs(actions) but and more often than not, conditionals IF X=Y THEN Z OTHERWISE NOT If John is >17 then he is an Adult, otherwise he is a juvenile
This is o course an oversimplification but nonetheless a basic structure in coding/scripting. AI for example will scrape data from all and everywhere to gather in all kinds of scenarios because life is not a binary but a perplexing complex of ifs and buts and maybes and all permutations - 2 x 2 possibilities in an event gives 4 options, well 4-1 in many cases, if you have 8x8 possibilities, then there can be 64 outcomes and so on - the -1 by the way is for example you are writing an application that will take any of 8 languages (English, Spanish, German etc) and that app will translate 8 of those 8 languages into any of the others 8x8 yep? Nope, because you wouldn't translate a language into itself. eg Spanish into Spanish hence (8x8)-1
Now imagine the situation where in this world there are 8ish billion people, all doing whatever, and AI seeks to model any and/or novel situations, and you'll see why we need those gargantuan data centres all humming and buzzing away scraping, evaluating, invoking data day in day out, and why quantum computing is seen as the next milestone, it processes in 3 dimensions, not just linear. WOW how did I get here LOL
Different IDEs (setups) exist to address more specific environments - some languages will be better for AI, some better for heavyweight calculations, some better for internet work etc etc etc and in many circumstances a project might involve one 'language' might call out to another, just as you would have different departments in a company. Way beyond what we need discuss here.
Example of Javascript......
<body>
<h2>What Can JavaScript Do?</h2>
<p>JavaScript can change HTML attribute values.</p>
<p>In this case JavaScript changes the value of the src (source) attribute of an image.</p>
Below - it says When the button is clicked create a document (actually an utput) get the element(noun) selected by its ID (name - myImage).src (source) anbd that image is called pic_bulbon.gif and include the label (test) "Turn On The Bulb)" this will show bulb lighting on an HTML page
<button onclick="document.getElementById('myImage').src='pic_bulbon.gif'">Turn on the light</button>
<img id="myImage" src="pic_bulboff.gif" style="width:100px">
<button onclick="document.getElementById('myImage').src='pic_bulboff.gif'">Turn off the light</button>
</body>
</html>
Phew, hope this helps if you get into coding, I am sure you'll enjoy it, it is surprising the number of coders that are musicians and V.V with varying degrees of success of course. But there are a lot of thought processes where there is a intersect between sets (as per Venn Diagrams - logic by pictures! drove me crackers, but then so did Harmony, after all what is the chord C, D, E, G 'C2' or 'C9', or is this C, E, G, D 'C9'? )
Do you mean learn javascript or just the script pertaining to Cubase scripts.
Learning Javascript, there are lots of tutorials online, I recommend W3Schools
https://www.w3schools.com/
This site gives examples with clear concise guidance and to test your understanding you can type your code in and see the results.
W3schools covers almost each and every aspect of coding and scripting.
Scripting for Cubase ranges from relatively simple xml files, which are text files with the .xml extender
Easiest way to understand these is to open a script in the text editor (they are referred to as patch name scripts)
Here's an example....
[cubase parse file]
[parser version 0001]
[comment] XG Device by Janne Roeper 22.04.99
[creators first name]Janne
[creators last name]Roeper
[device manufacturer]YAMAHA
[device name]XG Device
[script name]XG Device
[script version]version 1.00
[define patchnames]
[mode] XG Voices
[g1] Piano
[g2] GrandPno
[p3, 0, 0, 0] GrandPno
[p3, 0, 0, 1] GrndPnoK
[p3, 0, 0, 18] MelloGrP
[p3, 0, 0, 40] PianoStr
etc
These tell Cubase that what program change to make from a list of available patches(Sounds) available in a synthesizer
There is a utility available at Steinberg that if memory serves me well s called Steinberg Patch Editor, or you can roll your own in a text editor. The scripts live inside a folder inside programs/Steinberg/Cubase folder
For the main part you don't need to bother, do a search on the internet for a patchname script and it's odds one one has already been written and Cubase comes with a library of them anyway.
You go to Studio Settings/MIDI Manager/Add and a list of synths appears. And that could include one you've written if its been added to the patchname folder
Scripts for remote (MIDI Controllers) are more complex as the script has to reflect every control on a controller, so for example move a fader on the controller and that moves the requisite fader in the Cubase Mixer.
Again many scripts are out there anyway and again many come with Cubase, or again you can roll your own. You select Add Generic, a list of controls opens and by using the 'Learn' feature, you select a control in Cubase, select Learn and move the requisite control on the controller and Cubase picks it up and assigns it to the relevant control in Cubase. It's a tedious process, think of all the controls on a controller, and each has to be mapped. But on completion you have an XML file generated that you can move from one computer to the next.
For a start have a look at
https://github.com/steinbergmedia/midir ... serscripts
However Steinberg has introduced a new setup, which is far more complex, but allows for a much more flexible and powerful device integration. I haven't examined the underlying code but from a brief glance, it appears to be Javascript, which for the main part is the default choice of scripting these days in such scenarios for all kinds of reasons.
Referring back to W3Schools, I would advice anyone using a computer beyond casual every day use, using a computer in a more benign sense, to acquaint themselves with coding/scripting - there is a subtle difference, at least to a basic level. That knowledge goes such a long way in understanding a computer, because despite the myriad of coding/scripting languages they are all much of a muchness.
Computer code//script deals with nouns(data), nouns can have attributes, they can be fixed (your date of birth) or variables (your age) and verbs(actions) but and more often than not, conditionals IF X=Y THEN Z OTHERWISE NOT If John is >17 then he is an Adult, otherwise he is a juvenile
This is o course an oversimplification but nonetheless a basic structure in coding/scripting. AI for example will scrape data from all and everywhere to gather in all kinds of scenarios because life is not a binary but a perplexing complex of ifs and buts and maybes and all permutations - 2 x 2 possibilities in an event gives 4 options, well 4-1 in many cases, if you have 8x8 possibilities, then there can be 64 outcomes and so on - the -1 by the way is for example you are writing an application that will take any of 8 languages (English, Spanish, German etc) and that app will translate 8 of those 8 languages into any of the others 8x8 yep? Nope, because you wouldn't translate a language into itself. eg Spanish into Spanish hence (8x8)-1
Now imagine the situation where in this world there are 8ish billion people, all doing whatever, and AI seeks to model any and/or novel situations, and you'll see why we need those gargantuan data centres all humming and buzzing away scraping, evaluating, invoking data day in day out, and why quantum computing is seen as the next milestone, it processes in 3 dimensions, not just linear. WOW how did I get here LOL
Different IDEs (setups) exist to address more specific environments - some languages will be better for AI, some better for heavyweight calculations, some better for internet work etc etc etc and in many circumstances a project might involve one 'language' might call out to another, just as you would have different departments in a company. Way beyond what we need discuss here.
Example of Javascript......
<body>
<h2>What Can JavaScript Do?</h2>
<p>JavaScript can change HTML attribute values.</p>
<p>In this case JavaScript changes the value of the src (source) attribute of an image.</p>
Below - it says When the button is clicked create a document (actually an utput) get the element(noun) selected by its ID (name - myImage).src (source) anbd that image is called pic_bulbon.gif and include the label (test) "Turn On The Bulb)" this will show bulb lighting on an HTML page
<button onclick="document.getElementById('myImage').src='pic_bulbon.gif'">Turn on the light</button>
<img id="myImage" src="pic_bulboff.gif" style="width:100px">
<button onclick="document.getElementById('myImage').src='pic_bulboff.gif'">Turn off the light</button>
</body>
</html>
Phew, hope this helps if you get into coding, I am sure you'll enjoy it, it is surprising the number of coders that are musicians and V.V with varying degrees of success of course. But there are a lot of thought processes where there is a intersect between sets (as per Venn Diagrams - logic by pictures! drove me crackers, but then so did Harmony, after all what is the chord C, D, E, G 'C2' or 'C9', or is this C, E, G, D 'C9'? )
Re: Fix for missing MIDI remotes in Cubase 13/14
I'm tempted to learn more about creating MIDI remotes in this very complex scripting language, but all this talk of forking and github just has me scratching my head and deciding not to bother.
I haven't a clue what all that stuff means.
An Eagle for an Emperor, A Kestrel for a Knave.
Re: Fix for missing MIDI remotes in Cubase 13/14
The new remote system, though overly complex IMHO, does improve on the legacy system. The old system was clunky to say the least, and you certainly can't move legacy remote definitions between machines. I see no reason not to move forward. The missing remote problem needs fixing by Steinberg, but the user fix I've mentioned is simple enough.
An Eagle for an Emperor, A Kestrel for a Knave.
Re: Fix for missing MIDI remotes in Cubase 13/14
The Elf wrote: ↑Wed Apr 02, 2025 8:53 am
The new remote system, though overly complex IMHO, does improve on the legacy system. The old system was clunky to say the least, and you certainly can't move legacy remote definitions between machines. I see no reason not to move forward. The missing remote problem needs fixing by Steinberg, but the user fix I've mentioned is simple enough.
To move remoter definitions from one machine to another or from one version of Cubase to another is imply copy the requisite XML from one machine to the other, I can't remember which folder, it is there in Users/Appdata/Roaming.......Steinberg/Cubase somewhere I can't remember exactly
I once made the mistake though of copying the Folder from c:/Programs..... Cubase/?????(The folder) to the AppData/Steinberg folder but what I had done is copy the default profile over my custom made one DUH!!!
I cannot see how moving forward from a setup that is reliable, predictable and that words to one that isn't working as it should, let them fix it first then I'll move forward, I wouldn't get on a rocket to Mars if they were still working on the engine saying "We'll fix it in the mix"
Re: Fix for missing MIDI remotes in Cubase 13/14
OneWorld wrote: ↑Tue Apr 01, 2025 9:35 pm Depends what you mean by learning 'scripting'
Do you mean learn javascript or just the script pertaining to Cubase scripts.
Learning Javascript, there are lots of tutorials online, I recommend W3Schools
https://www.w3schools.com/
Thank you so much, OneWorld ... bookmarked for further learning!
.
And thank you so much for fleshing out the workaround in the Cubase forum as below, The Elf!
The Elf wrote: ↑Tue Apr 01, 2025 11:13 am In case anyone has been having the same Cubase problem as me - MIDI remotes disappearing after each start-up...
It seems that the .js script files are looking for ports that do not exist. Essentially the user-fix for this is to amend the script to point at the correct port name. I've done this and it's fixed the problem for me.
I'm adding this to the Windows sub-forum, as I can't speak for Mac.
Details here: https://forums.steinberg.net/t/midi-rem ... /951248/22
- alexis
Longtime Poster - Posts: 5283 Joined: Fri Jan 10, 2003 12:00 am Location: Hampton Roads, Virginia, USA
Home of the The SLUM Tapes (Shoulda Left Un-Mixed), mangled using Cubase Pro 14; W10 64 bit on Intel i5-4570 3.2GHz,16GB RAM;Steinberg UR28M interface; Juno DS88; UAD2 Solo/Native; Revoice Pro
Re: Fix for missing MIDI remotes in Cubase 13/14
In whatever circumstance, I have found that no matter how one approaches coding and such, the 'geeks' (for want of a better word) seem to want to speak in tongues. And GitHub is a case in point. Bewildering language which is presumptious to the nth degree is used that leaves one trying to learn/understand the topic more and more perplexed. You have my sympathy, and I can fully understand anyone abandoning the endeavors.
It might seem improbably but my degree was AI, back in the early 90's and specialized in language processing - Alexa, Predictive Text, Machine Translation......goodness me it boiled my brains, and processing a simply phrase could well take a 64bit UNIX server with SCSI drives 5 minutes!!! How things have changed, modern AI can process language in almost an instant on your cellphone. But I remember the first day of lectures and the Head of Department, in his Welcome to the Department talk said "No matter how complex a problem, the thing to do is 'atomize' the problem, break it down to its constituent parts, and don't be phased by the complexity of the mass of coding" That was a good point he made. I only got through on sheer hard work and determination and good luck, I just happened to pick the right books, which I am sure the professors read, which had all the answers, one just had to find them. I found it fascinating, saying to myself "How can a box talk? translate my English into (whatever) is it some sort of alchemy?" I used to bore my pals into despair at the pub after a day's discoveries at Uni and having a peep into the future and saw what was coming.
Github is just a repository.
Writing code will include the code that is the 'engine' that does the working out. Writing code will be done in an IDE (Integrated Development Environment) writing the code will require the Code Editor, code that represents the user interface, and common components, eg the code to open, save, saves as....etc Why write code for those procedures when they've already been written? so the code will take a fork, depending on what process is to be executed next, and there are other components that are included in the project.
Now if you are distributing the app (the .exe) one cannot expect the ordinary user to download and install a pout pouree of files here and there, so the whole thing is compiled and becomes an .EXE into a single file. Compiling also 'compresses' the raw readable code into a faster running but illegible to the untrained eye - all code becomes 1's and 0's that's what a CPU understands.
However some languages, Javascript for example, and are thus called scripting languages are 'interpreted' on the fly, as the program runs. This has the advantage of allowing the coder to write the code and see the results of any changes without having to compile into an .exe file Better option eh? Well depends, if creating web pages, for example, Javascript is easily embedded within the HTML script, C++, a compiled language cannot. It is all context dependent.
Coding/Scripting isn't quite as scary as it looks at first instance. But it is like learning music, you don't seem to make any tangible progress in the early stages as you need to learn the foundations before you can add the building blocks .
I've just had an email Cubase 14 upgrade from C13 £55!!!! I must buy, resistance is futile
Re: Fix for missing MIDI remotes in Cubase 13/14
The new remote system does work - it just needs that 60 seconds of typing and you're done.
As I said, it's better than the legacy method. But if you're happy where you are then stay put - until Steinberg remove it, that is!
I am also sticking to the old ways for now with my Stream Deck. I'm sure I could create a new remote for it, but I'm happy with it as it is for now.
OneWorld wrote: ↑Wed Apr 02, 2025 12:56 pm To move remoter definitions from one machine to another or from one version of Cubase to another is imply copy the requisite XML from one machine to the other, I can't remember which folder, it is there in Users/Appdata/Roaming.......Steinberg/Cubase somewhere I can't remember exactly
Case proven...
Last edited by The Elf on Wed Apr 02, 2025 3:00 pm, edited 1 time in total.
An Eagle for an Emperor, A Kestrel for a Knave.
An Eagle for an Emperor, A Kestrel for a Knave.
Re: Fix for missing MIDI remotes in Cubase 13/14
The Elf wrote: ↑Wed Apr 02, 2025 2:21 pm
The new remote system does work - it just needs that 60 seconds of typing and you're done.
As I said, it's better than the legacy method. But if you're happy where you are then stay put - until Steinberg remove it, that is!
I am also sticking to the old ways for now with my Stream Deck. I'm sure I could create a new remote for it, but I'm happy with it as it is for now.OneWorld wrote: ↑Wed Apr 02, 2025 12:56 pm To move remoter definitions from one machine to another or from one version of Cubase to another is imply copy the requisite XML from one machine to the other, I can't remember which folder, it is there in Users/Appdata/Roaming.......Steinberg/Cubase somewhere I can't remember exactly
Case proven...
All the environment variables are kept in c:/programs/Steinberg/Cubase nn/ the folder contents are intuitive eg scripts, project templates etc these are the defaults
Many of these are replicated in...... c:/users/AppData/Roaming/Steinberg/Cubase_nn/
and user settings are kept there. So to transfer from one machine to another, just copy and paste the requisite folders to their place on the new machine.
I keep a backup of the above as installing/upgrading etc doesn't always pick up the user settings which can include scripts, patches, templates.........and whatever other content the user wants, for example my synths have various settings that can be saved and I put them all in here. I upgrade Cubase, copy the Default Settings, overwrite that with my backup of Users/AppData/Roaming/Steinberg/Cubase[Groove Agent/Halion/ etc] and I am back where I used to be except on a different machine or new version of the Steinberg products.
"until Steinberg remove it, that is!
In such circumstances I am minded of the Family Anthem - 'As And When' and it goes like this 'when circumstances call for change then pick up thy cudgels, till then the world will keep on turning with or without my help and with or without the Remote Manager'
Case is for when I go on holiday
Re: Fix for missing MIDI remotes in Cubase 13/14
Exporting and reimporting the script may work also:
https://www.youtube.com/watch?v=jXINh0M4VYY&t=8824s
https://www.youtube.com/watch?v=jXINh0M4VYY&t=8824s
- alexis
Longtime Poster - Posts: 5283 Joined: Fri Jan 10, 2003 12:00 am Location: Hampton Roads, Virginia, USA
Home of the The SLUM Tapes (Shoulda Left Un-Mixed), mangled using Cubase Pro 14; W10 64 bit on Intel i5-4570 3.2GHz,16GB RAM;Steinberg UR28M interface; Juno DS88; UAD2 Solo/Native; Revoice Pro
Re: Fix for missing MIDI remotes in Cubase 13/14
alexis wrote: ↑Fri Apr 04, 2025 1:41 am Exporting and reimporting the script may work also:
https://www.youtube.com/watch?v=jXINh0M4VYY&t=8824s
Yep works every time for me and I keep a backup of all associated 'settings' which live in AppData, as mentioned I go to the extent of backing up the whole <USER>/AppData/Steinberg folder anyway.
After a while the files get a bit bloated, if decommissioning one controller and replacing with another controller the reference to the old controller remains in the .xml file but it being .xml, relatively easy to prune it, after making/exporting a back up of course.
Not quite as easy in the Javascript used by the New Remote Manager, but as it becomes more ubiquitous and the old version jettisoned a working knowledge will prove very useful I'm sure.
Maybe worthy of an article in SOS Cubase section? Who knows
Re: Fix for missing MIDI remotes in Cubase 13/14
The problem is that Steinberg have not been consistent with where they save all this stuff. It's always been a problem. One installation I work on simply refuses to find any of its plug-in presets, no matter what I've tried to fix it.
An Eagle for an Emperor, A Kestrel for a Knave.
Re: Fix for missing MIDI remotes in Cubase 13/14
Yes but it is conserving the file's integrity rather than it's location. Once the file is saved, the user knows there will be a folder somewhere, where that file lives, a bit of rooting around will find it. I use Agent Ransack, and any search routine will allow a search on a partial name r even search within some files(txt, xml, .js etc) to find a clue. So if for example I have a Faderport, it will be in there somewhere.
That being said, I can go back to Cubase SX, and default files are in c:/programs/Steinberg....and the equivalents are in <USER>/AppData/ Local or Roaming(depending on user choice)/Steinberg/<the product - Groove Agent/Halion/Cubase etc>
You have mentioned in another post the passing interest in coding/scripting, file paths are an absolute essential consideration in coding/scripting, as you can imagine, and file paths is one of the things that gets people in knots, mainly because they can think they can keep it in their heads - not when you get .exe files and associated graphics files, .ini .inf and so on.
ONe of the most important considerations in such case is always remembering "What's it called and where did I put it"