View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0007711||ardour||bugs||public||2018-12-19 11:50||2018-12-19 15:57|
|Priority||normal||Severity||minor||Reproducibility||have not tried|
|Summary||0007711: ?annot move or rename a project directory if it uses samples from the same project directory,|
|Description||If i use sampler in project, for example - samplv1 and use sample from project directory, then after moving or rename project directory, all midi clips written with samplv1 will be not playable.|
The thing is that in the directory "/projectDir/external" link to the sample is created and it is not relative, it is absolute and it does not change with the usual renaming / moving of the project directory. This link point to old project directory.
Because of this bug, I can't just rename / move project directories. Instead, I have to save each project with a new name or in a new location. It does not sound very scary if you do it once, but if you try to work with a project lying on a flash drive such as at home and in the Studio, you have to constantly make sure that the paths at home PC and on studio-PC all the same. Also big problems are waiting for someone who keeps a lot of projects in one directory and then wants to rename it. We'll have to resave each project separately.
|Steps To Reproduce||Create some sound in project and export this sound as smpl.wav file in default export folder: projectDir/export/|
Add track with sampler "samplv1" and assign smpl.wav in samplv1.
Write some midi track with samplv1.
Save and close project.
Move projectDir to another directory.
Open project and play written earlier midi track.
|Tags||No tags attached.|
Good catch for, *same project directory*
This currently works if you save the file in a folder name "files/" in the plugin's own state folder.
Arguably this is not very convenient.
Assuming the plugin has the id "11019", create a folder
and place the files that you use there. Then saving the state will use relative links, for example
/plugins/11019/state2/test.sf2 -> ../files/test.sf2
, bypassing the "externals" folder. Everything outside of the plugin's state folder is currently assumed to be "external".
There is some inter-play between ardour and liblilv, the abstract_path() feature is provided by liblilv and we may need an additional parameter apart from "copy_dir" and "link_dir". -- I'll put it on the list of things to resolve along with https://github.com/drobilla/lilv/issues/13 and https://github.com/drobilla/lilv/issues/11 (more link/symlink woes).