<br><br><div class="gmail_quote">On Sat, Mar 7, 2009 at 12:04 PM, Martin Profittlich <span dir="ltr"><<a href="mailto:martin@profittlich.com">martin@profittlich.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
here is my first attempt to add VST plugin state support to Ardour.<br>
<br>
Here is what I did:<br>
- Save the state file in the session directory instead of ~/.ardour2<br>
- Only save the filename of the state file in the session file (the path<br>
is known)<br>
- Use unique_id() to name the state file<br>
- Use fst_save_state() and fst_load_state() to do the real work<br>
<br>
What do you think?<br>
<br>
There are a couple of issues with this patch:<br>
<br>
- Ardour doesn't know when a plugin state has changed and therefore<br>
doesn't ask wether to save the project on exit.</blockquote><div><br>i'll think about this. i think it would be better to encode the chunk state and put it into the session file. VST (unlike AU) has no real standard for sharing presets/settings across DAWs.<br>
<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
- It seems to be necessary to open the editor of the plugin in order to<br>
set the state and do the consistency checks. I do this with<br>
fst_run_editor() and fst_destroy_editor() around fst_load_state(). For<br>
some reason, this creates an empty window that doesn't get closed on<br>
fst_destroy_editor().</blockquote><div><br>should not be necessary. will consider it.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
- It uses FST's new file format, which probably cannot be considered<br>
finalized until there is a new FST release.</blockquote><div><br>not so. ardour doesn't use FST as an external library, and likely never will. <br></div><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Also, did anyone have a chance to look at the backtrace I posted a<br>
couple of days ago, regarding the VST freeze issue? I worked around it<br>
by removing a call to connect_and_run() from insert.cc, but I doubt that<br>
this is a real fix. The call must surely be there for a reason. It's<br>
just that by looking at the code, I wasn't able to find it. :-)</blockquote><div><br>your multithread diagnosis is almost certainly correct. i'm still working on a real fix.<br><br> </div></div><br>