Post by mrb on Sept 12, 2018 6:03:16 GMT
Hi Nic, anyone.
A few weeks ago I saw a video where someone named Lanthan O'Ide used an Arduino board to trigger a blofeld (Waldorf Hardware Synth).
He described his Arduino logic as follows:
As I was searching for informations about a Waldorf blofeld - yes, I want one - i was fascinated by that idea.
A few days ago I was reminded of StreamByter and what it should be capable of and I thought this was a perfect test to give it a spin.
So i was heading into the App-Store and bought a copy - as I did not want an Arduino board beside my iPad
After running into some trouble with loops inside StreamByter (Thanks Nic for letting me access the beta - where this is solved!) I put this script together.
I mainly resembled the same logic:
There could be a few more checks for minimal number of notes given and stuff but software is never final
One additional check i will implement is this:
In the first randomly generated batch of notes it is possible that the first and last note of the target array are identical.
I will enhance that when I have a little more time.
All in all - if you feed logical numbers you'll get logical results and no crashes.
You just have to feed some permanent note stream into StreamByter and get an evolving melody of randomly selected and generated notes within your selected note-range.
I did a setup like this - StreamByter is fed with the ever identical notes from StepPolyArp Unit and sends the generated notes to SynthMaster ONE:
and the melody-generation started.
To have a demonstration I made a small, non-fancy, song and hosted it on SoundCloud:
StreamByter Demo on SoundCloud
The "Bell-type" sound is initially randomly generated and evolves over time. So every time I start AUM playing that song it is different and evolves differently
I hope you like it and get some use for it.
I am very happy with my first StreamByter project.
Thanks Nic for the loop-problem support, again
Danke für's Zuhören,
Frank
A few weeks ago I saw a video where someone named Lanthan O'Ide used an Arduino board to trigger a blofeld (Waldorf Hardware Synth).
He described his Arduino logic as follows:
At first, a sequence is generated at random, with the following rules:
1. The sequence is 8 steps long.
2. Every step is set at random either to an A3, D4, E4, G4 or A4.
3. A step must not be set to the same note as the previous or next step.
Then the sequence is played two times.
Afterwards one of the 8 steps may be chosen at random and its note be changed.
Again, rule 2 and 3 have to be followed.
Then the sequence is again played two times, is changed again, and so on.
1. The sequence is 8 steps long.
2. Every step is set at random either to an A3, D4, E4, G4 or A4.
3. A step must not be set to the same note as the previous or next step.
Then the sequence is played two times.
Afterwards one of the 8 steps may be chosen at random and its note be changed.
Again, rule 2 and 3 have to be followed.
Then the sequence is again played two times, is changed again, and so on.
A few days ago I was reminded of StreamByter and what it should be capable of and I thought this was a perfect test to give it a spin.
So i was heading into the App-Store and bought a copy - as I did not want an Arduino board beside my iPad
After running into some trouble with loops inside StreamByter (Thanks Nic for letting me access the beta - where this is solved!) I put this script together.
I mainly resembled the same logic:
#arp with random intelligence - loop 004
# user definable presets are G0, G1, G10
# G0 = amount of repetitions per generated notebatch
# G1 = amount of notes in the generated notearray (size of G40+)
# G9 has to be the size of the amount of notes in G10 (missing a real array function here)
# G10 contains the hex values that are the source of the note generation. these get randomly selected.
#
# written 201809 Frank Price, MrBlaschke
# Needs StreamByter latest beta-version - there is a loop error in the streambyter core-component in the actaual app-store version
# date: 11.09.2018
IF LOAD
ASS G0 = 2 # amount of repetitions
ASS G1 = 8 # amount of notes to be generated per batch
# Quellarray
ASS G9 = 5 # size of g10
ASS G10 = 39, 3E, 40, 43, 45 # sourcenotes
# --------------------------------------------
#
# DO NOT CHANGE VALUES FROM HERE - ONLY ABOVE
# AB HIER KEINE WERTE MEHR VERÄNDERN
#
# --------------------------------------------
# Zielarray
ASS G40 = 00 00 00 00 00 00 00 00
# correct counter values - because we begin at 0 (zero)
MAT G1 = G1 - 1
MAT G9 = G9 - 1
ASS L0 = 0
ASS L1 = 0
ASS L2 = 1
ASS L3 = 0
ASS L8 = 0
ASS L9 = 0
ASS L4 = 0
ASS L5 = 0
ASS L6 = 0
ASS L7 = 0
ASS L90 = 0
ASS L95 = 0
ASS L96 = 0
ASS L97 = 0
ASS L98 = 0
ASS L99 = 0
END
# force note on + velocity 0 to note off
9X XX 00 = 8X
IF L2 == 1
ASS L2 = 0
ASS L6 = 40
ASS L5 = 0
IF L5 <= G1 +L
ASS L3 = RG9
IF L3 != L7
ASS L7 = L3
MAT L3 = L3 + 10
ASS GL6 = GL3
MAT L6 = L6 + 1
MAT L5 = L5 + 1
END
END
END
# Note ON
IF MT == 90
IF L0 <= G0
IF L1 <= G1
MAT L99 = 40 + L1
ASS M1 = GL99
ASS L97 = GL99
MAT L1 = L1 + 1
IF L1 > G1
ASS L1 = 0
MAT L0 = L0 + 1
END
END
IF L0 == G0
ASS L0 = 0
ASS L2 = 2
END
END
END
# Note ON - ENDE
IF L2 == 2
ASS L8 = RG1
ASS I01 = L8
ASS L99 = 0
IF L8 == 0
IF L99 == 0
MAT L8 = 40 + G1
MAT L9 = 40 + 1
ASS L99 = 1
END
END
IF L8 == G1
IF L99 == 0
MAT L8 = 40 + G1
MAT L8 = L8 - 1
ASS L9 = 40
ASS L99 = 1
END
END
IF L99 == 0
MAT L8 = I01 - 1
MAT L8 = L8 + 40
MAT L9 = I01 + 1
MAT L9 = L9 + 40
ASS L99 = 1
END
# l97 ist aktuelle note
# l95 register for storing previous note in target container
# l96 register for storing following note in target container
ASS L95 = GL8
ASS L96 = GL9
ASS L99 = 0
MAT L8 = 40 + I01
IF L99 != 1 +L
ASS L3 = RG9
MAT L3 = L3 + 10
ASS L97 = GL3
IF L97 != L95
IF L97 != L96
IF L97 != GL8
ASS GL8 = L97
ASS L99 = 1
END
END
END
END
ASS L2 = 0
END
There could be a few more checks for minimal number of notes given and stuff but software is never final
One additional check i will implement is this:
In the first randomly generated batch of notes it is possible that the first and last note of the target array are identical.
I will enhance that when I have a little more time.
All in all - if you feed logical numbers you'll get logical results and no crashes.
You just have to feed some permanent note stream into StreamByter and get an evolving melody of randomly selected and generated notes within your selected note-range.
I did a setup like this - StreamByter is fed with the ever identical notes from StepPolyArp Unit and sends the generated notes to SynthMaster ONE:
and the melody-generation started.
To have a demonstration I made a small, non-fancy, song and hosted it on SoundCloud:
StreamByter Demo on SoundCloud
Edit: The SoundCloud Link seems not to work properly...dont know why.
This is the plain Link:
https://soundcloud.com/user-842912842/streambyter-demosong-20180911
The "Bell-type" sound is initially randomly generated and evolves over time. So every time I start AUM playing that song it is different and evolves differently
I hope you like it and get some use for it.
I am very happy with my first StreamByter project.
Thanks Nic for the loop-problem support, again
Danke für's Zuhören,
Frank