Program Changes

Locked New Topic
RELATED
PRODUCTS

Post

I just started using Cantabile lite 1.2 yesterday. I've gotten a lot accomplished, but I've run into a few snags, and could use some help. What I'm doing is attempting to run a VST and a VSTI simultaneously. I'm using a Yamaha G50 guitar-midi interface and, for example, FreeAmp as an effect on the guitar sound, and, say, (Cakewalk) Square 1 as a synth, then blending the sounds with Cantabile. So far so good. But when, using a midi pedal board, I try to get patch changes, Cantabile behaves unpredictably, i.e., FreeAmp changes, most of the time, Square 1 doesn't, most of the time. I've tried the obvious things in the edit menus and had fairly goofy results. Anybody know what I'm doing wrong?

Post

Hi Clint,

You haven't mentioned what you want the program change to do but...

By default all racks in Cantabile response to all MIDI events so the program changes are probably going to all plugins. Here's a couple of things to try:

1. Try putting each plugin in a separate rack and assign each a different MIDI channel number, or for effects, disable MIDI input all together (unless that's the plugin whose program you're trying to change)
2. In the tools dropdown for each plugin there's an option to control whether to send program changes to the plugin. Try enabling/disabling it for the plugins you do/dont want to respond to program changes.

Not that not all plugins response to MIDI program changes for changing the plugin's preset - but most do.

Does this help?

Brad

Post

Ok, the basic idea is that I'd like to set up "scenes", layered guitar/synth patches where the synth is essentially an effect, like a delay (since there's always a "delay" i.e, latency, in guitar synth anyway). When I hit the Midi pedal, I'd like the "scene" to change, pretty much like a simple stomp box, except the synth would go from , say "brass" to "strings" , while the guitar goes from "clean chorus" to "Holdsworth". Or something.
I've had a lot of new discoveries since the last post, and I've actually got a usable system up and running. Glitches, however, abound, but workarounds seem to pop up almost as frequently. I'm now working in the newly downloaded 2.0 Beta. What I've discovered is that plugs seem to react to program changes differently. Square One, for example, does normal program changes in Mini Host. In Cantabile, the programs change, i.e all the parameters shift, but the preset name/number doesn't. (BTW, I'm refering to program/preset changes as if they were the same thing. If this is not acceptable syntax, tell me.) This doesn't happen in Minihost, the names and numbers change normally. The same thing happens with Proteus VX. Other Vst's and Vsti's don't respond in either host, so I'm assuming they just don't know from Midi. Gallo (Studio Devil) has responded to several emails about this (astonishingly quickly) and seem very interested in making Midi implementation a priority for us gigging types who'd like to recycle our vintage 1995 Midi pedals in the computer age. They told me, interestingly, that Studio Devil works in Mainstage (Logic). But I don't have the bucks to get back into the Mac world right now. (Or the Receptor universe, either, though from what I hear, what it does and what I want are the same thing.) Anyway, so far Cantabile seems like the best, simplest way to get what I want out of what I've got. It's amazing how many hosts are out there that claim to work and, as far as I can tell, don't.

Post

Hi Clint,

I think what you need is Cantabile Performer's sub-session support. This allows you to configure named states within a session. For example each sub-session can store the bypass state and selected preset of each plugin.

Sub-session can then be switched between in a number of ways:
1. Assign each sub-session a program number and bind a MIDI program change event to it. This is easiest when everything can be contained in one session.
2. Use session lists. These let you define an ordered list of session/sub-session pairs. You can then bind controllers for next/previous etc...

Regarding the problem with different plugins behaving differently there's two reasons for this: 1) Some plugins don't respond to MIDI program changes at all. 2) Other's do respond to it but don't notify the host that they've changed their preset - so Cantabile doesn't know to update it's display. If you see a plugin whose sliders/controls move but the preset name doesn't change that would be a bug in the plugin.

Well arguably anyway - I have an outstanding issue to try and resolve this. I've looked at what MiniHost does in this case and it seems to constantly poll the plugin, which I don't think is an ideal solution. I do have a couple of ideas on how to improve it but haven't had a chance to try yet.

Brad

Post

Yeah, Brad, I think you're right. I'll have to see if I can scrape the dough together. I did an inventory of every plug I got in MiniHost, and the only ones that worked were FreeAmp and Square 1. Proteus responded to program changes, but bypassed Mini's preset/bank editor, which made it not-so-useful. I think that's odd. Midi program changes are kind of, well, square one, aren't they?

Post

I've had a closer look at this and made two changes:

1. Previously if a plugin received a MIDI program change and changed it's preset I relied on it notifying Cantabile of that fact. Now if Cantabile detects a program change being sent to a plugin it will refresh it's display automatically. This should solve the problem of plugins whose sliders move but the name of the preset doesn't change.

2. The reason many plugins don't respond to program changes is Cantabile won't send them if they're not marked as "wanting MIDI". Most effects fall into this category, but also some plugins just don't listen to program changes. For these cases I've added a new plugin option "Enforce MIDI Program Changes" which when enabled will intercept MIDI program changes and force a preset change through the VST interface rather than MIDI.

