Save What?

I just finished long project for me, 24 songs and 111 parts, and I kept a list of issues for VST Live 2.1. I do really like this product, and tell everyone I can about it. I don’t know how I would have accomplished so much so quickly without it. Similar products may be as good, but I haven’t had to try them.

The Zone and Shared instruments were particularly important to me. I’d say I am an intermediate user at this point. I used no tracks and no stacks in this project, but I have on some smaller ones. I was able to specialize many of the instruments and use zones to constrain their use so that it became much easier to play right-hand and left-hand keyboard parts simultaneously while using auto-chords - triads and diads.

Two minor UI issues that might be able to be resolved quickly, and have been evident since version 1 include the following:

  1. The last song that was edited, before the project was closed, is rarely the song selected when the project is loaded. Good luck finding a way to get the last song edited to be the one that has focus the next time the project is loaded.
    a. Create a project with two songs
    b. Work on one of the songs, save and close the project
    c. Re-open the project and make a change to the other song, save and close.
    d. Re-open the project and notice that the first song has focus - NOT the one that took the last change

  2. The focus border for layers does not migrate to the layer being actively edited. When you touch any layer, the WHITE border should be drawn around the layer being edited - regardless of which layer element you are changing. This most often never happens. That is a problem because when you finish, you can second guess what was just changed since the WHITE border is still “stuck” on another layer.
    a. Create a song with two layers and touch the layer header to notice the WHITE focus border.
    b. Left-click the mouse pointer on the Transpose “+” in the other layer. Notice that the WHITE border does not migrate to that layer.
    c. Hower, if you click the layer header directly, the WHITE border migrates OR if you click the Volume edit control it migrates. Why not for Transpose, Octave, Solo, Mute, Pan, Output?

Finally, and its a huge topic, “Save What”

If you simply load and immediately close a project, why should there appear a message box to Save? What has been changed without my knowledge? This is my leading issue for the general topic of the VST Live persistence strategy. I have the impression that the devs are calling “MakeDirty” too often and this forces the user to deal with this dialog every time they close the project. Notice this also means we have to re-think whether we have actually changed anything. This issue actually led me to flip on the read-only bit, in Explorer, for the project file. But guess what, this got flipped back off and the file saved anyway!

Thanls for your report, glad to hear the VST Live works out for you!

For me, it is always the last project selected (when saving), and it has always been.

Don’t have that either. Admittedly, there are some cases where one would not expect the “dirty message”, we have that on our list. But better too many than too few :slight_smile:

So, new project, add 2 Songs, select Song 2, save, exit.

  • Load: Song 2 is selected
  • quit: no “dirty message”.

Any recipe for reproducing expecially the first issue welcome.
Also tried your repro. You are not beeing specific which Song to select, so new, add song, select song 2, save, exit, load: song 2 is selected. Select Song 1, save, exit, load: Song 1 is selected.

Not sure about some terms, “close the project” means what, quit VST Live, load another one…? And “Work on some”…the active Song is the one selected in the playlist to the left, and presumably the one you are working on?

That is a topic for discussion. There are pros and cons for both variants.
Thanks again for your input!

LAST SONG EDITED SAVED
Okay, last song edited does save correctly in current version. I have an old project file where it never changes the last song edited, but I don’t need to fix it anymore.

FOCUS NOTIFICATION FROM CHILD CONTROLS
It seems that the Stack child controls don’t bubble up focus events any better than the Layers, so it seems Steinberg uses several types that can’t communicate their focus state to their parent. Therefore, the parent does not know when to re-paint the border and the user has to remember what Layer/Stack they were working in if they get interrupted. I think it should be one line of code to check if the parent “HasFocus” and if not case the base class or interface implementation to draw the border and other things that should happen on focus. The parent is already calling that code for itself.

WHAT SAVED AND HOW
If I just open and immediately close a project, I should not be asked if I want to save it because I didn’t make any changes. This means some component made a call to persist fresh data and I don’t know what is being persisted.

Moreover, I’ve developed a pattern of proactively saving the project file after small changes. That way, I can exit the program and NOT save if I make a mistake such as accidentally turning several volume sliders with the mouse wheel. That’s the kind of mistake that is easy to make several times a week, and not just for VST persisted class and property members, but the Third-Party VST content as well which is also recorded in the project file. Over time this causes trust issues with the user.

I’ve had some real show shoppers that have caused me to have to rebuild the project file from scratch, but I had the time to do it and sensed that it was the only possible way forward. VST LIve can get blamed for that even when it’s an inappropriate third-party setting that is causing the problem. For example, to use Kontakt 7 VSTs with VST Live, it is necessary to disable "Accept standard controller’s for Volume (#7) and Pan (#10). If you don’t, the Layer volume controls will lose their setting and Pan will be slammed to left as the VST receives volume and pan messages when VST Live starts.

