Jump to content

JulioHerrlein

Members
  • Posts

    809
  • Joined

  • Last visited

Reputation Activity

  1. Like
    JulioHerrlein reacted to opmo in OM v.3.0 (Notation Viewer)   
    I hope you like the upcoming Notation viewer. Opusmodus v.3.0 screenshot.
    Coming soon.
     
    OM-v.3.0-Notation-Viewer.mp4
     
  2. Like
    JulioHerrlein reacted to opmo in Apple M1 Arm processor?   
    There are still few thing to do mainly to do with license activation. I will release a few screenshots and short video about the new notation viewer this week.
    Thank you for your patients.
  3. Like
    JulioHerrlein reacted to opmo in Opusmodus 2.2.26911 Update   
    New function:
    DICTUM  
    Please note that the functions APPLY-TO-DICTUM and OMN-DICTUM are merged to a new function DICTUM.
    If you used any of the two function before in your score please rename the function and make the changes to the dictum form and type.
     
    Here are the new types:
    :range a list (<low> <high>). Length, pitch or velocity values. :and a list of event elements (l p v a). :any an event element or list of event elements. :apply an event element, list of event elements or function. :remove an event element, list of elements, :velocity, :event or :attribute. :first an event element or list of event elements (first event in a sequence). :last an event element or list of event elements (last event in a sequence). :butlast an event element or list of event elements (butlast events in a sequence). :rest an event element or list of event elements (rest events in a sequence). :sub a sequence of events (a bar substitution). :bar an integer or list of integers (bar number). :event an integer or list of integers (event number).  
    Dictum Examples:
    Replaces an element with a new-element in all bars:
    (:any f :apply p) (:any q :apply e) (:any stacc :apply leg) (:any q :apply stacc) (:any e :apply (s stacc))  
    Replaces an element with a new-element in a given bar:
    (:any f :apply p :bar 1) (:any q :apply e :bar 1) (:any stacc :apply leg :bar 1) (:any q :apply stacc :bar 1) (:any e :apply (s stacc) :bar 1) (:any e :apply (s stacc) :bar (1 3 5)) (:any e (s stacc) :bar 2..6)  
    Replaces an element with a new-element in a given bar and a given event number:
    (:any f :apply p :bar 1 :event 1) (:any q :apply e :bar 1 :event 1) (:any q :apply stacc :bar 1 :event 1) (:any e :apply (s stacc) :bar 1 :event 1) (:any e :apply (s stacc) :bar (1 3 5) :event 1) (:any e :apply (s stacc) :bar 2..6 :event 1)  
    Replaces all elements in a sequence of its type with a new-element:
    (:apply stacc)  
    Replaces all elements of its type with a new-element in a given bar:
    (:apply stacc :bar 2) (:apply stacc :bar (2 4 6 8))  
    Rewrites accidentals with sharp map:
    (:apply :sharp)  
    Rewrites accidentals with flat map:
    (:apply :flat)  
    Replaces a list of elements with a new-element in all bars:
    (:any (f mf) :apply mp)  
    Replaces a list of elements with a new-element in a given bar:
    (:any (f mf) :apply mp :bar 1)  
    Removes an element from the sequence:
    (:remove leg)  
    Removes all velocity elements from the sequence:
    (:remove :velocity)  
    Removes all attribute (articulation) elements from the sequence:
    (:remove :attribute)  
    Converts an event number in a given bar into a pause:
    (:remove :event :bar 1 :event 2)  
    Replaces a first event in all bars in a sequence:
    (:first ord)  
    Replaces the first event in a given bar:
    (:first ord :bar 6)  
    Replaces the last event in a given bar:
    (:last fermata :bar 6)  
    Replaces all elements in a sequence excluding the last event:
    (:butlast leg)  
    Replaces all elements in a sequence excluding the first event:
    (:rest leg)  
    Replaces all elements in a given range with a new-element:
    (:range (t s) :apply marc) (:range (mp f) :apply p) (:range (c4 c5) :apply tasto)  
    Replaces all elements in a given range and in a given bar:
    (:range (t s) :apply marc :bar 2) (:range (mp f) :apply p :bar 2) (:range (c4 c5) :apply tasto :bar 2)  
    Replaces all elements in a sequence when equal the and series:
    (:and (q c4 f) :apply ff) (:and (q c4 f stacc) :apply (q c4cs5 f marc))  
    Substitutes a given bar number with a new sequence of events:
    (:sub (3q c4 eb4 gs4) :bar 8 )  
  4. Like
    JulioHerrlein reacted to opmo in Chords above staff   
    In October.
  5. Like
    JulioHerrlein reacted to opmo in Chords above staff   
    I will add the chord names as text attributes in the v.3.0
  6. Like
    JulioHerrlein got a reaction from Stephane Boussuge in Instant No.1 pour Piano (2022)   
    Beautiful, Stephane !
    BEst,
    Julio
  7. Like
    JulioHerrlein reacted to Stephane Boussuge in Instant No.1 pour Piano (2022)   
    New short piece for Piano.
     
    Stéphane
     
     
    Instant1-V1Edit03Render1.mp3 instant1v1-01Edit3.pdf Instant1V1-01.opmo
  8. Like
    JulioHerrlein reacted to Stephane Boussuge in Distribute Stream option/keyword   
    Hi Julio,
     
    the distribution is not made according to beats but just in order based on delta-time.
     
    But I agree I would like to have more control on distribution like the possibility to distribute list of pitch structure on vertical events (events with the same delta time) to be able to get a better control on the resultant harmonies.
     
    Best
     
    Stéphane
     
  9. Like
    JulioHerrlein reacted to opmo in Length-Displace Function   
    Please make a sequence of bars with a result.
    In the example from above you simply added a rest:
     
    (setf omn '(q c4 p ten e d4 mp trem s e4 f stacc)) ; 7/16   (append '(-e) omn) => (-e q c4 p ten e d4 mp trem s e4 f stacc) ; 9/16  
     
  10. Like
    JulioHerrlein reacted to opmo in Length-Displace Function   
    single-events then rotation
    (setf omn (single-events '(-e he. d4 mf e cs4 hs eb4))) (gen-rotate -1 omn) => ((he. d4 mf) (e cs4 mf) (hs eb4 mf) (-e)) (gen-rotate -2 omn) => ((e cs4 mf) (hs eb4 mf) (-e) (he. d4 mf))  
  11. Like
    JulioHerrlein reacted to opmo in Length-Displace Function   
    rotation
  12. Like
    JulioHerrlein reacted to opmo in Manipulating Tie as duration in Dictum   
    next update
  13. Like
    JulioHerrlein reacted to opmo in Manipulating Tie as duration in Dictum   
    What about adding a new keyword :merge-ties (default t):
     
    (omn-to-time-signature  '((-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))  '((2 4 2) (4 4 1) (2 4 8) (1 4 1)) :merge-ties nil)  

     
    (omn-to-time-signature  '((-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))  '(4 4) :merge-ties nil)  

  14. Like
    JulioHerrlein reacted to opmo in Manipulating Tie as duration in Dictum   
    Dictum is not made for notation readability, it is an omn event editing tool (like hand edit).
    The tie is part of the omn only.
  15. Like
    JulioHerrlein reacted to opmo in Windows Port?   
    Mac Apple Silicon first (October). PC version soon after.
  16. Like
    JulioHerrlein reacted to Stephane Boussuge in Generation of appoggiatura and accacciatura   
    In many scores, Pierre Boulez use a lot of accacciatura or appoggiatura , for exemple like in Dérive (1984), a score composed for and based on the name SACHER (famous hexachord used also in "Message esquisse").
     
    Here's a function to help to add such appoggiature in your score based on a list of rhythmic values.
    There is a draft doc in French joined to the function definition.
     
    Hope it could be useful for some of us and may be improved and better coded and refined.
     
    My best to all of Opmo users.
     
    SB.
     
    gen-ornament.lisp gen-ornament.rtfd.zip
  17. Like
    JulioHerrlein got a reaction from o_e in remove rest(s) with dictum   
    This is great for motivic development and variation.
    Best !
  18. Like
    JulioHerrlein reacted to opmo in remove rest(s) with dictum   
    Done.
    (dictum '(:remove e4) '(e c4 d4 e4 fs4 -q)) => (e c4 mf d4 - fs4 -q) (dictum '(:remove -q) '(e c4 d4 e4 fs4 -q)) => (e c4 mf d4 e4 fs4) (dictum '(:apply (length-rest-remove x)) '(e c4 d4 e4 fs4 -q)) => (e c4 d4 e4 fs4)  
  19. Like
    JulioHerrlein reacted to opmo in remove rest(s) with dictum   
    To get:
    (dictum '(:apply (length-rest-remove x)) '(w c5 ped -e)) => '(w c5 ped)  
    I would need to make some changes how the dictum deals with rests.
    I will see what I can do.
  20. Like
    JulioHerrlein reacted to AM in permute by rule   
    an idea (permutationsfaktor) used by HELMUT LACHENMANN for many of his pieces - to organize/build his strukturnetz.
    from an article by PIETRO CAVALLOTTI ("Die Funktion des Strukturnetzes am Beispiel von Mouvement (- vor der Erstarrung)")
     

  21. Like
    JulioHerrlein reacted to AM in permute by rule   
    (defun permute-by-rule (n rule row) (append (list row) (loop repeat n collect (setf row (position-filter rule row))))) ;; row => a row (or a list) ;; n => number of generations ;; rule => new position/order in every generation - keep attention it's 0-based!!! => for 12 pitches use 0 to 11 (permute-by-rule 20 '(2 0 1 5 11 3 8 6 4 9 10 7) (make-scale 'c4 12))  

  22. Thanks
    JulioHerrlein reacted to opmo in split-point   
    This will fix if length-rest list:
     
    (defun split-point (split-points omn-seq)   (do-verbose ("split-point")   (let* (          (spltconvert (if (numberp (car split-points))                         split-points                         (pitch-to-integer split-points)))          (spltp (gen-trim (length omn-seq) spltconvert))          (p1 (loop for sp in spltp                for l in omn-seq                collect (if (length-restsp l) l (ambitus-filter `(,sp 128) l))                ))          (p2 (loop for sp in spltp                for l in omn-seq                collect (if (length-restsp l) l (ambitus-filter `(-128 ,(- sp  1)) l))                ))          )     (list p1 p2))))
  23. Like
    JulioHerrlein reacted to opmo in Apple M1 Arm processor?   
    We have started porting Opusmodus to LispWorks. The Apple Silicon processor support is on its way 🙂
    Windows PC version will follow.
  24. Thanks
    JulioHerrlein reacted to opmo in Subdivision display options?   
    Possible solution:
    (setf rhy '((e a4 mf -e - gs4 f -e - g4 p -e -) (-e a4 p -e - gs4 -e - e4 -))) (ps 'gm :treble (list rhy) :rewrite-lengths nil :merge-rests nil :time-signature '((3 3 3) 8))  
  25. Like
    JulioHerrlein reacted to o_e in Subdivision display options?   
    Hi,
     
    This code:
    ((e a4 mf - - gs4 f - - g4 p - -) (-e a4 p - - gs4 - - e4 -))  is displayed like you see in the 2 screenshots, the second of the snippet notation, the first of the ps function (with :timesignature '(9 8))
    Also in the xml-file are quarter-rests* written (as in the screenshots), is there a way to set the subdivision (which looks right in the code)?
     
    Thanks!
     
    *which is "ok" in the first bar, but very hard to read in the second one..


×
×
  • Create New...

Important Information

Terms of Use Privacy Policy