I think that covers all the common cases. Neither of these fixes made it into todays build 2017, but will be in 2018 (probably a couple of days away).

Brad

Post

Whoa,bradr, that's really hip. Now, thing is, I'm seriously contemplating buying Performer. Being, however, seriously poor, this is a very big step for me, one that could conceivably interfere with my nutrition for a while anyway, so before I do it, I need a little more info.

First, I've had some mammoth crashes, ones that caused my computer to beep weirdly, ones that I couldn't get out of with ctrl/alt/delete. Ones that made loud ugly noises in band rehersals. These are probably the result of me overloading my computer's CPU. I've been running 3 synths (Square 1 Proteus Vx and YellowTools Ind. Free) and Free Amp guitar processor. My computer is a Dell Latitude 410, 2ghz single core CPU 2gig Ram 180g 7200RPM Hd. Yes, I have been pushing it hard, cause I wanted to see what would happen if I did. My 1st question is, therefore: What can I reasonably expect to run smoothly, given my computer?

Second, will Performer allow me to recall entirely different setups with my Midi pedal, i.e. P1:[Studio Devil w/ clean chorus+ Square 1 strings], P2:[FreeAmp w/Distortion/Delay/Reverb+YellowTools OctoberPad 1]? The description on the web page sort of sounds like the prg change controls mutes and the like, but if I'm going to run into CPU problems, it would be better if inactive plugs were completely out of the picture. In Sonar for example, muted tracks are still in RAM, frozen or archived tracks aren't. This affects performance--glitching, dropouts and crashes are far less frequent when plugs are not present, even if they're not in use.

I don't really need to run 3 synths at once, but it would be nice to be able to choose among them. Also, I need to be able to program volumes.

So will Performer do all this?

Post

Hi Clint,
My 1st question is, therefore: What can I reasonably expect to run smoothly, given my computer?
If you're getting crashes that could be Cantabile... it's currently in beta and these are exactly the types of things I'm interested in fixing over the next few weeks. If you get a crash please send me the crash dump file that Cantabile would have generated (see http://www.cantabilesoftware.com/support/debug.html) along with a description of what you were doing when it crashed and I'll investigate it. I can't stress how important these crash dumps are in resolving these issues.

If a crash dump isn't produced (eg: it's really a hang, or something else), please send a detailed set of steps to reproduce the problem.

As for what sort of performance you can expect from your PC I can't really answer that, except to say that's probably affected more by the plugins you use than Cantabile itself.
Second, will Performer allow me to recall entirely different setups
Yes, Performer is quite flexible in this regard. Sub-sessions let you make certain adjustments to a session and save that state with a name. For example you can bypass, suspend or even completely unload a plugin in one sub-session but have it loaded in another. You can have one media file loaded in one session, not in another. You can change MIDI Routing entries between sessions, have different keyboard split and transpose settings, different mix levels etc...

Note that not everything has to be controlled by a sub-sessions. eg: one plugin can have its mix levels controlled by sub-sessions while another plugin's bypass state is controlled by sub-sessions.

The user guide gives a full list of things that can be controlled by a sub-session.

If you can't control everything you need by sub-sessions, just create new session and define something completely different.

Once you've got all your sessions and sub-sessions configured how you like you can define a session list. Each session list is a set of session/sub-session pairs. If two entries in the list use the same session, switching between them will just load that sub-session (fast). If they use different sessions the new session will be loaded (typically slower).

Once a session list is defined you can control it through MIDI Controllers assignments. For example can bind a MIDI button to load the next session/sub-session in the list or use program changes to load a specific entry for example.
I don't really need to run 3 synths at once, but it would be nice to be able to choose among them.
Sub-sessions are your friend for this. In Cantabile, plugins can be in one of four states:

* Loaded and processing. (full resource usage)
* Bypassed - still processing, and in memory but no input is sent to it. (still full resource usage, but for VSTi's no new notes will be sent which generally reduces load).
* Suspended - still in memory, but not being processed. (Saves CPU but not memory).
* Unloaded - fully unloaded with just the saved state still in memory (the amount of memory used is equivalent to the size of a saved FXB for that plugin).

All of these states can be controlled through sub-sessions.
Also, I need to be able to program volumes.
Not exactly sure what you mean by that but in Performer, sub-sessions can be used to control the mix levels of both plugins and racks (not the master volume though). Also you can assign a MIDI controllers to all gain/volume settings.

What I would recommend is trying the demo version, it's fully functional while it's running (if you close and reopen you lose any saved sessions) but it will certainly let you experiment with session, sub-sessions and session lists, MIDI controller assignments and of course test it's performance.

I hope this helps, please get back to me if you have more questions.

Brad

Post

Will do, and I appreciate your dedication to your work. I don't have my own internet connection, but I'll try to send you crash files as quickly as possible.

Locked

Return to “Topten Software”