sebastien-bouffier / Bidoo

VCV Rack plugins
GNU General Public License v3.0
125 stars 15 forks source link

Zou Mai and reset and first 5 or so beats #206

Closed Petervos2018 closed 2 years ago

Petervos2018 commented 2 years ago

Hi Seb, I still have problems with Zou Mai and restart/reset. the first few beats are not consistent at all, I think the reason for this is given by you :

Lets say zou sees 1000 ticks between each clock pulses. So with your configuration zou goes backward 2 steps each 1000 ticks i.e. a step is 500 ticks long. If you reset after 200 ticks consumption and you send a clock at the same time so the new base will be 200 ticks then zou goes backward 5 times faster before the next clock pulse occurs. If I ignore the clock signal when reset is fired the new base will be, with the same example, 1800 ticks long so zou would go slower before the next clock pulse. I do not know how to handle that kind of situation.

Originally posted by @sebastien-bouffier in https://github.com/sebastien-bouffier/Bidoo/issues/152#issuecomment-623398575

What if there was an option the just let Zou Mai use the triggers/gates from an outside clock, without it trying to get the BPM. I know you can not use the 1x2x3x4x speed any more because it does not know the speed/bpm. Or maybe do it the way Voxglitch does it with his Groove box :

https://github.com/clone45/voxglitch/blob/master/docs/groovebox.md

He uses a x32 clock input and it's as steady as a rock/clock ;)

Let me know what you think,

Greetings Peter.

Below is an example that manifests the Zou Mai problem, use the spacebar to stop/start the sequence.

Bidoo Clock - 16072022.zip

And here is one including the groove box it also ratchets ;)

Bidoo Clock and Groovebox- 16072022.zip

sebastien-bouffier commented 2 years ago

Hi not so kind Peter :) I dl your projects and it confirms my previous post. If you stop/start "in time" you may not notice the effect of bpm estimation but yes if I stop/start just after the beat then the bpm calculation can lead to an acceleration before the next clock tick. Since I never start/stop Zou during my "performances" I did not spend enough time on that issue. In terms of impact I think I can maintain speeds on tracks, I can even keep micro timing but the sole difference is that I will be constrained by the number of clock ticks in terms of resolution. If I consider that a step is 32 clock ticks max resolution will be 1/32th of a step (for step length, ratchets distance, micro timing, glide). That being said it might be enough for most users. Maybe we may add Omri Cohen to that discussion since he is a contributor on Zou as you are and make a kind of brainstorming :) I thought that another approach would be to remove the ext clock capability and let Zou manage its own clock and only allowing external resets. Now it is to you to let me know what you think.

Petervos2018 commented 2 years ago

Hi Seb,

Since I never do "performances" and like to work linear, most of the time, it is important to me that everything syncs and lines up when I start a "song". Omri/yourself are performers, you set it up, reset a few times to sync it, let it run and fade it in/out. Different needs. Letting Zou Mai be the main clock could be an "option" (If no clock is connected), it should have a clock out as well to drive other seq/dividers/etc, but don't remove the external clock in capability. Same with the 32x clock, it would be a nice addition to Zou Mai. (right-click choose clock x32) I'm a man of simple needs, if you can make Zou Mai maintain a constant steady beat after start/stop, and start at beat 1 it's all right by me. :)

That being said, it would be nice to know what Omri thinks of this "issue".

Greetings Peter.

sebastien-bouffier commented 2 years ago

Can you pull my last commit and build my module by yourself ? If yes I just pushed a new commit with a sibling of Zou named enCORE. enCORE needs 32 clock pulses per step to be pushed ahead and it seems to fit with your expectations. So you will need a fast clock to make it run. Let me know what you think about that kind of clocking approach since all trig params have been revamped. Best.

Petervos2018 commented 2 years ago

I'm not that computer savvy, to build modules myself, but if you could provide a windows build I'm willing to try that out.

Greetings Peter.

PS a Zou clone just for me...;)

sebastien-bouffier commented 2 years ago

Here is a win release https://github.com/sebastien-bouffier/Bidoo/releases

Petervos2018 commented 2 years ago

Wow this one is extremely steady, and it restarts from the beginning, every time ! First impression FANTASTIC, or PhaNtaStiqUe as you might say. Thank you so much,

Peter.

Petervos2018 commented 2 years ago

Hi Seb,

While testing EnCore I found a bug in Zou Mai, when the patch was running I tried to switch tracks with the small blue selection buttons :

afbeelding

and Rack closed.

