- Smaller XRNI (XRNS) size.
- Faster instrument pre-hearing and song saving/loading.
- XRNS saved without the samples will ask for them.
- Optionally longer Renoise start-up.
The idea seems like made out of two separate ideas (non-self-contained XRNS + preload at startup), but it just goes along and would be comfortable.
External samples will be these: “Renoise\External Samples[hash].flac”.
E.g. “Renoise\External Samples\d41d8cd98f00b204e9800998ecf8427e.flac”.
If "Use External Samples" setting is enabled: When Renoise starts up: If "Preload External Samples At Start-up" setting is enabled: Preload all external samples from "Renoise\External Samples" into a map<hash, loaded>. When a sample is saved: 1. Create a hash of the sample and stored it in the XRNI instead of the sample. 2. Saved the sample as "Renoise\External Samples\[hash].flac". When a sample is loaded: If there is a hash of the sample: In this case there won't be the sample inside the XRNI, it's either hash or sample. When the hash is found in RAM in the map<hash, loaded>: The already loaded sample will be used. else: The folder "Renoise\External Samples" will be searched for the hash. If it was found: The sample is loaded into the map<hash, loaded> and will be used. else: The user is told that they need an external sample with this hash, along with the name from the XRNI. The sample slot will be disabled (see "Plug-in not found") to prevent killing the reference when saving the XRNS. When a sample is unloaded: If it is external (the hash is found in "External Samples"), the sample will not be unloaded from RAM.