Sample pools in OS 2.x

Moderator: Solaris Moderators

inaheartbeat
Posts: 39
Joined: Sat May 19, 2012 12:39 pm
Contact:

Sample pools in OS 2.x

Post by inaheartbeat »

I am now completely confused about how to load up sample pools in 2.0.3 OS version. Sample pools are supposedly global so they don't apply to each part. All well and good but now there doesn't seem to be a way to enable sample pool loading and selecting the sample pool for your oscillators.

This is something that has come out of the larger issue I started with in trying to craft my own sample pools. I purchased the latest Translator and Constructor packages from Chicken Systems because they supposedly support the formats. Lo and behold, they have that code somewhere buried but not visible to the user. I have been back and forth with them (excellent support communications fyi) and they don't really have a firm grasp on exactly how best to create the sample pools based on the documentation that is public and some emails they had exchanged with John back in the 2011 time frame. I reproduce below a part of an email exchange with Garth:

"So I'm going to assume that stereo samples are not supported, that the Solaris can only play one note at a time - in the classic sense - given a single MIDI note.

So given importing a stereo sample, I'll take the left side only. If you want, I can do a LEFT or RIGHT or a mix thing.

Lastly on that topic, HOWEVER - I'm sure the Solaris has multiple oscillators. We're only talking about composing SamplePools here, we're not talking about programming PROGRAMS, which Translator does as it's specialty. Given an incoming program with (say) 10 stereo samples mapped across the keyboard, couldn't Translator compose TWO SamplePools, LEFT one and RIGHT the other, and then someone composing a Solaris Program could assign one SamplePool to Osc1 and the other to Osc2, pan hard left and hard right, and voila! stereo, right? Please confirm.

I'm also assuming that lowkey and highkey are read in as authoritative. (I know you'd say "duh" but my old conversations with John imply otherwise. Plus our code always writes them as 0 and 127. Again, I don't know why, the spec does say it works. Please check to make sure it does or not.) "

Any clarifications from John or others on how this works and/or even if it is working would be greatly appreciated.
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Sample pools in OS 2.x

Post by John Bowen »

My apologies for any confusion regarding the change in how the samples are handled. This was actually changed in the 1.4.3 OS, which is described here: viewtopic.php?t=16758).

A preset can now load a sample pool when the preset is called up. This is determined by the setting of the LoadSamp parameter on page 1 of the new System page. If this is ON, then any preset that has a Sample Pool stored with it will first load the samples before it can play the preset. At first I didn’t want to do this, as a large SamplePool could take a long time to load, however, I did decide to finally change that. (By making a SAVE of the System data, you can keep this parameter ON.)

To select a SamplePool for loading, you now must go to the Home page 3. If no pool has been programmed, the parameter SmpPool will show ‘None’. Turning the lower middle encoder will select from the available pools on the CF card, and the Enter button will start blinking. Pressing Enter will then load the pool. (Selecting any other page or screen will turn Enter off.) Saving the Preset (using the Store button) will also save the selected Sample Pool with the preset.

As for stereo samples - currently the Solaris WAV oscillator can only play a single sample across the entire key range. Also, as you state, the Sample Pool is ‘global’, in the sense that all 4 oscillators must choose from that pool (and all Parts must select from the one Sample Pool). To do the “stereo playback”, you just need all left and right samples in the same Sample Pool, and then select the appropriate samples for each part or section as needed. Note that there is no assurance that you will have perfect phase coherence, as the oscillators are still going to be triggered independently, but it’s often good enough in my experience for the stereo image to sound good.

With Translator, you can have it take all of the samples in a folder, and it will produce a SamplePool for those samples. What you want to do, then, is save each side of your stereo samples separately, and put them all into one folder.

Typically I just have the sample name followed by a -L or -R. So, for example, you'd have something called ‘THING A -L’ (which is in the Factory CF card Sample Folder for v2.x OS users). Then the right side would be 'THING A -R’ (which I didn’t put in the CF card folder, just so you know). The numbering of the samples is determined by the SamplePool text file (which you can easily edit, by the way). So let’s say Thing A -L is sample #1, and the Thing A -R is #2. To pan them left and right, you have to use 2 of the VCA sections, which means using 2 mixers, and 2 filters for the signal paths. Set Osc1 WAV to play Wave 1, and Osc 2 to play Wave 2. Route Osc1 through Mixer1, Filter1, and VCA1, and hard pan it to one side. Similar thing for Osc2. That will allow you to play both sides of a stereo sample.

