PG8X (inspired by the JX8P): new beta version uploaded

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Locked New Topic
RELATED
PRODUCTS
pg-8x

Post

Hi,

which version of PG-8X are you using? I remember there was a bug in the Midi Learn system, which should be solved by now. Please, make sure you are using the latest version. If you hover with the mouse over the MLVST logo, it should display "v2.0.10".

I am also using the Novation Remote, but can't see any of the problems you report.

Cheers,
Martin

DuX wrote:I have tested PG-8X some more with W7x64 and Reaper 5.18 and there were no crashes. I had a bit of freezing at first, and I had to restart Reaper, when I tried to learn a CC control, but pressing "clear settings" and "make default" [in that order] solved it. I just re-learned the CCs and everything works now.

However, when I move the sliders on the MIDI keyboard there is a little ~1sec freeze of the controls on the PG-8X when you try changing a different control. For example I change the attack on the envelope, then try changing the decay and I get a freeze in between every time you try a different control. When you change only one control, even with pauses in between, it works more or less smoothly.

If you're not experiencing this freezing of controls then it could be the Novation MIDI driver to blame. I wouldn't be surprised. So does anybody experience the same?

Post

Martin , we're not there yet, I just found out after reloading a project that, eventhough the setting on the GUI was +6dB the "real" volume was still -6dB :(
And also the other way around GUI -6dB real volume +6dB, so we are almost there, I still think it has something to do with the ini file...

I attached a flstudio project so you can see what goes wrong
The Bass should be -6 strings +6 trumpet -6 the GUI's are right but the volume is NOT !

Try the simple one : all three are init but -6,0,+6 when I saved them after reloading they are all the same volume but the GUI is right.

Same goes for REAPER try it yourself with three inits +6.0.-6 save/reload ...all the same :(

Yeager wrote:Yes !, Martin you da man...
You did it, it finally works the way I always hoped it would :hug:
Also the preset saving/loading works (in the PG8Xpreset format).
The syx saving/loading still recalls the wrong poly (but I don't care I don't use this :clown: )

So thank you very much for this GREAT synth :clap:

martin_l wrote: So, you will be able to set the global gain "per instance" and it will be saved with the project, and recalled correctly.

Thanks for pointing this bug out to me.

Cheers,
Martin
You do not have the required permissions to view the files attached to this post.

Post

As I suspected, when I turn off TC Electronic's ASIO driver and use "dummy audio" instead, PG-8X' GUI controls follow the Remote controls smoothly. So it's probably something to do with TC Electronic's ASIO priority that I have to tweak. ;) I'm actually not using this computer for serious audio work so it's not really tweaked nicely as my other computers. This computer only controls TC StudioKonnekt's mixer. :) And I use it for toying around. I use Windows XPx64 with RME card for serious work, and I'm sure PG-8X will work nicely there. :tu:

Cheers!

edit: ha! after tweaking some settings in TC's control panel, I managed to make it work smoothly with PG-8X. :clap: :D

edit2: bad news is that PG-8X freezes Reaper after consecutively assigning "cutoff" and "Res" to CCs 62 and 61, no matter which ASIO or even USB driver. I tried with Novation's USB and Windows7 USB driver. Maybe it will work if I save the settings after assigning "cutoff", then save default settings, then try assigning "res"...?

edit3: yes, it's a bit tricky to assign some sliders to CCs, it seems. It's best to save often. I managed to make it work by saving the project [and "write"-ing in PG-8X] after assigning each slider. Once you manage to assign the controls you want, everything seems to work fine. :tu:
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti

Post

DuX wrote:As I suspected, when I turn off TC Electronic's ASIO driver and use "dummy audio" instead, PG-8X' GUI controls follow the Remote controls smoothly. So it's probably something to do with TC Electronic's ASIO priority that I have to tweak. ;) I'm actually not using this computer for serious audio work so it's not really tweaked nicely as my other computers. This computer only controls TC StudioKonnekt's mixer. :) And I use it for toying around. I use Windows XPx64 with RME card for serious work, and I'm sure PG-8X will work nicely there. :tu:

Cheers!
Still it is worrying that it behaves worse than other plugins, or did you also observe similar things with other plugins?

edit: ha! after tweaking some settings in TC's control panel, I managed to make it work smoothly with PG-8X. :clap: :D

