Jump to content

julio d'escrivan

Members
  • Posts

    55
  • Joined

  • Last visited

Everything posted by julio d'escrivan

  1. Hi J, I think I obtained the result I wanted, but I am not entirely sure I understand the process... I wanted 5 versions of the original list where each element had its 8ve randomised, as opposed to each sub-list being transposed, and I obtained that. I just want to be sure I understand the order of execution of operations upon a list when they are nested. It seems each function is executed completely before moving to the next outer function, thus passing a list to the next function (as opposed to each element in turn, which I think is what happens with a stream). I guess I am confused between streams and lists (which is what I work with in SC and lists here). This is proving to be a hard learning curve, so thanks for your help. Julio
  2. Hi, Sorry if this is too basic!! I'm trying really to understand details in the order of evaluation. In a recursive line, does the inner nest always produce ALL of its elements before passing the list to the outer nest? in the example below I think this is what happens: 1. randomize-octaves in the list x, the randomise operates on each element of the list in turn and thus creates a new list 2. evaluate that 5 times, thus creating five list with different octave randomisation because the seed is nil 3. the 5 lists are modified where each sequential element in a list may be repeated three times for each element that is not repeated... ratio 1:3 (so it is 3 times as likely to stutter a value than not, correct?) thank you, Julio ;;here is a simple list of pitches (setf x '(a3 b3 c3 d3 e3)) ;; what I want is for a random octave to be evaluated for each individual note of the list... ;; so I did this and it seems to work... (setf exp1 (gen-repeat-seq '(5) 1 3 (gen-eval 5 '(randomize-octaves '(c0 g6) x :seed nil))))
  3. wow, thanks! that is some programming, I don't understand the function but it does what I need, thank you, very much!
  4. Thank you, yes, I understand this software is very notation oriented, perhaps I am asking too much... I have recently seen it done on symbolic composer so I wondered if it was possible here, I can't remember the specific function, but it was not a tempo change. thanks again.
  5. er... thank you, I will, but what you see above was a cut and paste from the documentation... thanks for showing the right way but then the help example needs correcting, and accounting for all input arguments, no? here it is again straight from the help file: Examples: Using the function GEN-LENGTH to make the conversion to lengths: (gen-length '8 ds-i2) => (1/2 1/4 1/4 1/2 1/4 1/8 1/8 1/4 1/4 1/8 1/8 1/4 1/2 1/4 1/4 1/2) (gen-length '16 ds-i2) => (1/4 1/8 1/8 1/4 1/8 1/16 1/16 1/8 1/8 1/16 1/16 1/8 1/4 1/8 1/8 1/4) (gen-length '(8 16) ds-i2) => ((1/2 1/4 1/4 1/2) (1/8 1/16 1/16 1/8) (1/4 1/8 1/8 1/4) (1/4 1/8 1/8 1/4))
  6. Hi J, (or anybody else who knows?) I am trying to find what function generates a written out accelerando... in other words something like this starting in whole notes and down to thirty seconds: w h h e e e e s s s s s s s s t t t t t t t t t t t t t t t t or involving tuplets also, or better still, starting from a given rhythmic value (lengths in opmo?) a geometric progression of lengths. In Supercollider, we use Pgeom and give it a start and end and a multiplier and this allows fro some great accell, stutter effects. What would be the equivalent here? Thanks! Julio
  7. Hi J, I am trying to run the distributive-square examples, evaluating all the previous lines before hand (with the exception of the ones that show the output!) so first I run: (setf ds-i2 (distributive-square (interference2 '(3 2)))) ;;then... (gen-length '8 ds-i2) and I get this: Error: The value 8 is not of the expected type list. > While executing: gen-length, in process Listener-1(7). > Type cmd-. to abort, cmd-\ for a list of available restarts. > Type :? for other options. Also, the argument and values list for this function only lists a sequence and nothing else... I imagine that the '8 is the number of times the sequence is generated? anyway, example does not work... Thank you! Julio
  8. ok, I have looked at the examples and the only thing I see clearly is that duration-add is necessary if there is a negative duration indicated. But I don't understand a negative duration... what you call length in omn is the rhythmic position within the bar, let's say the point at which a sound is triggered (MIDINote On timestamp?). What you call duration is how long that sound is triggered for (MIDINoteOff timestamp?). If that is correct, what does a negative duration do? I don't understand why a duration-add needs to exist... it seems to allow extending the durations by a factor... it is unclear and the documentation is rather cryptic. I am struggling with this... where can I find out more? I searched here and nobody seems to have asked this before...
  9. Hi J, I have done everything you indicate but this is happening again and it is very frustrating but I think I found a workaround: made a new workspace folder created a couple of new files and saved them manually to that folder they appear when I launch but when I start navigating from one to another at some stage they go blank the workaround I found is to manually close all documents open in the composer window, then click on the file in the navigator again and I got it back... It's like the IDE crashes when you have too many docs open in the composition window?
  10. thank you! I found what duration-add is by searching for an example in the documentation, the helpful just mentions the keyword but no more. I had no idea about this... we keep learning! thanks again.
  11. Hi J, I am trying to arpeggiate some chords put together algorithmically, I am following the example document for arpeggios, no2. And adding arp at the articulation keyword for make-omn, but I get an error, so I am wondering if it is just not possible to arpeggiate chords that are changing in the amount of sustain the notes have? (what you call 'duration' in OM language)). My basic premise is that I cannot change the original rhythmic positions of the coreCall set below, yet I want to create different orderings with different octaves and make them sound more legato: see here: ;;identified the core call notes to use as material for chords (setf coreCall '(-h_q_3s t_3s^s gb5 mp 23/640^23/384 db6 mf 5q^25/384 f6 t..^149/1920 eb6 mp e_t_5s bb5 mf -13/480 89/1920^t_x_5s eb5 mp 203/384 ab5 mf )) ;;defined the separate elements as their own variables (setf coreCall-L (omn :length coreCall )) (setf coreCall-P (omn :pitch coreCall )) (setf coreCall-D(omn :duration coreCall )) ;;set to generate chords from pitch (setf callChords (gen-chord 11 1 5 0 24 coreCall-P :count 5 :rnd-octaves t :seed 22)) ;;combine the values to make an alternative call (make-omn :pitch callChords ;;randomise the rhythmic values :length (rnd-order coreCall-L :seed 28) ;;make it more legato by scaling the durations of the notes: :duration (length-augmentation 2 coreCall-D ) :span :length :articulation (mclist '(- arp - arp arp-down - arp -)) ) Thank youin advance for your help!! Julio
  12. Hi again! :) I am setting these pitches: (setf pitchOnlyFirstCall '(bb5 bb5 bb5 bb5 gb5 db6 f6 eb6 bb5 eb5 ab5 gb5 db6 f6 eb6 bb5 eb5 ab5 eb5 eb5 eb5 eb5)) then I want to reverse and transpose down so I do this: (setf leftHand (pitch-transpose 'c0 (nreverse pitchOnlyFirstCall)) ) and the first time I evaluate the snippet I get what I want, the second time I evaluate the snippet I only get one note... So, The helpfile says that nreverse 'destroys the argument', does that mean that the variable I just passed becomes unassigned and this is why I get only one note on second eval? Is there a way to reverse a list without losing the original assignment? I guess I will have to have an intermediary assignment so I don't lose my original list? Thanks! Julio
  13. thanks, I did as you suggested and observe in the finder that of the files that were showing blank, there are duplicates which I did not create (purposefully at least!) and which have a tilde after the name, look at my finder in the picture attached. Don't know how this happened. Anyway, I have started a new workspace within the same folder I have been working all along... thanks.
  14. er... I know how to add files to the navigator... that is not an issue at all. The issue is that when I save files I just created, sometimes the text disappears and they look blank and are uneditable. I have had this behaviour both with and without consolidating files. You tell me it is not a bug but it sure looks like one! In other commercial software like LIVE or Logic, we are used to saving as project and having all related media files kept in the same folder as the project we saved and I find this useful in the long run as you go through many different projects and experiments. An interesting software that implements this kind of saving and includes everything inc video, text files, etc, and URLs is Scrivener. There, every creative writing project gets consolidated in its own folder. This is what I thought consolidate did. The way it is implemented here in OM is not useful to me, I guess. I prefer the consolidate-per-project approach. Thanks!
  15. update... it is happening again... with files inside and outside consolidated folder, and the .opmows is outside the consolidated folder because it does not get placed there when you consolidate, yet both .opmows and the folder are within the same folder... is this what you mean by the 'workspace folder' of my project?
  16. At some stage I consolidated the files I was working on, but this creates a folder called consolidated files which does not seem specific to the actual project file set, but to a point in time when you consolidate, thus if you save the project as something else, it will still place the files of this potentially new file set into the old consolidated folder. What would be ideal is that when you consolidate, it creates a folder per project, no? is that what it is meant to do? I tried making two different projects and when consolidating the second it just used the 'consolidated' folder of the first. I was saving my files in my composition folder but the behaviour appeared when there was more than one folder to put files (although I had not duplicated them)... so some in consolidated and some outside (which I was intending to consolidate later...) feeding the same project. I am trying to replicate the blank files but can't do it yet... thanks for alerting me to this way of working... I think I prefer to manually place files from the beginning if the saving system doesn't associate them with the IDE project they were created in, so I'll do that
  17. Hi J, I am getting this weird behaviour from the scripting environment. I am simply making a new .opmo doc, then pasting a little code from a master .opmo document into it, then if I switch to the master doc and then come back to the new one, it appears blank, and does not allow me to click or add any text to it, as if it were locked. I am using the version from late february, as opposed to the one you rolled out a couple of days ago. Also I am on latest MacOS. This is driving me crazy! thanks, Julio
  18. thank you! I will check this out! actually, just did, that is awesome!! I can span a whole load of pitches to a couple of durations very easily...
  19. yes, but make-omn will only span lists of equal number of elements, right?
  20. ok, so it seems I have misunderstood what this does, all it does is provide enough repetitions of the elements on one list to match another, which then has to be combined into a make-omn statement to match the results... I thought it directly matched pitches to rhythms but one more step is actually necessary... thanks! Julio
  21. in fact the helpfile example doesn't work as I thought either... below, should the span assign each element of the sequence to each element of the rhythm list, in this case consisting of only one value? thus playing seq-1 the whole way through in 1/8 values? (setf seq-1 (rnd-sample 15 '(c4 cs4 d4 fs4 g4 gs4 c5))) => ((c4 cs4 fs4 cs4 cs4 gs4 gs4 fs4 cs4 fs4 g4 c5 g4 g4 d4) (span seq-1 '(e)) => (1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8)
  22. Hi Janusz or guys who may help, I am doing this: (setf loopthing (gen-eval 8 '(randomize-octaves '(gb1 eb8) '(gb2cs3 e4as3 g4 eb5) ) )) and I want to map the resulting randomisations to a rhythm list, as in the example of the help-file... so (span loopthing '(1/80 3/64 13/192 -1/120 871/1920)) but all I get is the rhythm list playing a middle C... not the loopthing list, I tried evaluating it separately and just plugging in the list directly to see if it was due to using the gen-eval, but still doesn't work... I also tried inserting (omn :pitch loopthing) in case I needed to present it as a pitch only list? the example in the helpful is pretty straight forward, a sequence of pitches is spanned to a sequence of rhythms, one sequence is shorter than the other and the result is a recursive mapping of the two lists... why doesn't mine work? thanks! Julio
  23. a minor correction suggested... I know this is fairly basic, but it made a beginner like me do a double take... this is the helpfile: but further down it says... yet 'size' (which is in the type for a &key) is not a valid keyword, it refers to 'number'... thought it may help others... must be a nightmare keeping all help-files consistent, my sympathies! best, Julio
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy