Architect: Does anyone have a * macro/script
- KVRAF
- 6297 posts since 9 Dec, 2008 from Berlin
hahahah - okay...
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon
Sculptures ScreenDream Mastodon
- KVRAF
- 6297 posts since 9 Dec, 2008 from Berlin
I added two/four more helpers:
Bias and Gain are two very helpful functions to "massage" values between 0 and 1.
With a Bias/Gain setting of 0.5, both of them are neutral and don't change the input values.
Bias lets you push evenly distributed values more towards 0 or towards 1 (up or down) while Gain pushes the values more outward to the extremes of 0 and 1 or inwards to the centre of 0.5.
Both together are very flexible and since they interpolate smoothly in a curved way, you get no stepping.
These are coded in Lua and are using the "Fast" algorithm that doesn't use the power function. I actually got better results from this than from the original, slower version...
There are versions with GUI and without.
Enjoy!
Edit: I closed down my Github account, but here is a zip with everything I had there:
Cheers,
Tom
Bias and Gain are two very helpful functions to "massage" values between 0 and 1.
With a Bias/Gain setting of 0.5, both of them are neutral and don't change the input values.
Bias lets you push evenly distributed values more towards 0 or towards 1 (up or down) while Gain pushes the values more outward to the extremes of 0 and 1 or inwards to the centre of 0.5.
Both together are very flexible and since they interpolate smoothly in a curved way, you get no stepping.
These are coded in Lua and are using the "Fast" algorithm that doesn't use the power function. I actually got better results from this than from the original, slower version...
There are versions with GUI and without.
Enjoy!
Edit: I closed down my Github account, but here is a zip with everything I had there:
Cheers,
Tom
You do not have the required permissions to view the files attached to this post.
Last edited by ThomasHelzle on Tue Oct 22, 2019 1:38 pm, edited 3 times in total.
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon
Sculptures ScreenDream Mastodon
-
- KVRist
- 140 posts since 11 Mar, 2014
Hi Tom, re: Toms Midi Mangler. I hope you don't mind me posting this. Attached is your fragment using "pack note" Hope this works as expected.
You do not have the required permissions to view the files attached to this post.
-
- KVRist
- 140 posts since 11 Mar, 2014
MIDI Discombobulator UPDATE:
Please refer to original post for more info:
viewtopic.php?p=7287725#p7287725
Fixed: Track module Velocity min/max range.
Please refer to original post for more info:
viewtopic.php?p=7287725#p7287725
Fixed: Track module Velocity min/max range.
You do not have the required permissions to view the files attached to this post.
- KVRAF
- 6297 posts since 9 Dec, 2008 from Berlin
A new version of "Tom's Midi Mangler" is up.
Hopefully no hanging notes anymore, added swing, much cleaner code structure and only on fridays with a full moon the friggin event order gremlins decide to throw an error...
https://www.screendream.de/code/toms-midi-mangler
Cheers,
Tom
Hopefully no hanging notes anymore, added swing, much cleaner code structure and only on fridays with a full moon the friggin event order gremlins decide to throw an error...
https://www.screendream.de/code/toms-midi-mangler
Cheers,
Tom
You do not have the required permissions to view the files attached to this post.
Last edited by ThomasHelzle on Sun Jan 27, 2019 1:03 pm, edited 1 time in total.
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon
Sculptures ScreenDream Mastodon
-
- KVRist
- 140 posts since 11 Mar, 2014
Generative Midi Machine
EDIT: Update available below and at this post:
viewtopic.php?p=7306001#p7306001
This generative device lends itself to interaction. It can produce simple patterns to complex. I think you will be able to get useful results from it.
Fixed major timing snafu with my implementation of the Hold module.
Fixed (hopefully): Track Transpose following "Force to Scale", was in the wrong position. Thanks Alberto!
Fixed: Track on/off.
Fixed: Scales drop-down was reporting incorrectly between Major, Minor.
Added: Randomize scale & tonic button.
Added: Note duration. Finally got around to doing note duration rather than relying on the Hold module. Hold on/off button is still there to provide some random staccato. With the addition of note duration,
everything is smoother and less choppy. There are some extraneous notes (it seems) getting through sometimes. Will need to track that down.
Added Alberto's a-chaos algorithms:
a-clifford
a-dejong
a-duffing
a-henon
a-hopalong
a-logistic
a-lorenz
You can now choose for each track which algorithms for the notes and velocity. Feedback is welcome!
Special thanks to AlbertoZ for graciously providing the a-chaos algos!
viewtopic.php?p=7299827#p7299827
Special thanks to Charles Turner for graciously providing the logistic algo!
viewtopic.php?p=7284039#p7284039
Please refer to the post for MIDI Discombobulator:
viewtopic.php?p=7287725#p7287725
That post contains info that relates to Generative Midi Machine.
If you need a version with more than 6 tracks let me know.
Enjoy!
EDIT: Update available below and at this post:
viewtopic.php?p=7306001#p7306001
This generative device lends itself to interaction. It can produce simple patterns to complex. I think you will be able to get useful results from it.
Fixed major timing snafu with my implementation of the Hold module.
Fixed (hopefully): Track Transpose following "Force to Scale", was in the wrong position. Thanks Alberto!
Fixed: Track on/off.
Fixed: Scales drop-down was reporting incorrectly between Major, Minor.
Added: Randomize scale & tonic button.
Added: Note duration. Finally got around to doing note duration rather than relying on the Hold module. Hold on/off button is still there to provide some random staccato. With the addition of note duration,
everything is smoother and less choppy. There are some extraneous notes (it seems) getting through sometimes. Will need to track that down.
Added Alberto's a-chaos algorithms:
a-clifford
a-dejong
a-duffing
a-henon
a-hopalong
a-logistic
a-lorenz
You can now choose for each track which algorithms for the notes and velocity. Feedback is welcome!
Special thanks to AlbertoZ for graciously providing the a-chaos algos!
viewtopic.php?p=7299827#p7299827
Special thanks to Charles Turner for graciously providing the logistic algo!
viewtopic.php?p=7284039#p7284039
Please refer to the post for MIDI Discombobulator:
viewtopic.php?p=7287725#p7287725
That post contains info that relates to Generative Midi Machine.
If you need a version with more than 6 tracks let me know.
Enjoy!
You do not have the required permissions to view the files attached to this post.
Last edited by mannymang on Wed Feb 06, 2019 6:41 am, edited 7 times in total.
-
- KVRian
- 678 posts since 15 Feb, 2012 from France
Simple question (and most likely an easy one): how would you guys build a simple yet versatile LFO macro ? I've tried several things that were either too random / unpredictable or way too rigid. I haven't found a way to patch it elegantly (or not, actually). Same goes for some sort of EG.
Thanks!
Thanks!
- KVRian
- 698 posts since 7 Dec, 2009 from GWB
Have you tried using a Numeric Table with a hundred or so columns? I’ll post something after breakfast.nilhartman wrote: ↑Thu Jan 24, 2019 10:18 am Simple question (and most likely an easy one): how would you guys build a simple yet versatile LFO macro ? Same goes for some sort of EG.
-
- KVRAF
- Topic Starter
- 2674 posts since 25 Aug, 2003 from Bournemouth, UK
I have been working an a LFO that'll likely become the factory LFO, but with everything else monopolising my time, I've not had time to get it anywhere near production ready. If no-one else answers your call, I'll try my hardest to get it to you next week.
Essentially, I drive a phasor that generates values from 0 - 1, and then convert this to various output shapes using, for example, the [sin] module, or -1 if x < 0.5 else 1 for a square wave. The phasor's the hard part (in my case) because it can be free running, or syncable, in Hz, or in beats. It's broadly the same concept as the counter macro describe in the quick start guide, but instead of increasing by 1 each time, it increases by the reciprocal of the time interval.
Essentially, I drive a phasor that generates values from 0 - 1, and then convert this to various output shapes using, for example, the [sin] module, or -1 if x < 0.5 else 1 for a square wave. The phasor's the hard part (in my case) because it can be free running, or syncable, in Hz, or in beats. It's broadly the same concept as the counter macro describe in the quick start guide, but instead of increasing by 1 each time, it increases by the reciprocal of the time interval.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.
-
- KVRAF
- Topic Starter
- 2674 posts since 25 Aug, 2003 from Bournemouth, UK
Never crossed my mind, and that's a very clever approach. Completely customisable LFO shapes.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.
-
- KVRian
- 678 posts since 15 Feb, 2012 from France
I've tried with a Numeric Table indeed. I have no clue when it comes to interpolating values to make smoother modulations though, so disregarded that approach and investigated (with no proper success) ways to generate these with maths rather than a "visual" way with steppy results.
Coupling maths and visual approach could be stunning though, I'd often modulate LFO with mod sequencers when using Numerology, as a fast and effective way to shape more classic LFOs.
Coupling maths and visual approach could be stunning though, I'd often modulate LFO with mod sequencers when using Numerology, as a fast and effective way to shape more classic LFOs.
Last edited by nilhartman on Thu Jan 24, 2019 11:03 am, edited 2 times in total.
-
- KVRAF
- Topic Starter
- 2674 posts since 25 Aug, 2003 from Bournemouth, UK
I've also realised that maybe adding wrap, clamp, and fill modes (a la OpenGL textures) to the tables so that read indices outside the table length can be used would make LFO tables a lot easier to implement.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.
- KVRian
- 698 posts since 7 Dec, 2009 from GWB
Ah, seems like there's been activity here since I woke up.nilhartman wrote: ↑Thu Jan 24, 2019 10:45 amI've tried with a Numeric Table indeed. I have no clue when it comes to interpolating values to make smoother modulations though, so disregarded that approach and investigated (with no proper success) ways to generate these with maths rather than a "visual" way with steppy results.
Re your "steppy" comment above, isn't it just something you're imagining, versus something that actually has an impact on sound quality? After all, MIDI is confined to 127 values. I think if you were to consider the actual range of values needed for a certain situation, you likely wouldn't need to resort to interpolation. Or at least that's been my experience. Perhaps you could give some examples where you might need a thousand or so data points to do the job?
This is a crap demo image I put together before actually settling down to work today:
The biggest issue I had was that the numeric table "pans" itself within its UI frame if the number of data points gets too big, so in order to see/draw the whole thing at a glance, you have to make it very big, and then reduce the scale of the UI panel.
After my shower, I'll do a better thing that has a function to generate a sine wave into the numeric table. You could also say more about your use case, and perhaps I could flesh out a bit more functionality around the table.
HTH, Charles
Last edited by cturner on Sat Nov 16, 2019 11:38 am, edited 1 time in total.
- KVRian
- 698 posts since 7 Dec, 2009 from GWB
"Mirror" is also nice!colin@loomer wrote: ↑Thu Jan 24, 2019 10:55 am I've also realised that maybe adding wrap, clamp, and fill modes (a la OpenGL textures) to the tables so that read indices outside the table length can be used would make LFO tables a lot easier to implement.