Prototype to load many .wav files and needing one knob.

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

8D
It's only a very basic build

Yes, it will open in FLFS, make sure you execute FL x86/32 bit

Hope helps!

Post

Took a quick look inside flowstone, then made a quicker trip to the manual :hihi:

The only thing I noticed which might help me, and I could sort of understand, was in the data types and signal flow chapter.

Since I'm not doing any synthesis and working with samples, I imagine I would need to work with trigger or event data.
triggered data only flows in response to some event
In this case, I would need the knob to act as an event which selects and triggers which sample is unmuted. Each knob position would need two boolean trigger types, one as true to allow a sample through the output and two as false to mute all the other samples.

If I'm working with ten samples and a knob has an increment of 128 values, I would assign the first sample as true to values 0-12.8 and each other sample as false, the second to 12.8-25.6, etc.

I think that somewhere along the line this could work, but I have no idea how to assign samples to a knob then how to assign these triggers with this :help:
Untitled.jpg
You do not have the required permissions to view the files attached to this post.
High Quality Soundsets for Lush-101 | Hive | Electra 2 | Diversion | Halion | Largo | Rapid | Dune II | Thorn | and more.

TTU Youtube

Post

ghettosynth wrote:
Touch The Universe wrote:Thanks. It isn't novel but I do not know of anyway to test this idea and see if it achieves the desired results I want. If it does, I would like to use its function as part of a stand alone hybrid synth.

I know of and own many samplers but none of them I know uses a knob as a solo button which plays only the sample tied to its position and mutes the others. I need each sample to play at the same time value. For instance, if the samples were words saying, Hi, How are you? To make things simple, there are four samples each saying the same thing and playing at the same time. When I move the knob and it cycles through the samples, the phrase would flow naturally and not reset at Hi, every time. Very simple, but don't know any sampler to do this.
What do you imagine is triggering the samples? Are you wanting the knob to trigger as well as select a sample? What do you mean by the "same time value"?
I think I only answered part of this in my last reply. The idea is, I assign many samples to a key but they are all muted. I play the key and the knob would trigger which sample is unmuted. Each range on the knob will only allow one sample through to the output. So, in essence, there are two triggers. The trigger of hitting the key on a keyboard to play the samples, and the knob to act as a trigger to allow only one of the samples through to the output. I hope this is clear enough :tu:
High Quality Soundsets for Lush-101 | Hive | Electra 2 | Diversion | Halion | Largo | Rapid | Dune II | Thorn | and more.

TTU Youtube

Post

Touch The Universe wrote:
ghettosynth wrote:
Touch The Universe wrote:Thanks. It isn't novel but I do not know of anyway to test this idea and see if it achieves the desired results I want. If it does, I would like to use its function as part of a stand alone hybrid synth.

I know of and own many samplers but none of them I know uses a knob as a solo button which plays only the sample tied to its position and mutes the others. I need each sample to play at the same time value. For instance, if the samples were words saying, Hi, How are you? To make things simple, there are four samples each saying the same thing and playing at the same time. When I move the knob and it cycles through the samples, the phrase would flow naturally and not reset at Hi, every time. Very simple, but don't know any sampler to do this.
What do you imagine is triggering the samples? Are you wanting the knob to trigger as well as select a sample? What do you mean by the "same time value"?
I think I only answered part of this in my last reply. The idea is, I assign many samples to a key but they are all muted. I play the key and the knob would trigger which sample is unmuted. Each range on the knob will only allow one sample through to the output. So, in essence, there are two triggers. The trigger of hitting the key on a keyboard to play the samples, and the knob to act as a trigger to allow only one of the samples through to the output. I hope this is clear enough :tu:
Yes, to be clear though, the knob isn't really a "trigger" as you describe it. It is simply a selector, or a modulation value. It will always have a value and some sample will always be selected. It is the action of the key "trigger" that will cause the sample to play.

You're describing a simple wavetable synth of sorts with the knob the modulation that sweeps the wavetable.

Post

