Any coders here by any chance?

I have an idea that can save us a lot of time, depending on who needs this. When you’re done with a project, or even at different stages, do you need to make a list in plain text of all the virtual instruments you use in it, along with FX plugins used in every track? I know I do, but neither Cubase nor Nuendo have a way to export this information as far as I know, and I did a lot of searching and I even asked here but got no response. So I’m guessing there’s not.

But if you have any background on understand and writing code, there might be a way, which perhaps wouldn’t be that terribly complicated for software developers, for me it would be like climbing the Everest.

In all the export choices I have in Nuendo and Cubase, only one seemed to get close, which is “Export selected tracks”. That generates an XML file that can be opened even in a text editor, it’s not the kind that when you open it shows gibberish with weird symbols. It’s a large XML file with the <> and strings and classes and all that cool stuff.

First I exported one from a big project and it was hundreds of thousands of lines, so I did something simpler. I created a project in Cubase with just four tracks, each with its own name and engine:

The “MSS Violins 01” track obviously has Kontakt 7 as the engine, and inside it, Modern Scoring Strings as the instrument. The EW HW Strings has the Opus engine and Hollywood Strings as the instrument. The “Wallfisch” track has the SINE player and the Benjamin Wallfisch Strings as the instrument, just because it’s what I have at the top. Then the last track called “Taylor violin” has the Musio engine with the Taylor Davis violins as the instrument.

I didn’t record anything in them, I wanted this project to be as barebones as possible. I wanted the names of the tracks and the engines and instruments that were loaded.

I selected all of them and exported them to the XML. I opened the XML in Xcode and started doing searches to see if I could figure out some basics.

In the next four screenshots, you can see the start of the section that has the data for each track:

If. you look a few lines below each object class there’s the name of each track:

Now, the next search I did was the name of each engine:

I have no idea why Opus shows like that while the others show with their regular names.

As for the instrument loaded in each engine, no luck on that. Doing a search for even one of the words in the name of the instrument doesn’t show any results, so I’m guessing that information is stored with some kind of code, because it has to be in the Cubase project file.

So if you’re a developer and you read these snippets of the XML file, do you think there’s some kind of small app you could make that will grab the XML and spit out a list of the tracks, engines and perhaps instruments loaded in them? I’m guessing it’s something that a lot of people need and you could even make some money on it. If you charge $10 for it, I would pay that, and many people would. Of course it depends on whether this is an easy task for you or not. If I knew enough about coding to do it myself I would, but this would take me weeks to figure out, and that’s not time I have.

The files were too big to upload here, but I created a folder in my Google Drive and they’re there if you want to download them:

https://drive.google.com/drive/folders/1fxMgtv0uaz5-B_NDsnLv7LpDgP3zjZoW?usp=share_link

You mean PlugView?

Sounded promising until I scrolled down and saw that the latest version is 13 years old. My guess is that it won’t work with current Cubase or Nuendo projects.

It works just fine on C13 and windows 10.

Its limited. I wish it had additional features but it does work. After all its free.

Is it portable or do you have to install it?

Portable?

You put it on your desktop or wherever.

  1. Open your cubase project.
  2. Once open minimize the project.
  3. Click on the plug view icon (assuming you put it on your desktop)

All plugins and plug counts are listed for that cubase project.

I asked for the same thing a while ago. It’s standard in professional publishing world (InDesign etc).

If the XML file contains all the information you’d like to extract, it’s pretty straight-forward to do that with XSLT. The following small example script prints all the device names present in the XML file:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  
  <xsl:template match="/*">
    <xsl:apply-templates select="list[@name='track']"/>
  </xsl:template>
  
  <xsl:template match="obj[@name='Track Device']/member[@name='DeviceAttributes']/member[@name='Name']">
    <xsl:value-of select="concat(string/@value, '&#xa;')"/>
  </xsl:template>
  
  <xsl:template match="text()"/>
</xsl:stylesheet>

Output:

MSS Violins 01
EW HW Strings
Wallfisch
Taylor violin

You need an XSLT processor like xsltproc or the Transform utility from the Saxon project to execute it. It’s also possible to wrap it with a Python script.

Thanks, this sounds interesting but this is the part where it would take me too long to figure out, not being a developer myself.

To give you an idea, yesterday I finished a project that has around 120 instrument tracks. It took me about an hour to go track by track and typing down the list of instruments and FX, but that’s because I had been working on this project for four months, and just by looking at a track, for most of them I remembered what instrument I had used.

