Let's go step by step:
1_ LV2 Portables _
What you indicated:
"you save the session to archive/zip file type (*.qtz)."
It doesn't work:
If it works, I don't know the method...
As I indicated above, I've tried everything. (I've also tried with traditional relative paths ./ but that make Qtractor crashes).
Also, as I've indicated, qtz deletes the original qtz when saving, (including all plugins) which makes it a useless methodology.
It does work:
with normal sessions, but you have to add the session path in options for Qtractor to detect it.
So my question is:
Can it be done so that when opening the session, Qtractor always scans the session folder looking for LV2 plugins?
If the answer is yes, the portability of LV2 plugins is solved.
2_ Plugin Samples _
Plugins use absolute paths for their samples.
Qtractor must save these paths in the session file.
But Qtractor can detect if samples are being taken from within the session folder.
It would be something like:
If the samples path contains the session path, save: "./" + ("the samples path" - "the session path").
If a plugin requests samples and the samples path starts with "./" it delivers: "the session path" + ("samples path" - "./").
3_ Making the rest of the plugin formats portable
In fact they already are. Steps:
1 Load the plugin into the session and save the session.
2 Put a copy of the plugin into your project folder.
3 Edit the .qtr in a text editor and change the plugin's absolute path to "./"
4 Delete the original plugin to ensure that we are really dealing with a portable plugin.
Now tested with odin.clap. I already tested it a while ago with VST formats.
It works. And it works without any scanning by Qtractor. It just finds it and loads it.
Then again:
If Qtractor scanned the session folder on opening for plugins, regardless of the format, you could include plugins of any format inside the project folder and it would work.
Because, even if the plugin path inside the session referred to the original absolute path, when it found a copy of the plugin inside the session folder it would use it.
I have tested this as well.
Conclusion:
Qtractor should scan sessions for plugins on opening them.
This makes ALL plugins portable.
As for the samples... you would have to implement what I have indicated.
I'm a bit lost, and forgive my lack of knowledge.
Let's go step by step:
1_ LV2 Portables _
What you indicated:
"you save the session to archive/zip file type (*.qtz)."
It doesn't work:
If it works, I don't know the method...
As I indicated above, I've tried everything. (I've also tried with traditional relative paths ./ but that make Qtractor crashes).
Also, as I've indicated, qtz deletes the original qtz when saving, (including all plugins) which makes it a useless methodology.
It does work:
with normal sessions, but you have to add the session path in options for Qtractor to detect it.
So my question is:
Can it be done so that when opening the session, Qtractor always scans the session folder looking for LV2 plugins?
If the answer is yes, the portability of LV2 plugins is solved.
2_ Plugin Samples _
Plugins use absolute paths for their samples.
Qtractor must save these paths in the session file.
But Qtractor can detect if samples are being taken from within the session folder.
It would be something like:
If the samples path contains the session path, save: "./" + ("the samples path" - "the session path").
If a plugin requests samples and the samples path starts with "./" it delivers: "the session path" + ("samples path" - "./").
3_ Making the rest of the plugin formats portable
In fact they already are. Steps:
1 Load the plugin into the session and save the session.
2 Put a copy of the plugin into your project folder.
3 Edit the .qtr in a text editor and change the plugin's absolute path to "./"
4 Delete the original plugin to ensure that we are really dealing with a portable plugin.
Now tested with odin.clap. I already tested it a while ago with VST formats.
It works. And it works without any scanning by Qtractor. It just finds it and loads it.
Then again:
If Qtractor scanned the session folder on opening for plugins, regardless of the format, you could include plugins of any format inside the project folder and it would work.
Because, even if the plugin path inside the session referred to the original absolute path, when it found a copy of the plugin inside the session folder it would use it.
I have tested this as well.
Conclusion:
Qtractor should scan sessions for plugins on opening them.
This makes ALL plugins portable.
As for the samples... you would have to implement what I have indicated.