Heya TTU,
I think I've done what you wanted with the FS file->
https://www.sendspace.com/pro/dl/kindjn
It quite simply has a number for the sample index now,
so that comes from the knob.
Then also like you say, we need a trigger--
because the counter that renders the samples has to be reset to zero
when the knob iterates,
else it keeps climbing beyond the sample length.

So, here you are- hope helps

Post

Thank you so much nix808! I've spent the last 30 minutes testing and try to dissect the fsm file. I have a feeling this will take a few days for me to wrap my head around. I'll just go at it a little at a time. Sending you a pm now ;)
High Quality Soundsets for Lush-101 | Hive | Electra 2 | Diversion | Halion | Largo | Rapid | Dune II | Thorn | and more.

TTU Youtube

Post

Touch The Universe wrote: Hi. I read this a few times and can't really wrap my head around it, though you did bring up a good point about the cross fading between the samples. This would need to be as smooth as possible. Can you read the post I made that has the video in it? Hopefully, it makes things a bit clearer what I'm trying to achieve. Would the method you wrote above still work?
Yes of course. The first time I've seen a cross-fading selector is as an electronic circuit from the 70s.

They're common across a wide range of applications including audio and video fading and mixing equipment. How smooth the effect is depends upon the windowing you apply. As I said there are an infinite number of options at play. The window type and width, scaling factors of the inputs depending upon correlation, the center positions of each window and so on.

The implementation in software is extremely simple.

You have a linear fader position: X.

Each window is a function gain[N] = f[N](X)

Rather than a function you can use a table: gain[N] = F[N][X] optionally with interpolation, assuming the functions are difficult to compute.

Then you simply apply each gain to a mixer like so:

output = input1 * gain1 + input2 * gain2 + input3 * gain3 + ...
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Kool,
IMO- with the issues you are having- send me your samples and I will get them to load.
I sent a file which is more correct, but still prolly a little broke.

If you'd like to use Flowstone, I can write help notices to annotate what's what.
This would be no problem in the next couple of days.
Basically it just reads an array of .wavs. These can loop, but in the quick schematic they don't.

So a .wav is an array(one after the other) of samples. To render them we need to point to them with a counter. The player(mem array) is an array of wavs, these we can also point to, that's what the knob does.

If you are interested in plug design, particularly sampling, this schematic is not out of control for complexity, so is a good point to start 8D

-- I just read AD's post, you have no problem with the starts of the .wavs atm, but on switch, they will click the ends. We could possibly use envelopes, but hmm seems hard to stop them clicking in FS

Post

A simple example of the cross-fading selector is a DJ mixer:
https://en.wikipedia.org/wiki/DJ_mixer

It generally has two inputs and one axis but the idea is extensible to any number of inputs or axes.

For example the Roland D-50 used a 2d joystick to cross-fade four inputs.

A wavetable synthesizer usually consists of an N input mixer which crossfades across all the entries in the table or multiple tables for multiple axes.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

I don't really need to cross fade,
just chopping the tail happens I think. I'll multiply the tail with a saw I guess?

Post

Hi nix, I just sent you a .rar files of all the waves (96 in total). :tu:

Each wave is roughly 2 seconds long. I would like to sweep slowly if possible, would it be too much time to loop the waves? If it takes more than a minute or two to set up, it's okay. I should be able to gauge the effectiveness within two seconds :D

I'm going back to read the latest posts again :)
Last edited by Touch The Universe on Fri May 26, 2017 5:05 am, edited 1 time in total.
High Quality Soundsets for Lush-101 | Hive | Electra 2 | Diversion | Halion | Largo | Rapid | Dune II | Thorn | and more.

TTU Youtube

Post

aciddose wrote:
Touch The Universe wrote: Hi. I read this a few times and can't really wrap my head around it, though you did bring up a good point about the cross fading between the samples. This would need to be as smooth as possible. Can you read the post I made that has the video in it? Hopefully, it makes things a bit clearer what I'm trying to achieve. Would the method you wrote above still work?
Yes of course. The first time I've seen a cross-fading selector is as an electronic circuit from the 70s.