POSSIBLE IMPROVEMENTS TO VST PERSISTANCE STRATEGY

  1. Create more on-ramps to persist the data. As it stands, VST waits program exit to persist all the changed data. In the days of modal dialog boxes the user could be asked to APPLY or OK the data change to persist that data immediately, precluding the need to ask upon program exit. This had the added advantage that the user knows exactly what is being saved.
  2. Add Undo facilities to the product. As it stands, there is no good way to experiment with a project, except to disregard changes upon exit. If Undo was available, you could erase all changes by standing on Ctrl-Z. This wouldn’t require a complete History implementation, just add a journal of changes to memory.
  3. Make sure that Preferences are saved immediately. I don’t know that it is an issue, but it is a category of data that can be saved without waiting for program exit.

Thanks

Do you know, that can be disabled in preferences?

This has been reported a while (by me) and developers responded already this will fix sometime, but that isn’t that major issue, is it?

You are just making assumptions. This has no technical reasons at all, as said before, that topic is open for discussion. If we change it now, other users will probably complain.

It is a two-sided sword. On the one hand, basically your approach is “standard”, but I may not want to change the target focus if I just try to balance other Layer volumes to the one (focus) that I’m currently working on.

Let us offer to change it to your method, unless others complain here.

We found and fixed two instances causing unnecessary dirty states, please just try again with the next version and let us know if it works out for you.

It’s just a bug, nothing gets lost. Try next version to restore trust :slight_smile:

Sure, but it’s supposed to do that, no?

At least in this case, that is unfair. A Layer is supposed to adjust MIDI Volume and Pan when according MIDI messages are beeing received. There’s nothing to blame it for?

Don’t understand that. Persistance is acheived by saving the project. There is auto save as well, and edited data are saved by applying a save action, as is with pretty much every other document based application. There is no “partly persistance”, that would mean that for every small change like moving a note, an automatic save action would have to be applied, which for larger projects would render it impossible to work with. But maybe you have some other idea?

Confused. There is Undo, Redo, even History, what are you missing?

Most of those are, we’ll check for which aren’t.

My experience with Kontakt - I have a multi in Kontakt which is just two layers (piano and synth) with a keyboard split - the split is in Kontakt rather than VL. Occasionally the synth layer volume goes to zero on song select and I’ve never found the reason for it. That makes it unreliable live so I have a workaround on another synth, but I’ve always wondered why the spurious volume change occurs and whether it’s Kontakt or VL causing the issue. I’ve never had the issue with any other VST.

I don’t see it, where is a setting in preferences that can lock the controls on a layer-by-layer basis? That would be nice.

It would be better to have one of those “Lock” icons on each layer. Same for stacks songs and parts, actually. Leaving them open can be more of a hazard than a convenience. This would help with the persistence strategy as well as whole areas of the setlist would be shut off from taking new changes. My mindset, halfway through a project, is more of worry than excitement: I don’t want things touched that are finished. I’ve tried making the project file read-only in Windows Explorer, but this is not permitted.


Okay, I look forward to it.

It is a two-sided sword. On the one hand, basically your approach is “standard”, but I may not want to change the target focus if I just try to balance other Layer volumes to the one (focus) that I’m currently working on.

Let us offer to change it to your method, unless others complain here.

Actually, the layer volume edit control is one that is not “orphaned” from the event model, so I get a white border when mousing between layers.

No doubt the developers know the time to hook up event handlers is in the beginning, as soon as a new feature is being added. Many automated UI test suites can flag these kinds of omissions. It’s not a big deal, but makes the product look unfinished. I don’t know if I could find unbound controls in Cubase or other Steinberg products, because these have been through millions of test cycles.


Sure, but it’s supposed to do that, no?


I can stop editable Kontakt 7 VST from being affected by Pan and Volme MIDI messages, by using the Kontakt 7 Instrument Options setting, or adding a multi-script KSP to block the messages. I immediately do this at the point a new Kontakt 7 VST enters the project. I haven’t tested when these messages are emitted by VST Live for some time, and I don’t know why they are being sent. The effect of receiving them, unprotected, is that all volume and pan settings are destroyed throughout the setlist and need immediate correction to previously known values.


Overall, I like the product design which allows the user to freely move between areas. I appreciate the look of the interface, which might be Direct2D, but looks like WPF to me even though WPF isn’t used in C++.

I’m just saying that if I plan on executing the same procedure on a collection of items like stacks or layers over several songs, I’m going to stop, save and exit VST Live before I go and maybe perform a bunch of tasks in Tracks. After I’m done in Tracks, I’m going to stop, save and exit VST Live before I go and maybe perform a bunch of tasks somewhere else. The reason I do this is because nothing is persisted until and unless the project is saved. Otherwise, If I messed up when working in the Tracks and had to exit, I’d lose all the work I did in the Layers.