[27.111 fatal adapters/standalone.cpp:48 fatalSignalHandler] Fatal signal 11. Stack trace: 31: 0x0 30: 0x0 29: _C_specific_handler 0x7ff93a977f60 28: _chkstk 0x7ff93c012180 27: RtlRaiseException 0x7ff93bfc1020 26: KiUserExceptionDispatcher 0x7ff93c010da0 25: ZN13ZOUMAIDisplay9drawLayerERKN4rack6widget6Widget8DrawArgsEi 0x603320 24: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ff8f02d1ab0 23: ZN4rack6widget6Widget9drawLayerERKNS1_8DrawArgsEi 0x7ff8f02d1d00 22: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ff8f02d1ab0 21: ZN4rack6widget6Widget9drawLayerERKNS1_8DrawArgsEi 0x7ff8f02d1d00 20: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ff8f02d1ab0 19: ZN4rack6widget6Widget9drawLayerERKNS1_8DrawArgsEi 0x7ff8f02d1d00 18: ZN4rack3app10RackWidget4drawERKNS_6widget6Widget8DrawArgsE 0x7ff8f02a70b0 17: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ff8f02d1ab0 16: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ff8f02d1c30 15: ZN4rack6widget10ZoomWidget4drawERKNS0_6Widget8DrawArgsE 0x7ff8f02d1f20 14: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ff8f02d1ab0 13: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ff8f02d1c30 12: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ff8f02d1ab0 11: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ff8f02d1c30 10: ZN4rack2ui12ScrollWidget4drawERKNS_6widget6Widget8DrawArgsE 0x7ff8f02c9eb0 9: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7ff8f02d1ab0 8: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7ff8f02d1c30 7: ZN4rack6window6Window4stepEv 0x7ff8f02d4040 6: ZN4rack6window6Window3runEv 0x7ff8f02d4970 5: ZN4rack6window6Window3runEv 0x7ff8f02d4970 4: ZN4rack6window6Window3runEv 0x7ff8f02d4970 3: ZN4rack6window6Window3runEv 0x7ff8f02d4970 2: ZN4rack6window6Window3runEv 0x7ff8f02d4970 1: BaseThreadInitThunk 0x7ff93ad67020 0: RtlUserThreadStart 0x7ff93bfc2630

here is the patch Bidoo Clock and Groovebox- 16072022 EnCore.zip

Petervos2018 commented 2 years ago

Even more info, I downloaded the 2.17 version from your Github without Encore and it also crashes Rack. But when I refresh the plugins via the VCV library re down load with the library browser in Rack, WTF I mean delete the Bidoo folder in Rack2 and start Rack and redownload Bidoo... it works fine.

Greets Peter.

sebastien-bouffier commented 2 years ago

Could you try the last dist that I have just updated. I think I have found what caused the issue on Zoรน.

Petervos2018 commented 2 years ago

I think you found it ๐Ÿ‘ Thanks again,

Peter.

Petervos2018 commented 2 years ago

And now for a FR and a Question.

FR: could we have a speed x8 ?

Question: I don't understand the probability setting(s). Fill and !Fill, I get, It plays when Fill is on or Off. COUNT will give me f.i. base 6 value 3, the next 3 times the trigger is selected it will play, and the next 3 times it will not. DICE does not have any parameters ? it will play always ? It would be nice to set it at f.i. 43% ?

Pre !Pre Nei !Nei and make no sense to me at all. ???

Greetings Peter.

sebastien-bouffier commented 2 years ago

Yes for 8x no pb. There is a bug on probabilities I just fixed few minutes ago when Dice is < 100%. Regarding probs 100% Dice means note always ON, less than 100% you set the proba the note occurs. I tested Fill and !Fill it works, if you set your prob to Fill note will occurs only if Fill button is ON. Count works as expected now 2 on 3 the note plays only 2 times on 3 ... ok. Pre means that if a previous note in the track has a proba and plays then that note plays too. Nei is the same concept but between tracks if a proba is ok on track n it will fire on track n+1. All those concepts are inherited from elektron sequencers in fact.

Petervos2018 commented 2 years ago

Ah so it was a bug on the probability, I got some noise burst when set to <100% (but I don't remember on what prob setting) And now I have to find a manual for the elektron sequencers ;) Almost ready to close this issue.... I said ALMOST

Greets Peter.

sebastien-bouffier commented 2 years ago

I have just updated the release so you can test prob DICE fix, x8 speed, more scales for quantization and a new version of tocante my clock with a dedicated output for enCORE x128

Petervos2018 commented 2 years ago

Wow x128 it looks so harmless :

afbeelding

I was already enjoying 8x on enCORE, and the prob DICE works now ๐Ÿ‘ I'm going to enJOY this weekEND ๐Ÿ˜ƒ with this new moDULE.

Thanks for all your work, Peter.

PS was the DICE also broken on Zou Mai ?

sebastien-bouffier commented 2 years ago

No it is/was not. It is the redesign with 32 clock ticks per step that introduced that behavior.

Petervos2018 commented 2 years ago

Ah I kinda hoped you solved a bug in an other module while working on "my" module. I can't stop thanking you enough, have a nice (long) weekend (I know it's only Thursday),

Peter.