Voxglitch Community Feedback

Yes, I completely agree. I think this must be a bug. I’ll get this fixed ASAP.

It might! I might consider it a work-around, but I’m hesitant to call it a “solution”. Ideally the module would contain special code to avoid those clicks and pops, but I’ve been hesitant to dive into that due to the complexity involved. When I’m in a particularly smart mood, I’ll give it a shot. Ha ha ha. Would you happen to have a good loop that illustrates the clicking sound that I can use for testing?

Sure! I can do this! I’ll get this done tonight. Please be patient as it takes a while for my updates to pass through VCV Rack’s build process. It should be available on version 2.17.0. (2.16.1 is currently being processed and will be released before it).

Absolutely. I have that feature in Digital Sequencer. Do you want the sequence and all parameter locks to shift with it? I would assume so, but thought I should ask.

Cheers,
Bret

Sorry! My last post turned out to be incorrect. I need to look more deeply into FireLFO’s request.

This is fixed! :+1: Really nice catch!! It should be rolling out in the next major release.

=== UPDATE ===

I found some other weird edge cases and I need to make some thoughtful updates to my code to get them all correct. Stay tuned. I found that detaching and reattaching the expander module could resurface this issue, as can starting the module from scratch. I’ll keep on this.

2 Likes

This is done! :slight_smile: I decided to use the shift key.

Ok, this time for real it’s fixed. Thanks again for catching that bug. The new update should be a LOT more stable when it comes to correctly responding to mute and solo buttons.

2 Likes

That’s also what I meant by shifting the start position you shift the whole sequence, but by keeping the 16 steps. Now if the start position is moved one step forward, the sequence loop becomes 15 steps.

And yes I do have an example, will send you asap.

Oh, I’m sorry, I had misunderstood you before. I’ll get this done tonight. :slight_smile:

Awesome. And I’m a very patient man haha

I hadn’t thought of that but yes, it does make sense.

Alright! I have this done! I have to admit that my code isn’t 100% perfect. If you vigorously shift left and right, you’ll see that the mouse position doesn’t align perfectly with the pattern that you are dragging. However, it really doesn’t matter functionally, and everything shifts properly. I’ll get the math right eventually.

What I ended up doing is repurposing the shift key for this feature. Previously, you could hold the shift key while clicking on a blue step button to set the track length. However, since I’ve introduced the ability to change the playback window by dragging the track-length drag handles, that old user-experience has become somewhat unnecessary.

Instead – You’re now able to:

  1. Hold the shift key
  2. Click a blue step button
  3. Drag left or right to shift all of the the steps to the left or right, including the parameter locks

This only affects the currently selected track. I could add a feature to shift ALL tracks left and right if you think it would be helpful. I would probably do that as a context menu option though. In your case, it sounds like this might be useful! Actually, I should probably do this. ** sigh ** OK, ok, I’ll get this done soon. Ha ha ha. It actually shouldn’t be too bad.

I’ll post a video of it soon. I have to make a new tutorial video soon and update all of the documentation anyhow. :slight_smile:

Cheers,
Bret

5 Likes

Wow, you went further than I thought. I was just thinking of a step-by-step shifter button. But it’s great like this. And I must admit shift the whole sequence make sense now, haha.

Anyway, thank you very much :slight_smile:

Fantastic. That’s exactly what I hoped for by shifting the pattern. Very nice!

This is completed and will be included in the next major release. This is achieved by holding SHIFT+CONTROL while dragging a blue step button. :large_blue_circle:

Next Up: By request, I’ll be creating a menu option for controlling if mute and solo buttons affect individual outputs or only the master output.

Are you still planning on adding sample end as a parameter?

That’s a good question. It’s a really challenging feature. The easiest way that I could approach it is at a fairly low-level. Instead of:

if(sample_playback_position > actual_sample_length) then stop or loop sample

It would become:

float virtual_sample_end =  parameter lock knob
if(sample_playback_position > virtual_sample_end ) then stop or loop sample

Is this the behavior that you’re looking for?

I’m a bit concerned that ending the samples early will result in pops and clicks. I might have to consider that as well. :thinking:

I think that’s what I’m looking for. Wouldn’t the sample offset param also already have a possibility of clicks?

That’s very true. I haven’t addressed that yet either, but you might be able to use the new Attack/Release envelope to circumvent them.

Thats true too. :slight_smile:

Bret - you could take a peep at the code in the Lomas sampler which has ‘start’ and ‘end’ as parameters.

While ‘release’ certainly helps if there is no ‘end’ control - having both should allow for much finer control, particularly on longer samples.

Having both should also help deal with any clicking issue, as having set an ‘end’, the release can essentially work as a fade out (as can ‘attack’ work as a fade in for ‘offset’).

@jeremy @steve

Just brainstorming here, but what if I expanded the Attack/Release envelope to be a full blown ADSR envelope? Sustain would range from a few milliseconds to 4 seconds. If sustain and decay are set to 0, then it would act as a Attack/Release envelope (which is how it is behaving right now).