If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
MultiSampler
MultiSampler
Hello guys!
I've been busy lately, with very little free time (school and band responsibilities as usual)... Finally I've found some time to do a little bit of flowstoning. Here's what I came up with...
Easy to use multi-purpose-multi-sampler. A simple explanation on how it works.
The sampler consists of Groups, each having multiple parameters and containing samples. On the left side of the GUI you can edit the parameters for each Group. Velocity and Key range in which this group will be active, central key (because samples follow pitch) and name of the group. You can scroll the groups by clicking the up and down arrows above the group name, or via drop-down menu (activated by the triangle in the middle). You can add new group or delete current group and reorder the groups in the list ("move /\" and "move \/" buttons).
On the right side is the sample list for current group. You add more samples via "+ new Sample" which will pop up loading dialogue. The list displays sample file-name. You can delete samples by clicking the "x" and rearrange them via "/\" and "\/" buttons.
Unlike with groups, the order of samples matter. When key is pressed, the sample is picked randomly form the list. The probability scales with velocity (rescaled by the velocity range of the group). If velocity is closer to the lower bound of the group, samples at the bottom of the list are more likely and vice versa. This is very useful for drum-machines to avoid "machine-gun effect" (repeating of the same sample). You can scroll the sample-list too by dragging the bar on the left.
Future features:
-different playback modes for samples (including loop-points etc.)
-multi-channel mode - ability to load multiple wave-files into one sample, each being played to separate output (useful for splitting orchestra sections, or feeding different "mics" of the same drum into separate outputs).
-midi effects like strum simulator, auto-chords, tremolo etc.
-pitch bend and modulation
-ability to save presets (currently the preset only saves with project)
Special thanks to martinvicanek, who helped me a lot with the velocity-scaling thing...
Please keep in mind this is just an early prototype, that I smacked together in day or two. Anyone willing/brave enough to give this baby a GUI that is less puke-inducing is welcome...
//////////////
//Latest Version//
//////////////
I've been busy lately, with very little free time (school and band responsibilities as usual)... Finally I've found some time to do a little bit of flowstoning. Here's what I came up with...
Easy to use multi-purpose-multi-sampler. A simple explanation on how it works.
The sampler consists of Groups, each having multiple parameters and containing samples. On the left side of the GUI you can edit the parameters for each Group. Velocity and Key range in which this group will be active, central key (because samples follow pitch) and name of the group. You can scroll the groups by clicking the up and down arrows above the group name, or via drop-down menu (activated by the triangle in the middle). You can add new group or delete current group and reorder the groups in the list ("move /\" and "move \/" buttons).
On the right side is the sample list for current group. You add more samples via "+ new Sample" which will pop up loading dialogue. The list displays sample file-name. You can delete samples by clicking the "x" and rearrange them via "/\" and "\/" buttons.
Unlike with groups, the order of samples matter. When key is pressed, the sample is picked randomly form the list. The probability scales with velocity (rescaled by the velocity range of the group). If velocity is closer to the lower bound of the group, samples at the bottom of the list are more likely and vice versa. This is very useful for drum-machines to avoid "machine-gun effect" (repeating of the same sample). You can scroll the sample-list too by dragging the bar on the left.
Future features:
-different playback modes for samples (including loop-points etc.)
-multi-channel mode - ability to load multiple wave-files into one sample, each being played to separate output (useful for splitting orchestra sections, or feeding different "mics" of the same drum into separate outputs).
-midi effects like strum simulator, auto-chords, tremolo etc.
-pitch bend and modulation
-ability to save presets (currently the preset only saves with project)
Special thanks to martinvicanek, who helped me a lot with the velocity-scaling thing...
Please keep in mind this is just an early prototype, that I smacked together in day or two. Anyone willing/brave enough to give this baby a GUI that is less puke-inducing is welcome...
//////////////
//Latest Version//
//////////////
- Attachments
-
- gsampv0.0.2.fsm
- (22.52 KiB) Downloaded 1486 times
Last edited by KG_is_back on Tue Aug 23, 2016 1:29 am, edited 3 times in total.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: MultiSampler
must need a later FS version than I run [3.04], as it will not even load
- RJHollins
- Posts: 1571
- Joined: Thu Mar 08, 2012 7:58 pm
Re: MultiSampler
This is so good!
Flowstone needs a good sampler as a demo and showcase of what can be achieved.
It works in 3.08.1
I loaded 3 short attack samples of different instruments which I used in my Quilcom Q-50 "ROM" and used these to test. It was good fun changing the selected sound using velocity and I can immediately see this being useful for creating Gentle Giant type loops where they used to do this live; each musician playing a note in a sequence on a different instrument.
I did find a bug: After playing 30 different single notes (no chords) the module became silent and I had to restart the audio by clicking on a mono input on the ASIO out prim (like clear audio in effect). This was completely repeatable so I hope you can reproduce this and fix it. It "feels" like a buffer or array is being filled and not cleared but I haven't explored the schematic yet.
If you want the sample set ROM (all public domain stuff) it was included in the Q-50 download.
Thanks for sharing this and I''m really looking forward to seeing it develop further.
Cheers
Spogg
Flowstone needs a good sampler as a demo and showcase of what can be achieved.
It works in 3.08.1
I loaded 3 short attack samples of different instruments which I used in my Quilcom Q-50 "ROM" and used these to test. It was good fun changing the selected sound using velocity and I can immediately see this being useful for creating Gentle Giant type loops where they used to do this live; each musician playing a note in a sequence on a different instrument.
I did find a bug: After playing 30 different single notes (no chords) the module became silent and I had to restart the audio by clicking on a mono input on the ASIO out prim (like clear audio in effect). This was completely repeatable so I hope you can reproduce this and fix it. It "feels" like a buffer or array is being filled and not cleared but I haven't explored the schematic yet.
If you want the sample set ROM (all public domain stuff) it was included in the Q-50 download.
Thanks for sharing this and I''m really looking forward to seeing it develop further.
Cheers
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: MultiSampler
Great project, KG!
I have tested with samples of notes C3 and C4. One thing I noticed is that the playback only sounds acceptable fo the A3 note. All other notes have a nasty, fuzzy quality, and when you look at the spectra of single notes, they are far from harmonic (except for the A3 note). Is there a specific setting that I am missing? Or do the samples have to meet certain requrements? What algo do you use for pitch transformation?
I have tested with samples of notes C3 and C4. One thing I noticed is that the playback only sounds acceptable fo the A3 note. All other notes have a nasty, fuzzy quality, and when you look at the spectra of single notes, they are far from harmonic (except for the A3 note). Is there a specific setting that I am missing? Or do the samples have to meet certain requrements? What algo do you use for pitch transformation?
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: MultiSampler
Spogg wrote:I did find a bug: After playing 30 different single notes (no chords) the module became silent and I had to restart the audio by clicking on a mono input on the ASIO out prim (like clear audio in effect). This was completely repeatable so I hope you can reproduce this and fix it. It "feels" like a buffer or array is being filled and not cleared but I haven't explored the schematic yet.
I can't reproduce the bug with my samples. I will have to try them out with the samples you used. The number 30 is quite close to 32notes, which is the polyphonic limit. My guess is, that somehow, the notes are getting stuck... I will probably rework most of the stream-code later - it's more of a proof of concept.
martinvicanek wrote:Great project, KG!
I have tested with samples of notes C3 and C4. One thing I noticed is that the playback only sounds acceptable fo the A3 note. All other notes have a nasty, fuzzy quality, and when you look at the spectra of single notes, they are far from harmonic (except for the A3 note). Is there a specific setting that I am missing? Or do the samples have to meet certain requrements? What algo do you use for pitch transformation?
Just plain simple crude re-sampling. The schematic calculates step (essentially a playback speed-multiplier) from the pitch difference between pressed note, central note and compensates for sample rate. Then the clock contains a counter. The integer part is send to wave-table-read prims and fractional part is used to calculate interpolation. I've used 1-pole-allpass interpolation, which probably wasn't the best idea.
In the future I'd like to use something much more powerful. I already have some ideas. The sampling clock, will have to be capable of jumping from one point in sample to other, because I would like to add sections and looping for samples.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: MultiSampler
OK guys, new version...
I've added stage-manager. When you click on sample in the group, the sample gets displayed.
You can edit that sample's stages (green=attack, yellow=sustain, red=release). You can change start point using the top ellipse, end point using the middle ellipse and fadeout/crossfade using the bottom ellipse. Each of them is snapped to zero-crossings.
Unfortunately, in this version, only one-shot mode is available, so only the attack stage actually matters. I will add support for other playback modes in the future, as well as type-in field for stage editing.
I've added stage-manager. When you click on sample in the group, the sample gets displayed.
You can edit that sample's stages (green=attack, yellow=sustain, red=release). You can change start point using the top ellipse, end point using the middle ellipse and fadeout/crossfade using the bottom ellipse. Each of them is snapped to zero-crossings.
Unfortunately, in this version, only one-shot mode is available, so only the attack stage actually matters. I will add support for other playback modes in the future, as well as type-in field for stage editing.
- Attachments
-
- gsampv0.0.3.fsm
- (28.44 KiB) Downloaded 1324 times
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: MultiSampler
New update...
I've decided to simplify some of the stuff in the sampler and figure out basics, before committing to implement full functionality. Here is a list of changes:
Sampler now uses only a simple linear interpolation. Also only 2 sample playback modes are working:
"none" - sample plays until the end or key-release, whichever comes first (the fadeout release is added in both cases). Good for guitar/piano styled samples.
"one-shot" - sample plays until end (+fadeout) ignoring key-release. Good for drum samples.
I've changed the randomization algorithm. Now, each group has a randomness knob (next to key/velocity ranges). When at zero, samples scale perfectly with velocity. When at 100%, all samples are completely randomized. When at 50% the randomness is velocity dependent (lowest velocity ~ sample is picked from bottom 50%percent, highest velocity ~ sample is picked from top 50%, middle velocity ~ sample is picked from middle 50%). Note, that velocity is internally rescaled to match group's velocity range. i.e when velocity range is [100,127], velocity of 100 will pick from bottom 50% of samples (for randomness knob being at 50%).
Added tabs to the GUI. Tabs can be switched using the top left corner selector. One tab contains all sample-related stuff. Second tab contains some global stuff (only master volume and save/load preset button at the moment).
Added ability to save and load presets. Uses a specialized preset file (.gsp). If the wave-files are stored in the same folder (or sub-folders their-of) as the preset file, then their paths are stored as relative. Thanks to this, you should be able to share presets along with sample-banks, as long as you include them in the same folder.
I have one favour to ask. It would be really nice, if someone made a module, that can copy selected files (provided as an array of paths) to a specific folder. This would make creation of shareable banks very easy.
Please report any bugs and suggestions are warmly welcome! Also, if anyone has an idea about what colour-theme / gui-style to implement I'm all ears... (no, not orange)
I've decided to simplify some of the stuff in the sampler and figure out basics, before committing to implement full functionality. Here is a list of changes:
Sampler now uses only a simple linear interpolation. Also only 2 sample playback modes are working:
"none" - sample plays until the end or key-release, whichever comes first (the fadeout release is added in both cases). Good for guitar/piano styled samples.
"one-shot" - sample plays until end (+fadeout) ignoring key-release. Good for drum samples.
I've changed the randomization algorithm. Now, each group has a randomness knob (next to key/velocity ranges). When at zero, samples scale perfectly with velocity. When at 100%, all samples are completely randomized. When at 50% the randomness is velocity dependent (lowest velocity ~ sample is picked from bottom 50%percent, highest velocity ~ sample is picked from top 50%, middle velocity ~ sample is picked from middle 50%). Note, that velocity is internally rescaled to match group's velocity range. i.e when velocity range is [100,127], velocity of 100 will pick from bottom 50% of samples (for randomness knob being at 50%).
Added tabs to the GUI. Tabs can be switched using the top left corner selector. One tab contains all sample-related stuff. Second tab contains some global stuff (only master volume and save/load preset button at the moment).
Added ability to save and load presets. Uses a specialized preset file (.gsp). If the wave-files are stored in the same folder (or sub-folders their-of) as the preset file, then their paths are stored as relative. Thanks to this, you should be able to share presets along with sample-banks, as long as you include them in the same folder.
I have one favour to ask. It would be really nice, if someone made a module, that can copy selected files (provided as an array of paths) to a specific folder. This would make creation of shareable banks very easy.
Please report any bugs and suggestions are warmly welcome! Also, if anyone has an idea about what colour-theme / gui-style to implement I'm all ears... (no, not orange)
- Attachments
-
- gsampv0.0.8b.fsm
- (153.42 KiB) Downloaded 1252 times
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: MultiSampler
KG_is_back wrote:I have one favour to ask. It would be really nice, if someone made a module, that can copy selected files (provided as an array of paths) to a specific folder. This would make creation of shareable banks very easy.
Here you are. Just make sure the provided paths are valid before executing, since I omitted any error catching.
- Attachments
-
- copy_files_to_one_dir.fsm
- (641 Bytes) Downloaded 1262 times
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: MultiSampler
Hi KG
I’ve been rather busy recently but I finally got to spend some time with this and I must say it’s coming on really nicely. The 32 note limit thing seems to be resolved too!
Here’s a few points…
-On only 2 occasions I deleted WAVs but the sounds were still accessible. I tried to find a process to reproduce this but with no success so maybe it’s a timing issue…?
-The none/one-shot menu selector display doesn’t always reflect the true status I get when playing.
-The none/one-shot status seems not to be preserved when selecting different WAVs.
- A second left-click on a WAV alters the editor waveform display and changes the none/one-shot menu selector. Is this none/one-shot setting intended to be a global setting for all samples and playback or on a per-sample basis?
I’m sure you have a lot in mind for the future, like pitch bend and so on, but one thing I would really like included is the possibility to audition a sample WAV by say right-clicking on it. It could play at the “center key” as set on the panel.
To help with further testing it would be very useful if you could provide, or link to, a couple of suitable sample sets for one shot and one for normal playing, with multiple samples for the random round-robin process.
Thank you so much for involving us in the testing phase and good luck with further development.
Cheers
Spogg
I’ve been rather busy recently but I finally got to spend some time with this and I must say it’s coming on really nicely. The 32 note limit thing seems to be resolved too!
Here’s a few points…
-On only 2 occasions I deleted WAVs but the sounds were still accessible. I tried to find a process to reproduce this but with no success so maybe it’s a timing issue…?
-The none/one-shot menu selector display doesn’t always reflect the true status I get when playing.
-The none/one-shot status seems not to be preserved when selecting different WAVs.
- A second left-click on a WAV alters the editor waveform display and changes the none/one-shot menu selector. Is this none/one-shot setting intended to be a global setting for all samples and playback or on a per-sample basis?
I’m sure you have a lot in mind for the future, like pitch bend and so on, but one thing I would really like included is the possibility to audition a sample WAV by say right-clicking on it. It could play at the “center key” as set on the panel.
To help with further testing it would be very useful if you could provide, or link to, a couple of suitable sample sets for one shot and one for normal playing, with multiple samples for the random round-robin process.
Thank you so much for involving us in the testing phase and good luck with further development.
Cheers
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: MultiSampler
Spogg wrote: Is this none/one-shot setting intended to be a global setting for all samples and playback or on a per-sample basis?
Yes, the playback mode is a per-sample parameter. It makes sense, because you might need different behaviour for different samples in the sampler. For example, let's say you're making an orchestral sampler. You need the sampler to normally play looped samples of string/brass. When bass keys are hit harder, you also might want timpani (which need one-shot playback) to be play along with the usual sounds. Or you might want pizzicato for soft velocities.
Spogg wrote:The none/one-shot menu selector display doesn’t always reflect the true status I get when playing
yes, sometimes the GUI is bugging.
Spogg wrote:-On only 2 occasions I deleted WAVs but the sounds were still accessible. I tried to find a process to reproduce this but with no success so maybe it’s a timing issue…?
It is possible that the lookup tables did not update properly. Pretty much all actions (except selecting group or sample) should update the lookup tables. The sample-management is a bit weird. When the same sample is loaded twice, only one copy is actually loaded in the wavetable (and it is referenced by both instances of sample). It gets removed from the wavetable only when all occurrences are deleted.
Spogg wrote: but one thing I would really like included is the possibility to audition a sample WAV by say right-clicking on it. It could play at the “center key” as set on the panel.
Yes, this is a quite important feature I totally forgot about. I will add it in next update. I was thinking of something like "sample-locked" mode, which would lock the sampler, to play only selected sample when notes come in. Or maybe a simple "preview" button, which would play the sample. Maybe also a hot-key for this? who knows...
Spogg wrote:To help with further testing it would be very useful if you could provide, or link to, a couple of suitable sample sets for one shot and one for normal playing, with multiple samples for the random round-robin process.
I'm working on a guitar sampler preset as a showcase. It should be finished in a couple of days.
I was reluctant to make it because I was waiting for some feedback on features that should be added, because that would change the structure of preset-file and thus render older versions non-compatible.
I'm also planning to start a work on the midi effects. Things like strum simulator, auto-chords and various arpegiators... As for audio effects, I would like to keep it lightweight. Are there any specific ones that should be included? Perhaps a built in reverb?
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Who is online
Users browsing this forum: No registered users and 25 guests