I hope this helps clarify. Let me know if you have more questions.

John B.
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Sample pools in OS 2.x

Post by John Bowen »

Another thing to know - as I stated above, you can freely edit the SamplePool text file using your computer (and a CF card reader, of course). You can change the low and high key values right there in the text file, so if you’d like a sample to be ‘key windowed’, just set the low and high values in there, and save the file. I’ve done this to create a ‘mapping’ of sorts for drum samples. You still can only select 1 sample per oscillator, so the most drum samples playable in this way would be 16 - 1 per each oscillator in a Part, and then 4 parts, so 4 x 4. Just make sure no key zones overlap.

I do hope to change the WAV oscillator in the near future to be able to play back a multisample set. In this case, the SamplePool could map everything to 1 oscillator. It was never my intention for the Solaris to have a ‘rompler’ functionality, as I really wanted it to focus on ways to ‘mangle’ samples and use them in different ways, but it’s obviously something that needs to change.
Guest

Re: Sample pools in OS 2.x

Post by Guest »

John,
Thanks for the detailed and helpful response and the pointer to the original change documentation which I read. I would really look forward to some improvements in the UI part of sample handling because trying to remember sample pools by number is hard and, as you pointed out, there can be real issues if you are sharing these pools. I definitely never thought about using the samples in some sort of rompler function on the Solaris. I would like them to be played with and also layered into other parts in a multi. I really hadn't used the samples but just recently got interested in this and playing with it given the Translator support and the large amount of samples I have hanging around from various sources.
inaheartbeat
Posts: 39
Joined: Sat May 19, 2012 12:39 pm
Contact:

Re: Sample pools in OS 2.x

Post by inaheartbeat »

I don't know why my last reply posted up as "guest." I guess I forgot to login. Garth from Chicken Systems is going to be working on getting this functioning properly and I have volunteered to test stuff he comes up with on my Solaris so we shall see how it goes.
inaheartbeat
Posts: 39
Joined: Sat May 19, 2012 12:39 pm
Contact:

Re: Sample pools in OS 2.x

Post by inaheartbeat »

John,
I have been testing some sample and sample pool files from Garth at Chicken Systems. I really hadn't used the sample pool functionality before but now having gotten a lot more exposure, I have a few observations of my own.

You had mentioned enhancing the software to actually use sample pools with files that are key mapped so that you have a true multi-sample set. I have to say this seems like an absolutely necessary improvement to make it useful to use samples. After all, what is the purpose of a "sample pool" if it really is just a collection of samples that can only run one at a time anyway? I feel like you do in that I don't want to have a "rompler" but I also don't want sounds that are mostly unuseable over large portions of the keyboard range outside the root key of a sample.

There is no documentation on having the actual audio files in sub-directories of the SAMPLE folder. It would be enormously helpful to be able to partition up the audio files in directories reflecting the organization of the sample pools. It doesn't even have to be multiple levels deep. Just something that allows audio files in subdirectories below the SAMPLE folder. I have found I had to rename a lot of files just to avoid collisions with existing files in the flat directory structure now implemented.

As you had mentioned with regard to sample pool sharing, the naming requirements for sample pools are really restrictive and once you get past just a few sample pools it is really difficult to keep track of what is going on. Garth gave me a bunch of sample pools and files associated with them to test and I had to first edit all the names to insure I was not getting things accidentally erased.

It is not clear how/if the loopstart and loopend parameters are used, if at all. Garth is assuming (possibly incorrectly) that to avoid looping in samples you need to start the loopstart and loopend parameters to the same value. Any clarification would be greatly appreciated.

Finally, at least for now, is there any reason not to allow for .wav files in addition to .raw audio files at this point? Certainly a more common format.
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Sample pools in OS 2.x

Post by John Bowen »