You say, “edited data are saved by applying a save action”, but there is nothing forcing me to press Ctrl-S or save the project and it is easy to forget to do so. I don’t see any other “gated” saves anywhere, but feel free to point them out. For example, you could have an “Apply” for the Actions and Shortcuts. It’s might easily be the kind of data someone would want to change less frequently and keep as is. If it had an “Apply”, it wouldn’t have to be added to queue of items to be persisted on project save. There might be other examples.

Once, again I think it is okay the way it is, but that the way it is has consequences for the user. You can say that the product presents a consistent ethos and everything gets saved as long as users remember to do it.



I was unaware of the Undo facilities. It’s a nice start, as I see it will undo adding a track or text in a Note. Hower, it won’t undo the changes I make to a Layer or Stack. Nothing shows up in History for those kinds of edits.


Thanks

If you are not driving the Kontakt instrument with a track and don’t need to modulate the volume or pan settings with a MIDI track stream during the performance, then you can disable the setting in an editable Kontakt instrument. In this circumstance, you are either not using tracks at all, or the tracks you are using are just pre-recorded music that isn’t driving any instruments.

  1. Press the Edit wrench to edit the instrument.
  2. Press the Instrument Options button to open the Options dialog box.
  3. Select the Controller category on the left.
  4. Uncheck the checkbox for "Accept standard controllers for Volume (#7) and Pan (#10).

I perform this task the first time an instrument is added to the project, if the project isn’t going to require tracks.

If the VST instrument does not look editable because it doesn’t present the wrench icon, look for the “gear” settings icon, as the Instrument Options are still available within.

Otherwise, another option is to add a short KSP multiscript to the Multi. Of course, the instrument must first be contained by a Multi in order to use the KSP editor to make a script. Every instrument I use in VST Live is already wrapped in a muti and it seems your piano/synth is too.

Add this script to your Multi, if the instrument is not editable (doesn’t present the wrench icon.)

on midi_in
if ($MIDI_COMMAND = $MIDI_COMMAND_CC and $MIDI_BYTE_1 = 7)
ignore_midi
end if
if ($MIDI_COMMAND = $MIDI_COMMAND_CC and $MIDI_BYTE_1 = 10)
ignore_midi
end if
end on

You can save the KSP multi-script as a Preset if you may want to re-use it. Save the Multi.

@Motorist - that is very helpful, many thanks.

It was a design decision, not a testing flaw.

Finished as designed though :slight_smile:
We will change it to your liking.

Confused, thought it was the other way round?

Anyhoo, in order to prevent a Layer or a MIDI Track from sending Volume or Pan, ctrl/click to set to “NOT SET”. In Layer, switch to MIDI (left to Volume fader).

MIDI vol/pan set to anything other than “NOT SET” will send their value as MIDI messages, which is what they are intented to do.

Why exit? Once the file is saved, it is persistent, just like with any other document based application. Using “Save As”, previous versions are safe too.

Still don’t get this. Save, and all good?

There is no auto save, because it can be desasterous during a live show.

While your “Apply” aproach may seem like a good choice at a first glance, it doesn’t make sense for actions, for instance. These are saved with the project, plus with local data, so you may just as well save.

Changes to controls are not added to the undo stack. Undo works for project data only. Cubase has “Mixer Undo” now, but that was a long time coming :slight_smile:
Again, this is a decision made with the live aspect in mind. Saving undo history data is quite a big deal, and it may disrupt audio processing at times. But we may add small scale extra undo for layers and stack controls…gets tricky with plugin changes, though.

No. VSL sends #7 and #10 messages for the purposes I’ve indicated to CliveJ in the post above. I block these in each Kontakt instrument. I believe I’ve seen these when capturing MIDI streams after turning on Kontakt MIDI out feature and sending the output to a MIDI monitor running on another computer. I’ll check again. Anyway, I don’t care because I have my work-around. People who are using Tracks absolutely need #7 and #10 midi data to be streaming from VSL.
I won’t use the NOT SET because I need MY values, but it’s nice to know it’s available.

Hey, I don’t know how to use this forum editor like you guys, I use Quote or Copy Quote, but I’m doing it wrong and getting big shouting text in the preview frame. What are the steps for each snippet where I want to respond?

I exit and re-load VSL after each batch of changes in order to see if the correct changes have been persisted before I begin work on the next batch. In the past, I’ve especially seen off-by-one errors in some UI control values. I won’t say more unless I get a solid example with a brand new medium-sized project file I can share.

"Changes to controls are not added to the undo stack. Undo works for project data only. Cubase has “Mixer Undo” now, but that was a long time coming :slight_smile:
Again, this is a decision made with the live aspect in mind. "
Okay, that’s a good reason - performance is paramount.

Looks like you have “Bold” selected:

image

Seems to be fixed with v2.1.4 :smiling_face:
Not asking “save project?” at closing if project was saved before, nothing changed. But no worries, that was really a question only, nothing happened unattended in the background.