View Single Post
Old 20 April 2024, 02:43   #2
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,040
P61 doesn't provide that unfortunately, you are not even guaranteed that the sample numbers will be the same.
For example, if you have 3 mods and 10 shared samples.
- mod1 uses samples 1,2,3,6,7,8
- mod2 uses samples 1,2,5,6,9,10
- mod3 uses samples 2,4,6,8,10
After conversion to P61 format, with unused samples being skipped, and with "2 Files" enabled (SMP.xyz with samples, which you ignore because you are using your own shared sample bank, and P61.xyz with everything else):
- mod1 uses samples 1,2,3,4,5,6
- mod2 uses samples 1,2,3,4,5,6
- mod3 uses samples 1,2,3,4,5
So before playing each module you would have to manually construct a sample table and use it in the P61_init routine instead of the one that is read from converted P61.xyz modules (because all of the patterns now contain references to samples 1,2,...,N and that won't work with a shared sample bank). That would be much easier than trying to change (compressed) patterns back to using original samples 1-10.
Another, probably better, option would be to have a post-conversion step where you modify the sample table in P61.xyz and then modify the P61_init routine to allow non-continuous sample data. That would mean extending the sample table with offset for each sample (to skip unused shared samples) because as it is it's assumed that end of sample N is start of sample N+1, which won't work with shared sample bank.

I'm not aware of any player that provides shared samples out of the box (at least not the ones in general use these days), so you would most likely have to do these or similar modification anyway. With P61 it's a bit more complicated because of conversion, but it saves you a lot of space because of compressed patterns so it would be worth it IMO.
a/b is offline  
 
Page generated in 0.04186 seconds with 11 queries