edit2: bad news is that PG-8X freezes Reaper after consecutively assigning "cutoff" and "Res" to CCs 62 and 61, no matter which ASIO or even USB driver. I tried with Novation's USB and Windows7 USB driver. Maybe it will work if I save the settings after assigning "cutoff", then save default settings, then try assigning "res"...?

edit3: yes, it's a bit tricky to assign some sliders to CCs, it seems. It's best to save often. I managed to make it work by saving the project [and "write"-ing in PG-8X] after assigning each slider. Once you manage to assign the controls you want, everything seems to work fine. :tu:
Yes, the intended way is to learn one parameter at a time. It should cope with learning a sequence of parameters, but you might get problems when moving a already assigned CC while learning a second parameter. So, the safe way is to click WRITE/CLOSE after each parameter.

Martin

Post

martin_l wrote:Another quick update on the FL problem.

I realized why the CPU load is so high when changing presets. It is the standard way of doing things in WDL, which in combination with the way I handle some things, created a huge overhead. When only changing the preset once in a while, it did not show up, but when automating the programme change (which I still think is a crazy thing) it drove the CPU usage into the sky, which probably is what brings down the Fruity Loops engine.

I managed to rewrite parts of the code involved in loading a preset now, and the CPU went down dramatically. I need to do some more tests and also check the issue of the Keyboard modes (Poly, Mono, etc.) possibly not loaded correctly, and then will publish the next version.

Cheers,
Martin
Thank you for taking you time to fix it.
I use WDL-OL too and I had the same issues, so had to rewrite parts of WDL-OL.
Here are the key things I remember, maybe it will give you some help:
1) All the GUI update stuff should happen in OnIdle() call. Or, if you don't use OnIdle, in a separate Timer call (this is the way it's done in WDL by default - WM_TIMER event in IGraphicsWin.cpp).
But for VST2 I still prefer to use deprecated OnIdle(), cause it allows host to decide how often to update plugin's GUI, depending on current CPU load. This is not possible with Timer calls since they have fixed FPS.
In WDL-OL you can still use OnIdle() calls id you uncheck USE_IDLE_CALLS constant.
2) When you process SetParameter call from host (or caused by SetProgram), you only change control's internal value and mark it as "dirty", but dont do any GUI stuff. The latter is done in OnIdle() call when host sees that parameter is "Dirty"
3) Check if you send InformHostOfParamChange() notification to host only for GUI parameter changes, not for param changes caused by SetParameter call from host or SetProgram. The latter will invoke a lot of unnecessary InformHostOfParamChange() nofifications on each program change.
martin_l wrote:New versions which hopefully should solve the FL problem are uploaded on the dropbox. They will also fix the problem of the Global Gain always reverting to LOW.
https://www.dropbox.com/sh/e5oop1vf8vpl ... eezxa?dl=0
Cheers,
Martin
Thank you for the update. I have no access to my home PC till next weekend (Im on vacation), but I'll test the issue on my old IBM T42 laptop with Pentium M CPU I have here. CPU load issue should be even better visible because of slow CPU )

Post

Tested v2.0.10 in FL Studio 12.2/Windows XP 32bit - the CPU freeze issue is still there, but CPU overhead is a bit slower in 2.0.10.
Dont know if a crash issue still there though, will test it next weekend.

I have Pentium M CPU @ 1.6GHz, running at full speed.
First I mute the dashboard track and hide the GUI to see CPU load for sound generation only.
Then I unmute it to see the difference (overhead caused by fast program switching).
testing v2.0.10
3 instances of PG-8X. Muted: 30%, unmuted: 80%, sound goes clicky, GUI goes to "slide show" but doesnt freeze
1 instance of PG-8X: Muted: 10%, unmuted: 40%, sound stays clean, GUI stays smooth. BUT, opening or closing GUI window doesnt make any difference. Which gives me a suggestion that you probably still have some GUI processing logic called from audio thread.

testing v2.0.8
1 instance of PG-8X: Muted: 10%, unmuted: 70%, sound goes clicky, GUI - slideshow. The same, opening or closing GUI window doesnt make any difference.

So I guess in 2.0.10 you fixed some of the issues, but still you have some GUI logic called from audio thread (because opening or closing plugin window does not affect CPU load).