But if there was a way to gather that info in a snap by writing code that allowed me to do that, if I was a coder and could do that in let’s say, a couple of days, that would be worth it for future large projects. But I’m not a coder, and as much as I would love to learn, I just don’t have the time for it.

That’s what it’s called when a program can be downloaded and you just run the .exe and it opens, as opposed to one you have to install and writes files to the Program Files folder and so on. Such as is the case with this one.

Ok, that’s the problem. It needs Cubase to be installed and I would guess also each and every VST and VSTi that is in the project. And for me to install all of that in my PC would take forever, and also it would require a huge amount of disk space that would require me to buy 2 or 3 SATA drives, or external drives, but it’s too much money and effort for this.

It would be nice if the developer offered the code, then someone who knows how to do it could adapt the code for macOS.

Have you considered making notes as you go, using the Notepad section in the Track Inspector?
These can then be exported to a text file (Export | Notepad Data…).

These are bound to diverge sooner or later. @Sebastian_Alvarez has mentioned 120 tracks in the project 4 months in the works, which is pretty much a guarantee that (1) someone will forget to record an FX addition or removal at least once and (2) no one will ever notice the omission.

Also, notes are free-form, and it’s unclear how to extract and deduplicate plugin names only from the exported notes.

I have a decent software engineering experience, from Fortran to Haskell, and can assure you that XSLT is a bloody mind-boggling beast that gets a lot of effort to understand and get it right, and requires much more XML knowledge than can be inferred from merely looking at it. I certainly wouldn’t if I were you. :slight_smile: Personally, I use .NET’s XDocument and a real language like F# or C# to hack together an ad-hoc data extractor from an XML document whenever I need it.

I’d help you, and for free, but I’m so busy for the next couple of months that I have to work even on most weekends. I’ve just lost a productive month to a golden staph skin scratch infection and then COVID. :frowning:

Could you write down the output you’d like to get from your example XML file? I use XSLT almost daily in my job and know the corresponding XML technologies quite well. I can probably hack a small script together that extracts the desired data.

Here are some other similar topics:

Well, you just replied to that post in a way that conveys perfectly what my answer was going to be.

Well, just what I mentioned, basically three things:

  1. Track name
  2. VSTi loaded
  3. Inside the VSTi, when it’s an engine (which is the usual), what instrument is loaded in it. For example, SINE player has the Berlin Strings loaded inside for that particular track.

This one might be possible or not. I was very surprised when I went through that XML and I didn’t find a single reference to the actual instrument in each engine. But I didn’t see any other files in the folder that contained the project, so that tells me that either that information is not exported in the XML, or it’s exported but with some kind of code.

Finally, a nice extra to have would be the FX plugins used in any track.

I suggest you detail your requirements ( we can all help with that, here in this post) and then create a seperate post with a concise, descriptive title,and add the “feature-request” tag – that way, we can “up-vote” it to get the attention of the developers.

Ok, 1. and 2. seem to be easy but 3. is probably not possible because the information is most likely encoded in the binary portions of the XML file which is not documented. I’ll have a closer look tomorrow.

Good idea, but I don’t think I’m the right person to head a feature request like that. I’m just a beginner who started with Cubase in March 2023, but I have no professional sound engineer experience.

It seems to me that this should be lead by the people here that use Cubase and/or Nuendo in a professional capacity for a living, they would probably have a much better idea of what to include in that request.

My 3 or 4 request are just based on my own needs, just so I can post something and in the description I can put a list of the VSTis and FX I used, but real pros might and probably have a much longer list.

It surprises me that there’s no way to get something like this directly in Cubase. Like @noise said, it’s a standard, although not very wide, because InDesign may have it, but not even all the major Adobe apps have it.

It’s as surprising as the lack of a standard to transfer projects within different DAWs. I think it’s possible when working with audio files only, but when working with a MIDI project, forget about a universal format that will at least give you the basics, like the engine and instrument loaded, and which options in each instrument. At best you can export as a MIDI file, then load it in another DAW, and you have to spend ages assigning all the instruments again.

The 3D world has a great format for exporting files that will be for the most part readable in almost every decent 3D software called FBX. It’s not perfect, but it does work, even if it requires some fixing, but not drastically. If you make a model with textures and everything in C4D, export it as FBX, and load it in Blender, it loads fine, with maybe a thing or two that you need to relink, but other than that, it’s perfect.

Why can’t we have something like that in the MIDI world?

1 Like