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?
-
@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. -
@Ale-H.H. An update for you....... now that we know the number of curves within a timbre will be limited.........NEW3.zip
Now each generator is separate (voice_gen1, voice_gen2 etc.) and contains it's curves. Change them and save each [voice_genx y z]
The [part_voice] abstractions have the extra argument for which timbre volume curve to follow.David.
-
@whale-av hey david, ok im reading your posts now, cant sleep haha its 4:20 am here, ill try to understand you, ill write some music as well, its going to take me a few years to develop my self in pd,
-
@whale-av Hello again David!!! so this happens...
, Im going to ask questions that are maybe really obvious, but i have to ask them to make me understand fully...
The main patch here is 1_vod_5.pd right? pdgubbins is an abstraction, part voice is also an abstraction?
Voice gen supposedly is for each voice, and its separated because each timbre curve needs 5 graphs or sine waves... -
@Ale-H.H. Hello........ sorry, I was very tired and ill and panicked, being in too much of a rush...... and I forgot to include [part_timbre] and [part_voice] in the zip. Here it is again....... NEW3.zip
Yes the main patch is 1_vod_5.pd
[pd gubbins] is a "sub-patch". It is part of 1_vod_5 and saved as part of it. It is like a window onto another room within 1_vod_5 that can be closed (hiding the contents) giving you more space to use on the main page. You will see that it does not exist on it's own..... there is no "gubbins.pd" in the folder.
If your main patch window fills up with too much stuff you could make another sub-patch. Put an object [pd whatever] and you will see a new window pop up. Cut and paste some stuff from the main patch window that you rarely want to look at into the new window..... close it..... and save the main patch. The "stuff" is still there and will behave as before (it is in the same patch) but is "hidden" unless you choose to open the window.[voice_gen1] and [voice_gen2] (( and [voice_gen3] etc. if you need more voices)) are abstractions BUT they have to be kept separate, by having different names, because of the graph data that they contain.
Yes..... if they had the same name they would be true abstractions. But if you saved one the others (copies) would change, and you would always have the same graphs in every copy.[part_voice] and [part_timbre] are true abstractions. Every copy is identical in every way...... but.... when you give the copies different arguments they will receive from different places, set their frequencies and volumes in different ways, and send their output to different places....... all controlled by those arguments.... $1, $2 etc.
David.