jpcima / ADLplug

FM Chip Synthesizer — OPL & OPN — VST/LV2/Standalone
Boost Software License 1.0
425 stars 22 forks source link

Error of saving setup while using multiple channels #14

Closed Wohlstand closed 5 years ago

Wohlstand commented 5 years ago

He has a problem: Can't save settings when all channels are playing.

This report I have got from one guy whom I have showcased the ADLPlug thing and he have reported me the issue with it.

He have used Win32 VST2 assembly.

P.S. Missing MinGW dlls! (I gave him mine)

The assembly alpha in the releases: OL3 ADPlug VST.zip

jpcima commented 5 years ago

Yeah it's a delicate problem to know how to handle this adequately.

P.S. Missing MinGW dlls! (I gave him mine)

Most likely fixed in very recent commits. I noticed as I copied all cmake stuff to another plugin I was in the making.

Can't save settings when all channels are playing.

I assume by settings that it means the set of the parameters. I would like more understanding of the precise problem, but let me tell you what happens on the parameters.

The parameter set is based on the instrument which is on the current select channel. Change to another channel, and parameters are going to get transition to the selected instrument on that channel.

A thing is: if you save a parameter block, like in VST, it's that selection which is going to get saved into the file (not all channels). Beside, the midi channel selection is not itself part of parameters (at least not yet)

A thing which may be possible, this may be to implement the "state" mechanism in such a way that I can dump, and then reload everything off a big XML file (include the banks and all).

It's a work which needs me to study for more information about behavior of hosts

Wohlstand commented 5 years ago

tests midi.zip

He says that only 8 voices rather 16'th mode is in use by unknown reasons. The bank was used on ADLplug is 58'th FatMan.

jpcima commented 5 years ago

@Wohlstand Thanks for a musician's feedback, even for somewhat vague reports. To try to extrapolating on this:

This may have some relation with parameter saving and loading. (open another issue if not)

The 4-op channel count in this software is manually defined, it's unlike ADLMIDI where it's the contents of banks which decides. I needn't tell you about this, but it's 4op count and combinations of instruments have both effect on polyphony count. (I don't know if your friend is reading the comment)

In release Alpha.1, 4op count was not a parameter and so, is not saved in any circumstance. It will go back to a default of 2, a somewhat balanced value for mixes of 2/4 op instruments.

In the Alpha.2 release just made today, 4op count was now made a parameter, so it's possible that such a problem is no longer. (and has a set of important fixes, for which is recommended to update as well)

EDIT 58'th is "The Fat Man 2op set". In such a case, set the 4op count to 0. setting4op

jpcima commented 5 years ago

Now, I have taken a chance by merging to master a support for saving a full state, which I have not extensively tested myself. A save chunk will include all chip parameters, banks. At the same time, the support of parameters was extended to the full range of MIDI channels. I hope for this save/load models to be appropriate for elaborate musical use.

Currently there is still this which is not saved:

Please pick a dev build when it's green and try yourself

Wohlstand commented 5 years ago

I sent him your message and he have made a test: everything now working! :fox_face: :+1: