Re: DMGAudio - Compassion and Equilibrium problems
2014/01/31 06:09:14
(permalink)
Full story here with bold highlights for speed readers:
Noel Borthwick [Cakewalk]
Guitarmech111
Alex, Logic would preclude that something broke X3D if it works as expected in X3C. I understand code and release processing of code as well as regression of code. I am waiting for feedback still on my trouble ticket. I know Waves and Cakewalk have a good communication established and we shall get an answer on this soon I hope.
Let's just agree to wait and find out what the bakers or Waves confirms and let this thread breathe a little. ;)
That logic is flawed. While it can be used as a thermometer for general troubleshooting, in the software world you cannot compare two different inter-operating components A and B and conclude that if a problem arises after a change in A it can be implied with certainty that the change in A is the root problem. In this case a change in A to add a new feature exposed a bug in B that causes the problem.
I have debugged this issue and the root problem is that the preset mechanism in several VST3 plugins is not fully implemented according to the VST3 spec. Presets can be changed in a bi-directional way - via the plugin UI or from the host UI. When the host sends a preset change request the plugin should change its preset and update its UI and internal state. Conversely when a preset is changed from the plugin UI it is up to the plugin to send a notification to the host to allow it to sync up its state and UI to the plugin. What is broken here is that the plugin's are not sending the notification back to SONAR and this puts it out of sync. Now when you save the project we save the state that SONAR knows about which is incorrect and when you load it back you get the incorrect state that you are seeing.
In the case of Waves plugins it appears that they never update the current program state when it is changed from their internal UI. I have reported this to their engineering team for review.
In the case of DMG plugins they do update the current state, but never notify the app so we don't know it was changed.
I have passed on information to both DMG and Waves about how to send back a preset change notification to the host.
See the section on Bi-Directional setting of programs here.
Additionally I have added some failsafe code for the next update to prevent settings being lost even if the preset is out of sync (the UI will display the wrong preset name but the plugin state will always be intact when you load a project). I've also added code to make the bidirectional communication work using a different method. This also translates to VST2 so its nice that VST2 plugins will also stay in sync when presets are changed from the plugin UI.
Sell by date at 9000 posts. Do not feed.
@48/24 & 128 buffers latency is 367 with offset of 38.
Sonar Platinum(64 bit),Win 8.1(64 bit),Saffire Pro 40(Firewire),Mix Control = 3.4,Firewire=VIA,Dell Studio XPS 8100(Intel Core i7 CPU 2.93 Ghz/16 Gb),4 x Seagate ST31500341AS (mirrored),GeForce GTX 460,Yamaha DGX-505 keyboard,Roland A-300PRO,Roland SPD-30 V2,FD-8,Triggera Krigg,Shure SM7B,Yamaha HS5.Maschine Studio+Komplete 9 Ultimate+Kontrol Z1.Addictive Keys,Izotope Nectar elements,Overloud Bundle,Geist.Acronis True Image 2014.