Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by JulioHerrlein

  1. Awesome !!!! Looking Forward !!! Thanks, Janusz !
  2. Dear David, Once you figured out the pattern type in terms of integers representing the ascending (positive) or descending (negative) movement, both methods below will do the job for generating symmetric patterns a la Slonimsky´s Thesaurus. Note that there are some repeating patterns in Slonimsky book. For sure, Slonimsky did it all by hand in that time. The interesting thing is the concept, the whole idea of INTER-INFRA_ULTRAPOLATION and the conceptual difference between Scale, as unidirectional and Pattern, as Zig-Zags, alternating ascending and descending movements. By the way, the book is coming !! I´m looking forward to see it, too ! IT´s in the review / translation stage. All the best ! Julio (setf patt '(7 -1)) (setf pitches (gen-sieve '(c4 e6) patt :type :pitch)) or (make-scale 'c4 12 :alt '(7 -1))
  3. Dear Andre, Did you used virtualization to run in the M1 computer ? Looks good ! Best, Julio
  4. Maybe this one ? UTM | Virtual machines for Mac MAC.GETUTM.APP Securely run operating systems on your Mac
  5. Yes , Janusz and Jon ! Looking forward to see the new books ! All the best ! Julio
  6. Dear All, I´m also a heavy user of Opusmodus. My old Macbook Air is broken now and I no longer use Apple products, because I don´t like Apple policies and the programmed obsolescence they use to make. I use windows machines emulating OSX via Virtual Machine. It works perfectly with Opusmodus. Actually Opusmodus is a very light and elegant software. Doing some research, I found that M1 can run virtual machines to install older OSX versions, like in the video below. It can be a temporary alternative if you really need Opusmodus in a hurry. It´s a little tricky, but it works for me. You can run VMware, Virtualbox, Parallels Desktop, Fusion, etc. There are many options. Best You Can Now Run VirtualBox on Apple Silicon (M1 / M2) OSXDAILY.COM Mac VirtualBox users will be happy to know that VirtualBox now runs natively on Apple Silicon ARM processors, including the M1 and M2. VirtualBox is virtualization software that allows you to run o…
  7. Marvellous, Janusz, It will be a huge step in the system. And probably will be easier to make it compatible to many different systems, since it´s all Lisp-based stuff ! Looking forward to have it in Windows and make some cool videos showing it to people !! No hurry ! Take your time ! Best ! Julio
  8. Amazing feature, Janusz ! This is new Notation Viewer is a very useful feature, especially for dealing with long excerpts of music. It really helps a lot when hearing the pieces to make decisions about the form, the duration of the textures. Does it works also with the ps (preview score) function ? Looking forward to see it in Windows machines ! All the best ! Julio
  9. When the midi entry is enabled you can send notes to the midi input. The source of this notes can be a midi controller, a midi guitar and also from the output of a DAW, Max/MSP, Pure Data or anything with midi output. You can use a virtual port, even from a remote mac or windows computer. Check this possibilities: It works for sending midi via wifi from a windows computer to Opmo (or other application). rtpMIDI | Tobias Erichsen WWW.TOBIAS-ERICHSEN.DE Good Luck !
  10. Wow !!! Looking forward to the 3.0 and windows version !! Best ! Julio
  11. Dear all, Just for the record. The simple thing is just use four instances of distribute-stream to repitch the structure, like this: (setf v1mat-a '((h. c4 ord q eb4 -q e f4 stacc e g4) (q c4 p tie q c4 < tie c4 f ord e eb4 stacc f4 stacc))) (setf v2mat-a '((h. c4 ord q eb4 -q e f4 stacc e g4) (q c4 p tie q c4 < tie c4 f ord e eb4 stacc f4 stacc))) (setf v3mat-a '((h. c4 ord q eb4 -q e f4 stacc e g4) (q c4 p tie q c4 < tie c4 f ord e eb4 stacc f4 stacc))) (setf v4mat-a '((h. c4 ord q eb4 -q e f4 stacc e g4) (q c4 p tie q c4 < tie c4 f ord e eb4 stacc f4 stacc))) (setf repitch1 '((f5 e5) (e6 e6 e6 e6 e6) (f5 e5 d5 c5 f5 e5 d5 c5 f5 e5 d5 c5 f5 e5))) (setf repitch2 '((cs4 cs4 cs4 cs4 cs4 cs4) (d4 eb4 e4 f4 fs4 g4 gs4 a4 bb4 c5 cs5 d5 eb5 e5))) (setf repitch3 '((bb3 bb3 bb3 bb3 bb3 bb3) (a3 gs3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 g3 fs3 f3 e3 eb3 d3 cs3 c3 b2 bb2 a2))) (setf repitch4 '(cs2 g2 cs2 d2 d2 bb2 bb2 bb2 bb2 bb2 bb2 g2 cs2 g2 cs2 g2 cs2 g2 cs2 g2 cs2 g2 cs2 g2)) (setf v1new (distribute-stream repitch1 (list v1mat-a))) (setf v2new (distribute-stream repitch2 (list v2mat-a))) (setf v3new (distribute-stream repitch3 (list v3mat-a))) (setf v4new (distribute-stream repitch4 (list v4mat-a))) (setf v1 (make-omn :length (omn :length v1mat-a) :pitch v1new)) (setf v2 (make-omn :length (omn :length v2mat-a) :pitch v2new)) (setf v3 (make-omn :length (omn :length v3mat-a) :pitch v3new)) (setf v4 (make-omn :length (omn :length v4mat-a) :pitch v4new)) All the best ! Julio
  12. Here is what I did to get my keyswtches working properly. Hope it helps. But won´t work in different midi channels. Maybe in version 3.0 of Opusmodus. Best ! Julio
  13. Dear Friends, This is the example in the docs for the distribute-stream function. (setf sym '(c4 cs4 d4 eb4 e4 f4 fs4 g4 gs4 a4 bb4 c5 cs5 d5 eb5 e5)) (setf v1 '(1/8 1/8 -1/8 2/8 -1/8 5/8)) (setf v2 '(1/8 1/8 1/8 -1/8 2/8 1/8)) (setf va '(-2/8 1/8 1/8 -5/8 1/8)) (setf vc '(-1/8 3/8 3/8 1/8 1/8)) (setf inst (distribute-stream sym (list v1 v2 va vc))) (setf in1 (make-omn :length v1 :pitch (1~ inst))) (setf in2 (make-omn :length v2 :pitch (2~ inst))) (setf in3 (make-omn :length va :pitch (3~ inst))) (setf in4 (make-omn :length vc :pitch (4~ inst))) (list in1 in2 in3 in4) The result shows that the chromatic pitch sequence is distributed in the voices almost like in every beat, like a 1/4 span. An interesting feature would be the option to specify a series of different length time spans to spread the notes, making the spreading of chords, voicings or serial structures (like hexachords) more controllable. Is it possible , with a keyword ? Another possibility (maybe even better) is to spread the notes according to length sublists of each voice, Best, Julio
  14. Is there any support for swing 8ths in Opusmodus playback ? Best ! Julio
  15. Yes, Janusz I just did it as a fast example to get the idea. Adding a rest is easy. The function would be useful especially when making the rhythms displace to a earlier point (with negative values, like -1/8 or -1/16) where the append would not work.. Would be interesting to keep the bar structure but in this case the function would necessarily involve rotation and not only displacing, in order to put the beginning note/rest to the end of the list or the final note/rest into the beginning of the list. If the bar size is disregarded just using append for forward displacing is enough, but how to make backward displacing ? Best, Julio
  16. Dear Janusz, Thank you, but I did not find such a function. The gen-rotate is a different thing. And the other functions named rotations are more prone to serial manipulations. This length-displace would be more like a displace in time, rewriting the rhythm with an offset (positive or negative) based in a length, like 1/8 or -1/8, or 1/16 or -1/16. Similar to pcs-rhythm but not confined in a 12 module. Best, Julio For example: (setf omn '(q c4 p ten e d4 mp trem s e4 f stacc)) (gen-rotate 1 omn) (s e4 f stacc q c4 p ten e d4 mp trem) but (length-displace 1/8 omn) would be something like (-e q c4 p ten e d4 mp trem s e4 f stacc) Best ! Julio
  17. Dear Friends, I´m searching for a function to make rhythmic displacement of lists and sublists at once. It´s not like rotating, it´s more like displacing all the rhythms by a fixed amount, like transforming this: (-e he. d4 mf e cs4 hs eb4) into this (he. d4 mf e cs4 hs eb4 -e) This means displace all the phrase one 8th note earlier in time. Thank you all ! Best ! Julio
  18. Thanks a lot, Janusz This is a good solution to the note values. But I also have to redistribute the dynamics, like p < f > p, alongside the notes. Maybe a distribute stream of the velocity only ? It looks good, but I got an error here > Error: Too many arguments in call to #<Compiled-function omn-to-time-signature #x30000136862F>: > 4 arguments provided, at most 2 accepted. > While executing: omn-to-time-signature, in process Listener-1(7). > Type cmd-. to abort, cmd-\ for a list of available restarts. > Type :? for other options. 10 > It´s already implemented ? Or this is for the next release ? Best, Julio
  19. Dear Janusz and Friends, ;; I have a question about dictum and its relation with making revisions, like trying to improve the scores for better readability for real musicians. I will demonstrate with a kind of notation I use a lot in my writing. Let´s start with a motif spread through some bars. (setf time-signatures '((2 4 1) (2 4 1) (4 4 1) (2 4 1))) (omn-to-time-signature (gen-repeat 5 '(-e cs6 stacc h. c6 p<f>p long -q)) time-signatures) ;; I use the notation below (the omn result from the expression above) just to keep track of what I´m doing but... ((-e cs6 mf stacc q c6 p<f>p tie+long) (h c6) (-q -e cs6 mf stacc h c6 p<f>p tie+long) (q c6 -) (-e cs6 mf stacc q c6 p<f>p tie+long) (h c6) (-q -e cs6 mf stacc) (h c6 p<f>p tie+long) (q c6 -) (-e cs6 mf stacc q c6 p<f>p tie+long) (h c6) (-q)) ;; for the final writing, I have to rewrite it again in this way, in order to be correctly read and played ((-e cs6 mf stacc q c6 p< tie+long) (q f> tie q p) (-q -e cs6 mf stacc q c6 p< tie+long q f> tie) (q c6 p -) (-e cs6 mf stacc q c6 p< tie+long) (q c6 f> tie q p) (-q -e cs6 mf stacc) (q c6 p< tie q f> tie+long) (q c6 p -) (-e cs6 mf stacc q c6 p< tie+long) (q c6 f> tie q p) (-q)) ;; But, since there are many different ways to express the same length situation, it´s difficult to find a condition to put in the dictum expression to make the substitutions. Doing manually is painful both in Opusmodus or in the notation software. It´s a kind of boring stuff that we have to do as composers. (omn :length '((-e cs6 mf stacc q c6 p<f>p tie+long) (h c6) (-q -e cs6 mf stacc h c6 p<f>p tie+long) (q c6 -) (-e cs6 mf stacc q c6 p<f>p tie+long) (h c6) (-q -e cs6 mf stacc) (h c6 p<f>p tie+long) (q c6 -) (-e cs6 mf stacc q c6 p<f>p tie+long) (h c6) (-q))) ((-1/8 1/8 1/4) (1/2) (-1/4 -1/8 1/8 1/2) (1/4 -1/4) (-1/8 1/8 1/4) (1/2) (-1/4 -1/8 1/8) (1/2) (1/4 -1/4) (-1/8 1/8 1/4) (1/2) (-1/4)) ;;when extracting the length information from the omn phrase, the tie is not present as length. And in this case, maybe a good idea would be to have a kind of "tie2" attribute, only for the cases where the tie is functioning as a duration, and not as an expressive or articulation tie. I think the the tie as a duration should be translated in length value, because essentially this is the meaning of the tie when connecting the same two notes. ;; As the number of notes is altered when using the tie, the distribute-stream processes are also altered. We have to make the manual adjustments and also calculate the new streams of notes considering the repetitions of notes that must occur in the case of durational ties. ;; So, that is my questions concerning the power of Dictum to make revision that could be useful to prepare a score for a definitive and readable form. Looking forward to your ideas and suggestions. All the best ! Julio
  20. Bravo !! Great ! I will have a dedicated computer just to test Opusmodus in Windows !
  21. Dear Janusz, This will be in the next update ? Best, Julio
  • Create New...

Important Information

Terms of Use Privacy Policy