Hello, the first part to this thread is this: (https://forum.pdpatchrepo.info/topic/10707/all-possible-permutations-with-repetitions-of-harmonic-volume-from-top-to-bottom)
Can someone get this patch to work? 1493807936933-combinations(3).pd 1493807936933-combinations-help(3).pd I use pd extended version 0.42.5, and I can´t get the list printed, various objects are in dotted rectangles, i tried downloading normal pd or vanilla and it didn´t work either and practically everything I tried couldn´t be created, dotted rectangles, so I came back to extended, which is the best for me when using mrpeach and Iannix which is all the time.
I´m a composer and know very little about programming, just what I need to know to make my music work...
I figure that the next step would be to put the 8 sine waves and assign each letter a volume percentage, then control the list via slider/curve.
Thank you for the help!
-
Permutations, second part, can anybody get this patch to work?
-
@whale-av Hello David!, I dont understand, if there are 8 curves in pd already manipulating the sine waves´s volumes, then why a curve in iannix? with my last teacher he told me to draw in iannix a curve for each volume of an oscillator, and i didn't like the idea because i want only one curve per parameter, and the more curves the less space i have in the score(I want a lot of voices in my scores and have written down 16 parameters for each, so imagine having only one voice having 16 parameters), plus with [combinations] you only need one curve because all the possible combinations are already set, and with time i would try or intuitively memorize some of the combinations and i would know where to go vertically on the score for a sound that I like. In my lifetime i want work and reach 64 sine waves´s volumes, that is way more(way more, way more) than enough, with eleven volume percentages: 0, 10, 20,30,40,50,60,70,80,90,100, isn't there a way to load the list only once and work from there? maybe right now the 64 sine waves will not occur, but gradually getting there.
here is the hypermorph ( https://www.ableton.com/en/blog/hypermorph-sonic-faction/) at 1:13 you could perceive the morphing, what we are doing is hopefully a lot more radical, they only use 4 sound sources for morphing, the combinations we are doing are a lot more... -
@whale-av I think that with one curve manipulating the whole list is more efficient, right now it doesnt have to be musical, just an exercise to get it working...
-
@Ale-H.H. i agree with David. The combinations are just linearly ordered and there is no musical information in that order. Anyhow, i replaced combinations with an updated version of baseconverter, which is much more efficient, because it only outputs the desired combination: timbres.zip. Still, to take a different approach would seem to be more promising.
-
@ingox this whole musical idea is about sliding changes, when it comes to harmonics its about morphing constantly, you have an option as well to not be linear, just jump from one sound to another with a vertical line to the desired sound and then make a horizontal line to stay there and "break" linearity and step into "musical information".
with combinations you have both options, glissando and separate steps. I think we can have both, -
@ingox the whole continuum school is about gliding, microdurations etc etc,
) an "x" shape forms as top voice decelerates and bottom one accelerates,
Examples: study 21, by Nancarrow (
Metastasis by Xenakis ()
Yuunohui'Se by Estrada
Joyas de Julia by Carrillo http://www.sonido13.com/mp3/Joyas de Julia.mp3
Miqi´Nahual by Estrada -
@Ale-H.H. I am out tonight..... so no help I'm afraid.
I start to understand.
You can assign curves to what you wish....... so?Anyway.... the last patch allows you to draw curves for each oscillator controlled by just one iaanix timbre curve.
You just have to decide how each oscillator should respond to that curve to create the timbre.
If you want the first oscillator volume to simply follow the iaanix curve then draw a line in "a" from bottom left to top right.
If you want the last oscillator to do the inverse then draw in "h" a straight line from top left to bottom right.
If you want the second oscillator volume to rise quickly as the iannix curve goes to 0.5 and then fall back to zero as the iannix curve reaches 1 then draw a triangle in "b"I hope that makes sense.
David. -
@whale-av I think I finally understand your way
-
@whale-av I added 8 more sine waves, so 16 now,,, now all of this is just for 1 voice, my score has 31 voices, can you teach me how to do this again for just another voice without having to duplicate all? what is the fastest and cleanest way? then Ill do the other 29...
-
@Ale-H.H. OK....... You are going to have to trust me on this.
This took about an hour to build........ but you can now expand it in seconds.
Abstractions are a powerful tool......... but to build them you need to understand the use of variables ($0 $1 $2......etc.)..
NEW2.zipPLEASE NOTE>>!!
Any abstraction can be copied and pasted......... .So if you want more oscillators within a [voice_gen] just copy/paste a [part_voice] within a [voice_gen] and give it a new number [part_voice $1 "x"]...... Change the pasted one's Name to [part_voice $1 "new voice number").......
It will need a timbre curve as well.... so open the relevant [timbre_gen"y"] and put a new [part_timbre $1 $2 "x"] make a new volume curve $1-$2-x by copy/pasting an existing one...draw a new curve....... and save the main [voice_gen] abstraction once you are happy.BEWARE>>!!
1..... the [timbre_gen"x"] need to be saved individually because they contain the timbre sub-curves. They cannot be used as true abstractions (they must have separate names). If you decide you want a new timbre curve for something then copy and paste an old [timbre_gen"x"], changing its name........ then change the sub-curves and re-save the file.
((this could be done better by writing data out to text files, but I don't have the time now to implement that..... this solution works.......))
2.... If you add more oscillators to a voice then you will end up with some producing ultra-sonics. If you will need to specify some new relationship between the oscillators (other than x2,x3 etc. you can do that by changing the 2nd argument for the oscillators.... i.e. [part_voice $1 0.5] etc.
Don't forget to put the "0.5" in a corresponding [part_timbre] and it's graph....!HOWEVER>>!!
I cannot help you to do this without abstractions..... it would be too difficult and too messy.
You are absolutely going to have to understand them for a project like this that is going to become very complex very fast.
See here for some help........ https://forum.pdpatchrepo.info/topic/9774/pure-data-noob/4
You will not have wasted your time.
The future benefit will be enormous...... as any sudden new idea for your patch can be working 100% just a few minutes later!.You should probably print this post before you start playing with the patch.
And please do not despair.
You will, probably after a good nights sleep, have a $ eureka moment...... and from then on you will find patching in Pd as easy as Pi....... or is that Pie?.....New2.zip should be working...... there is nothing clever or unusual.
I might not get time to help for a couple of days. If I get time to integrate a state saving system then I will integrate each [part_timbre] into each [part_voice] and the patching will become even easier.
You have 2 days to get familiar with this way of working...........
David. -
@whale-av Thanks David, I´m on it
-
@whale-av ok, so a few things, whenever I open "mix mod" there is this:error: receive~ mixer_in-$1: no matching send.
For "part timbre" there is this:throw~ voice_out$1: no matching catch
For "part voice": throw~ voice_out$1: no matching catch
and for "voice gen": throw~ voice_out0: no matching catch, I dont understand why there are several "timbre_gen" sub patches(or what are the subcurves?), other than that Im kind of understanding what i have to do to make new voices and timbres for the voices, but on the graphs when ever i need to add one, i cant change its number above the graph, I click on the graph, then properties, and there isnt a window to change the number, Ive seen the window before, but now it just doesnt appear...(this on extended), I had to open timbre-gen to change the numbers on vanilla and then re open it on extended, because on vanilla this happens in the console :
udpreceive 57120
... couldn't create
unpackOSC
... couldn't create
import mrpeach
... couldn't create
pvu~
... couldn't create
pvu~
... couldn't create
here are some pictures:
-
@whale-av I tested and there isnt any sound, ill try to repair and see where the mistake might be.
-
@whale-av oh and another thing, there would have to be a lot more sine waves, because morphing timbre cannot occur with one sine wave, otherwise you´re just manipulating that sine waves´s volume, what I mean is that there are 16 sine waves or oscillators PER curve, so the morphing occurs by manipulating the volumes of the set of 16 sine waves per curve,. Lets have mercy on my computer and for now use 5 sine waves as a set for morphing timbre per curve. is it going to take to put a set of 5 graphs and oscillators per curve? (there are 31 curves for timbre), i wish but i think it cannot be done, to use the five graphs for all the curves? that´s impossible right? would there need to be 155 graphs and oscillators? because the set of 5 sine waves is there just to make and fuse into ONE sound, the one that will go to one curve and morph by manipulating it´s volumes.
-
@Ale-H.H. Just quickly..... I am up very early and away tomorrow.....
[pvu~] doesn't matter... it was just for the meters in the mix modules..... I will investigate later.... but it looks in your screenshot as though it is fine.
sends and receives missing?........ probably save each bit and the main patch and then open again.
the abstractions all talk to each other...... so that should solve it.
eg..... voice_out0 means the [voice_out $1] has not got its value for $1...... it needs to be re-opened by the container patch....... that is when it will get its $1 value.Could not create [udpreceive].......... don't know why? Not at all normal........mrpeach not being found.... should not be anything to do with the patch.
16 0r 32 sine waves should be fine...
Sorry, other stuff will have to wait..
David. -
@Ale-H.H. To change a graph name you have to select (highlight it) and then right click in the very top left of the graph and select properties...... you then get 2 windows..... one the same as the one you have been seeing and another (hidden below?) where you can change the array name........
Stupid system?
Back to bed! -
hahah, i looked everywhere for that window where you change the name, and had to go to vanilla, and then back again
-
@whale-av right now im making new music, started a new composition in iannix, and started investigating about fourier transforms, Im very interested in this, I have some very specific sounds I want to use for my compositions, but one thing at a time! I want to fuse the way I make composition for piano with my favorite sounds, its crazy you can do anything with iannix and pd, thanks to oscillators in pd I can use in IAnnix and fuse if i wanted to microtonal music, 12-TET music, and continual music, and now composition with my favorite sounds! I love this! still in iannix i want to make huge changes,,, specially in color, and make the 3d work.
-
@whale-av Did you get the part about the number of sine waves needed? EACH morphing timbre will use 5 sine waves (the volume of the 5 sine waves will fuse and make ONE sound, these 5 sine waves are for each timbre curve, there are 31 curves for timbre so 5 times 31 is 155 sine waves...)
-
@whale-av at the beginning i was going to use 8 sine waves for timbre, then 16, then realized how much they would be and now its going to be 5 per timbre curve, just saying this for no confusions.
-
@Ale-H.H. Just back...... but off to bed soon.
This is where, if you had already had your $ variable eureka moment you would find it incredibly easy to implement.
The [part_timbre] already send their output to the sine waves ( [part_voice] ) according to their second and third arguments..... [part_timbre $1 $2 5] sends its output to [s vol-voice..curve.no-part.voice.no] (s vol-$2-$3)... so.......
We need the oscillators to know more things. At the moment they know $1 (their curve) and $2 (the number that they have been given, that gives their multiplier...... which was the same as the timbre curve controlling them)S now they need to know...
$1...... their curve for notes
$2...... their multiplier
and
$3...... the timbre curve controlling themReplace [part_voice] in your folder (before you start your patch) with this........ part_voice.pd
Open your patch and rename for example [part_voice $1 2] to [part_voice $1 2 x] where x is the timbre curve graph ($1 $2 x) controlling it.....Look inside the new [part_voice]....... all I had to do was change [r vol-$1-$2] to [r vol-$1-$3]........ simple....... the power of abstractions and $ variables.
Once you "get it" you will be able to do all this on your own....... with ease!
David.