Question on Chunks
-
- KVRian
- Topic Starter
- 960 posts since 27 Jun, 2009 from Germany
Hi there,
I am encountering a strange problem with Reaper. Not sure whether it is reaper specific or more general.
I am currently experimenting with a preset system, where I expose only one programme to the host, and handle everything else internally. I want to store state and bank information as chunks.
Even though I inform the host that I am using chunks
#define PLUG_DOES_STATE_CHUNKS 1
in WDL-OL, reaper does not call effSetChunk (or effGetChunk) in the dispatcher, but rather reads out and restores the parameters, effectively overriding the chunks setting.
If I use a larger number of programs in the bank, I get the expected chunk-related calls.
Is that common practice in hosts, to ignore the chunk settings, when the bank only contains one program?
Cheers,
Martin
Edit: Problem solved. I had a bug which gave rise to an invalid chunk.
I am encountering a strange problem with Reaper. Not sure whether it is reaper specific or more general.
I am currently experimenting with a preset system, where I expose only one programme to the host, and handle everything else internally. I want to store state and bank information as chunks.
Even though I inform the host that I am using chunks
#define PLUG_DOES_STATE_CHUNKS 1
in WDL-OL, reaper does not call effSetChunk (or effGetChunk) in the dispatcher, but rather reads out and restores the parameters, effectively overriding the chunks setting.
If I use a larger number of programs in the bank, I get the expected chunk-related calls.
Is that common practice in hosts, to ignore the chunk settings, when the bank only contains one program?
Cheers,
Martin
Edit: Problem solved. I had a bug which gave rise to an invalid chunk.
-
- KVRian
- Topic Starter
- 960 posts since 27 Jun, 2009 from Germany
Hi,
it seems I need to revive this thread, as I stumbled about the same problem again.
I though that I had found the bug and fixed it, but it seems there was just some co-incidence.
Again, I am having the same problem that effGetChunk is not called. This time, it seems that it works fine in reaper, but it does not work in SaviHost.
Could anybody (aracula??) give me some more information on how the host decides to call this function (send this opcode to the plugin's dispatcher). Apart from having set
are there any other conditions which have to be fulfilled, or are there any things during the lifetime of a plugin, which prevent the host from calling this function?
Any help would be greatly appreciated.
Cheers,
Martin
it seems I need to revive this thread, as I stumbled about the same problem again.
I though that I had found the bug and fixed it, but it seems there was just some co-incidence.
Again, I am having the same problem that effGetChunk is not called. This time, it seems that it works fine in reaper, but it does not work in SaviHost.
Could anybody (aracula??) give me some more information on how the host decides to call this function (send this opcode to the plugin's dispatcher). Apart from having set
Code: Select all
mAEffect.flags |= effFlagsProgramChunks
Any help would be greatly appreciated.
Cheers,
Martin
- KVRAF
- 7897 posts since 12 Feb, 2006 from Helsinki, Finland
The flag should be enough. I'd try running Savihost in debugger to make sure it's not catching any exceptions (eg. memory errors) silently.
-
- KVRian
- Topic Starter
- 960 posts since 27 Jun, 2009 from Germany
OK. I found it. Really stupid mistake. It had nothing to do with my plugin.
In the configuration of my Visual C++, I passed the command line arguments
"/noload /nosave /noft /noexc" to savihost. I must have added them ages ago to the debug configuration, and forgot to take them out again (at least the saving related options).
Now, it works as expected.
Cheers,
Martin
In the configuration of my Visual C++, I passed the command line arguments
"/noload /nosave /noft /noexc" to savihost. I must have added them ages ago to the debug configuration, and forgot to take them out again (at least the saving related options).
Now, it works as expected.
Cheers,
Martin
- KVRAF
- 2185 posts since 25 Jan, 2007 from the back room, away from his wife's sight (or so he thinks)
Another tip, if you are using a compiler that's new enough - make sure you add the "override" keyword to your method declarations. That way, the compiler will complain if you accidentally have the wrong signature (int vs. unsigned int is enough), instead of silently treating it as a new overload. That one crept up on occasion before, but has never happened to me again ever since I started using override.
Cakewalk by Bandlab / FL Studio
Squire Stratocaster / Chapman ML3 Modern V2 / Fender Precision Bass
Formerly known as arke, VladimirDimitrievich, bslf, and ctmg. Yep, those bans were deserved.
Squire Stratocaster / Chapman ML3 Modern V2 / Fender Precision Bass
Formerly known as arke, VladimirDimitrievich, bslf, and ctmg. Yep, those bans were deserved.
- KVRAF
- 7897 posts since 12 Feb, 2006 from Helsinki, Finland
While this is a good idea .. if it works in one host, then it's not a virtual override problem.Chris Walton wrote:Another tip, if you are using a compiler that's new enough - make sure you add the "override" keyword to your method declarations. That way, the compiler will complain if you accidentally have the wrong signature (int vs. unsigned int is enough), instead of silently treating it as a new overload. That one crept up on occasion before, but has never happened to me again ever since I started using override.
- KVRAF
- 2185 posts since 25 Jan, 2007 from the back room, away from his wife's sight (or so he thinks)
Oh yeah, that's absolutely true - it was just the first thought I had before I saw that it happened only in one host and not the other.mystran wrote:While this is a good idea .. if it works in one host, then it's not a virtual override problem.Chris Walton wrote:Another tip, if you are using a compiler that's new enough - make sure you add the "override" keyword to your method declarations. That way, the compiler will complain if you accidentally have the wrong signature (int vs. unsigned int is enough), instead of silently treating it as a new overload. That one crept up on occasion before, but has never happened to me again ever since I started using override.
Cakewalk by Bandlab / FL Studio
Squire Stratocaster / Chapman ML3 Modern V2 / Fender Precision Bass
Formerly known as arke, VladimirDimitrievich, bslf, and ctmg. Yep, those bans were deserved.
Squire Stratocaster / Chapman ML3 Modern V2 / Fender Precision Bass
Formerly known as arke, VladimirDimitrievich, bslf, and ctmg. Yep, those bans were deserved.