They're common across a wide range of applications including audio and video fading and mixing equipment. How smooth the effect is depends upon the windowing you apply. As I said there are an infinite number of options at play. The window type and width, scaling factors of the inputs depending upon correlation, the center positions of each window and so on.

The implementation in software is extremely simple.

You have a linear fader position: X.

Each window is a function gain[N] = f[N](X)

Rather than a function you can use a table: gain[N] = F[N][X] optionally with interpolation, assuming the functions are difficult to compute.

Then you simply apply each gain to a mixer like so:

output = input1 * gain1 + input2 * gain2 + input3 * gain3 + ...
Excellent :D :o It definitely sounds like I have more than enough to work with if I decide to figure this out myself. I will try to dissect each thing you said here and look up each term, though it will probably take me quite awhile. I have no intention of actually designing and coding a synth from scratch. I'll leave that to the genius coders and let them do what they do best while I focus on what I enjoy doing the most (sound design and making music). But for now, I just want to test this one function to see if it does what I want it do to, before I decide to invest more time, effort, and money into it. If it sounds smooth as I turn the knob, I will find someone and pay them to apply the concept in full force for a synth.
High Quality Soundsets for Lush-101 | Hive | Electra 2 | Diversion | Halion | Largo | Rapid | Dune II | Thorn | and more.

TTU Youtube

Post

nix808 wrote:Kool,
IMO- with the issues you are having- send me your samples and I will get them to load.
I sent a file which is more correct, but still prolly a little broke.

If you'd like to use Flowstone, I can write help notices to annotate what's what.
This would be no problem in the next couple of days.
Basically it just reads an array of .wavs. These can loop, but in the quick schematic they don't.

So a .wav is an array(one after the other) of samples. To render them we need to point to them with a counter. The player(mem array) is an array of wavs, these we can also point to, that's what the knob does.

If you are interested in plug design, particularly sampling, this schematic is not out of control for complexity, so is a good point to start 8D

-- I just read AD's post, you have no problem with the starts of the .wavs atm, but on switch, they will click the ends. We could possibly use envelopes, but hmm seems hard to stop them clicking in FS
I was wondering about that too, when the samples are shifting with the knob, there are bound to atleast be zero point crossing clicks that would have to be smoothed at. For now though, hopefully it isn't too big of an issue and I'll be able to gauge the effectiveness of the knob, despite this :tu:
High Quality Soundsets for Lush-101 | Hive | Electra 2 | Diversion | Halion | Largo | Rapid | Dune II | Thorn | and more.

TTU Youtube

Post

aciddose wrote:A simple example of the cross-fading selector is a DJ mixer:
https://en.wikipedia.org/wiki/DJ_mixer

It generally has two inputs and one axis but the idea is extensible to any number of inputs or axes.

For example the Roland D-50 used a 2d joystick to cross-fade four inputs.

A wavetable synthesizer usually consists of an N input mixer which crossfades across all the entries in the table or multiple tables for multiple axes.
Yes, this, it would need a considerable number more of inputes/axes, at most 128 :) I can also imagine a dj slider not with 2 axis between 2 tracks, but between 128 and can imagine this method working quite well :tu:
High Quality Soundsets for Lush-101 | Hive | Electra 2 | Diversion | Halion | Largo | Rapid | Dune II | Thorn | and more.

TTU Youtube

Post

This will only work if you have all the clips playing continuously. You don't need to re-sample or process the loops when they aren't sending output (zero window value) but you do need to update the phase/index of the sample playback position.

Don't try to "start" or "stop" playing when entering a cross-fade window or you'll obviously get clicks. You can only do so if the contribution to the output is zero.

Image

Example source-code: https://pastebin.com/B1dhzUtL

I got bored so I didn't even bother to allow the number of elements to be adjusted although that is simple enough. Time invested: 5 minutes.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post Reply

Return to “DSP and Plugin Development”