Support

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

Post any examples or modules that you want to share here

Re: MultiSampler

Postby KG_is_back » Fri Jul 29, 2016 9:51 pm

Spogg wrote:
As for why you get previous attack setting, that might be, because the lookup tables for the audio-part of the sampler update only after you release the mouse key - the line following your mouse while dragging is purely visual. This is so, because the lookup tables are rather large and must be recalculated for all samples of all groups at the same time. Having them updating, while dragging could cause freezing issues with big presets.


Hi KG
I rechecked this and it's not mouse-up related. I've made the preset attached which just addresses the G4 (=G3) wav to demo the issue. If you play the G3 note (G below middle C, note no. 55) you will hear my new edited late start position for each note. If you then play G2, 1 octave down, you still hear the whole note.
I'm really puzzled by this but I don't know the schematic's functioning so well, so I can't tell you what's going on. It's just not what I would expect to happen.

Cheers

Spogg


Each group has a key-range associated with it. Specifically, the G3 group plays for range G3-G#3. When you press G2 this group isn't played. In fact for G2 the group D3 is played, because that one has range C0-D3 (midi notes 0-50). And that one has completely different samples.

Spogg wrote:It would be nice to have a pitched/un-pitched option for any group. By un-pitched I mean just playing at the default native speed of the samples and not influenced by the key number.

I totally forgot about that one :-D I will add it in next update....
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: MultiSampler

Postby Spogg » Sat Jul 30, 2016 11:00 am

Each group has a key-range associated with it. Specifically, the G3 group plays for range G3-G#3. When you press G2 this group isn't played. In fact for G2 the group D3 is played, because that one has range C0-D3 (midi notes 0-50). And that one has completely different samples.


Oops :oops:
That's what happens when you don't understand something so you make assumptions!

Cheers

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: MultiSampler

Postby KG_is_back » Tue Aug 23, 2016 1:28 am

OK guys... I've been a little burned out lately. Finally I've managed to force myself into working on something again.

I've added the pitchtrack feature. Now you can control how much does each group follow the pitch.

Apart from that, I only changed the internal group/sample layout. It has no effect on functionality yet, but I just wanted to make it easier for me to, in the future, add new parameters and multi-channel sampler mode. Sample-banks are backward compatible with 0.0.9b (old banks can be open in 10b but not vice versa).

I would appreciate some additional feature requests. I've decided to make significant changes in the GUI layout in the next update. I will split the group window and loop-point-editing window into separate tabs. I will also add multichannel support. That means you can load multiple wave files into one sample and each will go to its own respective output. This will be very useful if you have instrument recorded with multiple microphones (for example drums - each mic will have its own output).
Attachments
gsampv0.0.10b.fsm
(266.18 KiB) Downloaded 1111 times
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: MultiSampler

Postby martinvicanek » Tue Aug 23, 2016 9:22 pm

My feature request would be an option for formant-preserving pitch processing. Else if you play voice samples at altered pitch they sound like Darth Vader or Alvin's chipmonks.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: MultiSampler

Postby KG_is_back » Wed Aug 24, 2016 2:52 am

martinvicanek wrote:My feature request would be an option for formant-preserving pitch processing. Else if you play voice samples at altered pitch they sound like Darth Vader or Alvin's chipmonks.


With current algorithm, when sample is played one octave higher, it is actually played on double speed. I've made a quick proof-of-concept wave reader, that preserves time-position within the sample.

What it does, it contains two clocks. One increments by one (as it would if sample was played at original speed) and the second increments in steps to match the pitch (as it would when it played at target speed). The algorithm occasionally adds or subtracts one period-length from the second clock so that it never outruns the first clock, nor lags more than one period behind. Result is, that when sample is played on higher pitch, some periods in the sample end up played more than once and when played at lower pitch, some periods are skipped.
The algorithm works only if you know the original pitch of the sound (and therefore its period). It might produce artefacts if the pitch fluctuates or isn't perfectly tuned and will definitely produce artefacts for non-periodic sounds and incorrectly pitch-matched sounds.

The formant correction could be done via auto-vocoding, resp. vocoding the pitch-shifted version with original version. However, I'd like to keep the sampler lightweight. Any help with this would be appreciated.
Attachments
time-preserving pitch shift.fsm
(773.52 KiB) Downloaded 1120 times
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: MultiSampler