So, last question first - what I learned about playing back .wav files - the Solaris can play them back already, but the way the code was done plays back all the data in the file, which includes the metadata tag. For a few samples, I could hear a tiny ‘click’, and when I asked the coding engineer at the time why, he explained that was what I was hearing. The .raw format strips out this metadata, so you have only the pure sample data. However, if you like, you can load .wav files and see if you hear any problems. You just have to edit the sample names in the SamplePool text file to match exactly. As an example - the attached files below are of an 808 cymbal sample, in both the .wav and .raw format. Both samples will load up using the SamplePool.006.txt. Just unzip the files and put them in your Samples folder (and renumber the sample pool file if you already have a -006.txt file).
808Cym.zip
(332.33 KiB) Downloaded 97 times
You should be able to hear a bit more of a ’transient’ in sample 1, which is a .wav file. Sample 2 is the .raw version. (You actually might prefer having the ’transient’ to give it some punch at the beginning, but this sound is actually the metadata playing back!)


Regarding naming - we did change the way banks and presets can be named (with actual text names now), and the plan was to carry that over to the sample pools. I also have discussed having better organization of the files, using sub-folders/directories just as you suggest, so I think these will all come with the next OS release.

RE: loop points - for one-shot samples, I set the loopstart value 2 samples before the loopend point. This will allow for correct playback of files without a loop. For samples that are looped, of course these are important to retain from the original sample file, since they do affect the sound of the loop.

Cheers,
John B.
inaheartbeat
Posts: 39
Joined: Sat May 19, 2012 12:39 pm
Contact:

Re: Sample pools in OS 2.x

Post by inaheartbeat »

Thanks for the helpful response. A few comments....I don't understand why the engineer that coded the audio file handling couldn't just take the wav files and strip the metadata out in the code and then play it. It is certainly straightforward and there are numerous public domain code resources (audacity for example) where, even if you don't understand the spec, you could learn and just replicate this. The .wav files are pretty ubiquitous and to try to find something to convert them to a raw format just to be used on the Solaris seems needlessly inconvenient. My take anyway, of course.

Glad to hear that a future release will address the naming and directory issues. That is very encouraging. You didn't mention if that future release was planned to have actual support for sample pools that map multiple audio files onto a single oscillator. Without that, the whole use of samples is severely constrained.

Thanks for the loop point clarification. Any reason not to just support the no loop metadata so that there is no ambiguity in the file handling? Right now, it seems almost like the system has to guess depending on the distance from loopstart to loopend sample indices.
inaheartbeat
Posts: 39
Joined: Sat May 19, 2012 12:39 pm
Contact:

Re: Sample pools in OS 2.x

Post by inaheartbeat »

Oh, and last thing is to be able to handle stereo sample files. Kluging up a solution with panning multiple oscillators is a bit odd and inconvenient not to mention, as you have, the phasing issues that might arise.
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Sample pools in OS 2.x

Post by John Bowen »

inaheartbeat wrote: Tue Oct 04, 2022 10:49 am Oh, and last thing is to be able to handle stereo sample files. Kluging up a solution with panning multiple oscillators is a bit odd and inconvenient not to mention, as you have, the phasing issues that might arise.
I don’t see how it can be done without using 2 voices, since the Solaris structure requires that for panned audio.
John Bowen
Site Admin
Posts: 2002
Joined: Sat Apr 07, 2007 3:00 am
Contact:

Re: Sample pools in OS 2.x

Post by John Bowen »

inaheartbeat wrote: Tue Oct 04, 2022 10:47 am Thanks for the helpful response. A few comments....I don't understand why the engineer that coded the audio file handling couldn't just take the wav files and strip the metadata out in the code and then play it. It is certainly straightforward and there are numerous public domain code resources (audacity for example) where, even if you don't understand the spec, you could learn and just replicate this. The .wav files are pretty ubiquitous and to try to find something to convert them to a raw format just to be used on the Solaris seems needlessly inconvenient. My take anyway, of course.
Well, this was coded in 2007-2008, but I do not know why either.
Post Reply

Who is online

Users browsing this forum: Majestic-12 [Bot] and 23 guests