benirose / O_C-BenisphereSuite

Benisphere Suite is a continuation of Hemisphere Suite, an alternate firmware for Ornament and Crime, featuring a dual-applet framework with dozens of different modular functions.
168 stars 17 forks source link

BugCrack -- a new drum synth #13

Closed herrkami closed 2 years ago

herrkami commented 2 years ago

This replaces the BootsNCat app by a new kick&snare generator called BugCrack. "BugCrack" is not as nice an onomatopoeia as BootsNCat but it's still a name that intriguing sounds can be imagined to.

BugCrack has two totally redesigned drum synthesizers with a brand new UI. The drums do not sound so LoFi anymore. Instead you get a punchy kick and a snappy snare with four parameters each. Each drum can also be CV-modulated in its volume, tone, or decay time depending on your configuration. In addition, there are some bug fixes and improvements to code that is related to the vector oscillators. However, it is 100% compatible to the previous BenisphereSuite. The CPU usage is easily within the limits and there is still enough space to add a few more apps in the future. Here's a demo: https://youtu.be/8TPPrw3ZDtQ

benirose commented 2 years ago

Hey, this is awesome! I'll try to install this soon and play around with it to see if it fits the vibe, but it looks great so far!

herrkami commented 2 years ago

Hey @benirose, I'm working on some tiny improvements, which I will push soonish. It's merely technical, so the experience and sound shouldn't change much. However, it would be nice, if you could wait for these changes before merging. Thanks! Kami

herrkami commented 2 years ago

Okay, I'm done. It's actually quite an improvement. Here's the image: https://github.com/herrkami/O_C-BenisphereSuite/releases/tag/BSSv1.1-bc

benirose commented 2 years ago

Okay, I'm done. It's actually quite an improvement. Here's the image: https://github.com/herrkami/O_C-BenisphereSuite/releases/tag/BSSv1.1-bc

Awesome, I'm going to flash this on today and give it a play around. Are there any details around operation I should know as far as parameters and I/O?

herrkami commented 2 years ago

Awesome, I'm going to flash this on today and give it a play around. Are there any details around operation I should know as far as parameters and I/O?

Hey! No, I hope everything should be self-explanatory and work out of the box. Kick and snare have four parameters each: frequency (shown in Hz), decay time, initial FM-shift (punch/snap), and the decay time for this FM-shift (drop). Additionally you can set a combination of CV modulation types for the two channels (attenuation, decay, and frequency).

Concerning the CV-inputs. I was considering making also punch/snap and drop available, since these are very interesting parameters actually. Let me know your opinion about it. It would be no effort to integrate this.

herrkami commented 2 years ago

Concerning the CV-inputs. I was considering making also punch/snap and drop available, since these are very interesting parameters actually. Let me know your opinion about it. It would be no effort to integrate this.

I just did it. The new image is here.

benirose commented 2 years ago

Hey there, sorry for taking so long. I finally got around to testing this out and it’s fantastic! Great work! I originally had some concerns with it being a bit too complex (lots of parameters, abstracted display of values) for the Hemisphere ethos, but after playing with it a bit more I think it’s just right at the limit and works. I love the graphical representation of parameters. My only request, is it possible to split the CV assignments into two separate parameters so you don’t have to scroll through all of the permutations for both channels at once?

Also, I noticed you’re losing some precision for storage. I’m working on expanding applet memory to 4 bytes so that should let us fit it all in! I won’t have that ready before I’m ready to merge this in though so we will have to circle back on that and just deal with the precision loss for now.

Thanks again!

herrkami commented 2 years ago

Hey, This is really nice to hear, thank you! I just committed a change that makes the CV configuration per channel as you requested. When a higher precision for the storage is available, it should also be no problem to integrate it. Just let me know, when it's ready.

benirose commented 2 years ago

Hey sorry, I just finally got around to merging in the 64-bit changes. I'm going to merge this if you can fix the conflict. I can update the code to store the full parameters or you can, either one. I'll package this up as part of a 1.2 release, which will include this app, the 64-bit save changes, and some enhancements to Burst, as well as a bug fix in Shredder. Thank you so much for your contribution and I'll make sure you get proper credit!

herrkami commented 2 years ago

Awesome, thank you for merging and integrating the higher precision! I'm looking forward to the 1.2 release 😍. One further thing that could be saved now is the CV state, i.e. the two cv modes. I could create a commit in the next few days but, being on vacation, I won't be able test it unfortunately.

benirose commented 2 years ago

No problem, I can add the CV state feature. I might actually hold off on including this in the 1.2 release so this can can its own release in 1.3. There are a few things I want to tweak in the snare channel as well, it's not quite where I want it.

benirose commented 2 years ago

Hey there, I merged this in and plan to release it shortly with 1.2. I did tweak the second drum tone a bit to be more like the FM drum on Peaks, adding another sine oscillator and changing one parameter to be a blend between the tone and noise. I wanted to make sure you are ok with still calling this Bug Crack, and you will still get the majority credit for the new applet.

herrkami commented 2 years ago

Hey! Sorry for being silent for so long, i was pretty busy with other stuff recently. Thank you for improving the snare! This sounds super interesting, can't wait to try it out. "BugCrack" is fine with me of course. I'm really looking forward to the new release. 😍 Thanks for all the work! 🙏

benirose commented 2 years ago

Haha you do not need to apologize for taking a day to respond, considering I took 3 months to merge in your PR! I'm glad to hear you good with the changes, and I'm super grateful for the submission, it will be a big improvement for Benispheres users! Here's a (very quiet) demo of the new snare, although I also changed out the noise after this to be more natural sounding (using pure random like in Calc rather than the bitflip from BootsNCats). https://www.instagram.com/p/Cdv5Jy4jf-m/

I'll make sure you're tagged on the release for your contribution, thanks again. Would welcome any other ideas or to hop in a chat to discuss other things on the roadmap if you're looking to contribute more!

herrkami commented 2 years ago

The snare sounds really really nice now. Big improvement! :)

herrkami commented 2 years ago

I have one further idea for the benisphere. It's also sort of progressed but unfortunately I lack the time to work on it recently. I'd be happy to chat though and share some ideas!