Postby martinvicanek » Wed Aug 24, 2016 4:54 am

Wow, KG, that was quick man! :ugeek:
KG_is_back wrote:The algorithm occasionally adds or subtracts one period-length from the second clock so that it never outruns the first clock, nor lags more than one period behind. Result is, that when sample is played on higher pitch, some periods in the sample end up played more than once and when played at lower pitch, some periods are skipped.

Yes, that's what I had in mind. I use a similar algo in MIDI Choir.
KG_is_back wrote:The algorithm works only if you know the original pitch of the sound (and therefore its period). It might produce artefacts if the pitch fluctuates or isn't perfectly tuned and will definitely produce artefacts for non-periodic sounds and incorrectly pitch-matched sounds.

You can store a pitch profile along with the sample or generate one on load. I have a very lightweight and quite accurate pitch tracker that I can share.
KG_is_back wrote:The formant correction could be done via auto-vocoding, resp. vocoding the pitch-shifted version with original version. However, I'd like to keep the sampler lightweight. Any help with this would be appreciated.

With the above method I don't think any more formant processing is needed. You can go +/- 1 octave and it still sounds acceptable.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: MultiSampler

Postby KG_is_back » Wed Aug 24, 2016 5:42 am

martinvicanek wrote:Wow, KG, that was quick man!

I've thought this trough a few months ago, the actual implementation for full sampler will be a bit more complicated than that to avoid rounding errors and such. It will be even harder when I'll add loop-point support.

martinvicanek wrote:You can store a pitch profile along with the sample or generate one on load. I have a very lightweight and quite accurate pitch tracker that I can share.


I was thinking about that too. The problem is, the idea behind Gsamp is that it should be capable of using different sampling and looping methods in one setup. It stores actual wave files separately from settings about their usage. You can for example have multiple "samples" loaded that share a single wave file. The samples than reference different parts of the wave. That effectively means the same wave may be used as a loop in one part and as a one-shot drum in other part. It might not be desirable to analyse file during loading unnecessarily or store irrelevant data.
I'd rather compromise features than efficiency or simplicity of use.

The big problem with flowstone is, that it isn't easy to setup file-preprocessing. Pretty much the only way to run through a whole wave file is to use analyser prim and it is prone to freezing. Maybe sending triggers from another thread might help? :-/
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: MultiSampler

Postby tulamide » Wed Aug 24, 2016 11:13 am

If you're not looking for harddisk streaming, then Ruby should be able to help you with preprocessing. You could load a file (the wav's chunk format is straight forward and should be no issue, it will just need time to write the code) to a string, convert it to 32-bit-float and send the appropriate bytes via frame-sync to blue.

None of this being complicated, but for sure will take some time to write the code...
"There lies the dog buried" (German saying translated literally)
tulamide
 
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: MultiSampler

Postby Spogg » Wed Aug 24, 2016 12:35 pm

Hi KG

The pitchtrack feature is even better than I'd hoped! I expected a binary option off/on but I got a tuner :D

I did hit an issue which I worked out: I dragged the old folder (with your eguitar stuff in it) to a different place then tried your new version but it wouldn't load the preset you made before. Neither would the previous version 9 which had been ok.

It seems like the preset file stores an absolute path rather than a relative one. When I put it back to my /Download folder the old and the new one worked fine, in the same old folder location.

Regarding features I would like to see (apart from what others have mentioned):
Pitch bend with selectable range +/- 1 to 12 semitones.
A modulation wheel option controlling a monophonic LFO for vibrato and tremolo. Both very useful for adding live expression.
A mono (single note) option which will then provide for a portamento (glide) amount. Nice for some instruments and voice/choir.
As we discussed before I think the final version should have a reverb and delay section, if only for testing and demo.

This is coming along great and I hope you can find time and energy to continue the progress.

Cheers

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: MultiSampler

Postby martinvicanek » Thu Aug 25, 2016 3:28 am

KG, there is something else you can do to mitigate glitches when the recorded pitch is a little off: read two copies of the sample delayed by one period. Crossfade between them in such a way that each time you skip or repeat a period the respective copy is silent. Always skip two periods (leapfrog) so the two copies maintain lag of one period.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

PreviousNext

Return to User Examples

Who is online

Users browsing this forum: No registered users and 26 guests