One of possible ways to debug it - make a break point where control is redrawn (in WDL it's normallty Draw() method), hide GUI window in you project and debug it - this place of code shoud never be called.

UPDATE: I did the same test with BlueARP and suprusingly discovered that it gives nearly the same CPU overhead on program switching. And I know for sure I don't call GUI stuff from audio thread. Moreover, opening or closing window gives virtually no difference on CPU, it means that CPU load for GUI stuff is negligible. Mostly it's due to SetParameter calls for each parameter.
So on faster CPU it will be hopefully fine, I'll test it next weekend on my system and let you know.
Thanks for your time.

Post

Martin, I noticed PG-8X doesn't store the CC controls in its INI file. It stores them within the patch. Wouldn't it be better if it stored them within the INI file? ;) Is there an advantage in storing the CC controls within the patch? I wonder especially since you're also using Novation Remote. 8)
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti

Post

Hi Martin,

I just wanted to mention that I really enjoy your synth. Both the sound and the aesthetics of PG8X are very appealing to me, especially since your major GUI overhaul, and it is one of my favourite free instruments.

Also, I was wondering if you would ever consider adding a browser tab/shell to the GUI? I mean like the NI and U-He synths have, allowing for quickly browsing through and organising presets, without opening separate windows to load and save different banks.

Or is that too far away from the original JX-8P, for your taste?
Last edited by huibjandejong on Thu May 05, 2016 10:16 am, edited 1 time in total.

Post

DuX wrote:Is there an advantage in storing the CC controls within the patch?
For some patches you want to use your knobs/faders for different controls.
Storing that info in the ini would only make sense if you had a really big MIDI controller with 1 or more knobs per PG8X function.
[====[\\\\\\\\]>------,

Ay caramba !

Post

There should still be a way to have global MIDI learn assignment - in fact that should be the default, then a per-preset override. Having to assign MIDI learn for each and every patch is beyond tedious.

Post

EvilDragon wrote:There should still be a way to have global MIDI learn assignment - in fact that should be the default, then a per-preset override. Having to assign MIDI learn for each and every patch is beyond tedious.
That, actually, is the case. If you learn some assignments, you can click Make Default. These will be stored with the bank and will be used whenever a patch does not have it's own settings.

Cheers,
Martin

Post

DuX wrote:Martin, I noticed PG-8X doesn't store the CC controls in its INI file. It stores them within the patch. Wouldn't it be better if it stored them within the INI file? ;) Is there an advantage in storing the CC controls within the patch? I wonder especially since you're also using Novation Remote. 8)
In fact, I started working on saving and recalling a default mapping, if no bank is loaded. I did not (yet) finish the code for that, as I thought it would be unnecessary with the possibility to define a default bank, and the fact that you could set up a default mapping in that bank. I could try to revive that part of the code, though.

Cheers,
Martin

Post

OK. The global gain business should now finally be sorted out (new version 2016-05-08 in the Dropbox).

https://www.dropbox.com/sh/e5oop1vf8vpl ... eezxa?dl=0

Cheers,
Martin
Yeager wrote:Martin , we're not there yet, I just found out after reloading a project that, eventhough the setting on the GUI was +6dB the "real" volume was still -6dB :(
And also the other way around GUI -6dB real volume +6dB, so we are almost there, I still think it has something to do with the ini file...

I attached a flstudio project so you can see what goes wrong
The Bass should be -6 strings +6 trumpet -6 the GUI's are right but the volume is NOT !

Try the simple one : all three are init but -6,0,+6 when I saved them after reloading they are all the same volume but the GUI is right.

Same goes for REAPER try it yourself with three inits +6.0.-6 save/reload ...all the same :(

Yeager wrote:Yes !, Martin you da man...
You did it, it finally works the way I always hoped it would :hug:
Also the preset saving/loading works (in the PG8Xpreset format).
The syx saving/loading still recalls the wrong poly (but I don't care I don't use this :clown: )

So thank you very much for this GREAT synth :clap:

martin_l wrote: So, you will be able to set the global gain "per instance" and it will be saved with the project, and recalled correctly.

Thanks for pointing this bug out to me.

Cheers,
Martin

Post

And it does work GREAT :hyper:

Thank You Thank You Thank Yoooouuuu :hug:
martin_l wrote:OK. The global gain business should now finally be sorted out (new version 2016-05-08 in the Dropbox).

Post

Update on FL Studio crash issue.
Still freezes FL studio on my "crash test project", but no crashes on my real project so far.
During 2-3 hours of playing there were no crashes.
Thanks again for the update, now I can use PG-8X for my live performances.

Locked

Return to “Instruments”