Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preset randomizer with mutation #462

Open
cybpun opened this issue Feb 2, 2019 · 10 comments
Open

Preset randomizer with mutation #462

cybpun opened this issue Feb 2, 2019 · 10 comments
Labels
Design Required We need to design a solution to this issue Feature Request New feature request Patch Browser

Comments

@cybpun
Copy link

cybpun commented Feb 2, 2019

preset randomizer with mutation like Oatmeal VSTi or Tobybear MiniHost

@baconpaul baconpaul added this to the 1.7 or later milestone Feb 24, 2019
@esaruoho
Copy link
Collaborator

esaruoho commented Mar 6, 2019

this would be lovely to have for sure. a+ stuff

@kzantow
Copy link
Collaborator

kzantow commented Jul 30, 2019

baconpaul [3:50 PM]
Thinking about a patch randomizer some. That’s a tricky feature with surge I think. Not impossible but subtle.
There’s an old ticket from feb with someone suggesting it.

Like: Do we randomize routings? Do we randomize both scenes? I think you want some settings, not just a “mash stuff” button

kzantow [3:51 PM]
the tricks are a) dependent values & ranges b) modulations in order to get somethin useful

baconpaul [3:52 PM]
Ranges are pretty easy since parameters know their range

kzantow [3:52 PM]
i would not randomize routings all in all, maybe 1 or 2

baconpaul [3:52 PM]
Dependent values are one of the things I’m thinking of yeah. Like “if I tweak osc3 and it isn’t on does anyone care”
You sort of want like levels. Like
“Randomize OSCs; Randomize Mixing; Randomize Filters; Randomize Effects”
And “Add Random Modulations”
And then “All the Hippos Go Beserk”
Which is of course what I would call the “go crazy” randomizer

kzantow [3:53 PM]
i mean... ranges -- in some cases may only make sense between smaller ranges
i guess all really just the dependencies

baconpaul [3:54 PM]
Right
The user has some discretion also.
Imagine a menu like “Randomize > A little > OSC|Mix|Filter|FX|Modulation|Everything”
And “Randomize > A Lot > OSC|MIX|Filter|Mod|Everything”
And “Randomize > All the Hippos Go Beserk”
The we just use some good taste for what “a little” or “a lot” is

kzantow [3:56 PM]
seems like a rational approach
i'd think 'a little' might us the current values as starting points

baconpaul [3:57 PM]
Oh yeah totally. “A little” means “tweak +/- 10%” and “a lot” means “set to whatever I want”
Or in modulation “a little” means “modulate something unmodulated a bit” or some such
Interesting problem

kzantow [3:57 PM]
patch morph might be another nice thing. alchemy got a lot of mileage out of that

baconpaul [3:58 PM]
I’ve played with alchemy quite a lot but haven’t used patch morph. How’s it work?
I mostly just set to init and patch with alchemy

kzantow [3:58 PM]
mod/routings and such are a bit of an issue tho
oh, i dunno about current alchemy, but 5 years ago when it was camel audio

baconpaul [3:58 PM]
Oh gotcha

kzantow [3:58 PM]
you basically had 8 different patches all similar, and then a way to interpolate between all 8

baconpaul [3:59 PM]
Is it basically “make this patch 0.7 * my patch + 0.3 * that patch over there” type thing?

kzantow [3:59 PM]
yeah

baconpaul [3:59 PM]
Oh right. They still have that
And you can use continuous controls to move between the different states

kzantow [3:59 PM]
right, exactly

baconpaul [3:59 PM]
So in surge we could pretty easily add “randomly apply features from > (patch list)”
And then grab that patch and you know. Randomly apply features from it.
As another form of randomizer

kzantow [4:00 PM]
right

baconpaul [4:00 PM]
That could give some crazy results too

kzantow [4:00 PM]
might almost be the most fun
like have a pad, apply some bass features
who knows what odd things would result

baconpaul [4:00 PM]
Yeah but if the pad is poly and the bass is mono you end up having one or the other
Or if one uses FM routing and the other doesn’t, the randomizer picks. And who knows what happens.
That’s a good idea

@baconpaul baconpaul modified the milestones: 1.7 or later, Currently Unscheduled Oct 4, 2019
@mkruselj mkruselj added the Feature Request New feature request label Feb 5, 2020
@mkruselj mkruselj modified the milestones: Currently Unscheduled, 1.7.n Jun 18, 2020
@mkruselj mkruselj modified the milestones: 1.8.n, 1.9.0 Oct 8, 2020
@mkruselj mkruselj changed the title preset randomizer with mutation Preset randomizer with mutation Oct 8, 2020
@mkruselj mkruselj modified the milestones: 1.9.0, Surge XT Jan 24, 2021
@illtellyoulater
Copy link

illtellyoulater commented Sep 23, 2021

wow, troubled story had this one so far… :(
please guys make it happen… it'd be huge!

@esaruoho
Copy link
Collaborator

I'd still +1 this, if it were to start happening. @baconpaul is this something that could happen at some point in time?
Can we make some sense of the longer chat conversation in the comments?

@K0rrid0r
Copy link
Collaborator

mutation button with % mutation that could be automated would be aaawwweesssoommee, endless 'real' variation

@baconpaul
Copy link
Collaborator

I wouldn’t say it’s “troubled” as much as “no one has done it” 😀

the old chat with kzantow was just copied here to be replaced by a proper design when someone does!

the thing that’s hard is a randomizer is Easy, a useful randomizer is hard. So lots of choices and design to be done

also definitely not in the next release - already too much queued up for that - unless we get a volunteer with both design and dev skills joining in

@illtellyoulater
Copy link

@baconpaul I understand your points and I fully agree but I think that as we wait for a decent implementation it would be great to just have a simple dumb randomizer thing that we could play with... It would be so much better than nothing!

I understand that something like that could produce a useful sound only once out of 100 runs, but that's part of the fun ;)

@mkruselj mkruselj added Design Required We need to design a solution to this issue Patch Browser labels Aug 9, 2022
@tux-00
Copy link

tux-00 commented Jan 9, 2024

I'm using a lot of randomization functions, then I tweak. Would be very nice to have this function on Surge.
Just to continue the message of @kzantow, here are two ideas of powerful randomization from Korg (modwave and opsix, in this order):
image
image
image

EDIT:
I would be happy to help.

@baconpaul
Copy link
Collaborator

If you are happy to sling some code, I have a pretty good idea how I would implement a basics randomizer in xt and would be happy to write up some more detailed notes as a gist. Most of it is some juce ui interactions which trigger scoped model updates and a generic-ish way to express constraints on randomization - but also a way to localize it to params so we can use it for rack also.

I’m on vaca for a few days but if that’s interesting let me know and I’ll spend an hour and write some notes. We welcome devs and most of the big 1.3 features were new devs who offered to help :)

@baconpaul
Copy link
Collaborator

baconpaul commented May 26, 2024

from discord user jamescorley

On the topic of randomisation, anyone ever used the randomiser in the Nord G2 modular? this might be interesting to note: "The G2 Patch Mutator is based on the work of Palle Dahlstedt, Swedish composer and researcher. His research interest has primarily been in the application of evolutionary algorithms as creative tools, aiding the search of novel musical expressions. This has resulted in a series of tools for evolving electronic sounds and musical scores, and also in programs that compose music by themselves using evolutionary techniques." If anyones looking into implementing a randomisation feature into Surge, Dahlstadt's work and the Nord G2 are probably the best places to look 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design Required We need to design a solution to this issue Feature Request New feature request Patch Browser
Projects
None yet
Development

No branches or pull requests

8 participants