Jump to content

JulioHerrlein

core_group_3
  • Content Count

    250
  • Joined

  • Last visited

  • Days Won

    15

Reputation Activity

  1. reaction_title_2
    JulioHerrlein reacted to Stephane Boussuge in Harmonic Systems - Harmonizing from top notes (melodies)   
    You can use pitch-class within pattern-map function:
    (pattern-map   '(((0 1 9 4 2 5) (0 4 2 1 9 5))    ((11 8 10 3 7 6) (10 8 11 3 7 6)))  '((c6 cs4 a4 e3 d6 f4) (b4 gs3 bb4 eb4 g5 fs6))   :pcs t) => ((c6 e4 d4 cs3 a6 f4)     (bb4 gs3 b4 eb4 g5 fs6))  
     
  2. reaction_title_2
    JulioHerrlein reacted to Stephane Boussuge in Help on WILDCARDS ? *   
    You can use pitch-class within pattern-map function:
    (pattern-map   '(((0 1 9 4 2 5) (0 4 2 1 9 5))    ((11 8 10 3 7 6) (10 8 11 3 7 6)))  '((c6 cs4 a4 e3 d6 f4) (b4 gs3 bb4 eb4 g5 fs6))   :pcs t) => ((c6 e4 d4 cs3 a6 f4)     (bb4 gs3 b4 eb4 g5 fs6))  
     
  3. reaction_title_1
    JulioHerrlein reacted to Stephane Boussuge in On the Functions of death......   
    May be
    Expansion-series functions
    pitch-repeat-transpose (re-incarnation 🙂
    trim with gen-trim
    length-diminution or augmentation
    fragmentation with pitch-fragment
    gen-transition or gen-morph etc..
    use weighted function to add more and more rest in music (length-weight)
    use text-to-pitch functions to create pitch structures based on the Death word or a death poem
    create vectors who go from top to bottom (or reverse) and use them for rhythm, pitch etc... (gen-tendency)
    the possibilities are endless 🙂
     
    SB.
     
     
     
     
     
  4. reaction_title_2
    JulioHerrlein reacted to AM in Help on WILDCARDS ? *   
    often helpful in PATTERN MATCH things... (like in OPMO pattern-match-functions)
     
    here is a short IDEA for an octave-independent PITCH-PATTERN-MATCHP with possible WILDCARD, perhaps could help you...
     
    ;;;-------------------------------------------------------------- ;;; PITCH PATTERN-MATCHP octave-independent ;;;-------------------------------------------------------------- ;;; SUB (defun convert-pitch (pitches) (loop for i in pitches when (pitchp i) collect (compress (butlast (explode i))) else collect i)) ;;; MAIN (defun pitch-pattern-matchp (pitchlist pattern) (let ((pitchlist (convert-pitch pitchlist)) (pattern (convert-pitch pattern))) (pattern-matchp pitchlist pattern))) (pitch-pattern-matchp '(c4 d4 eb4 f4 g4) '(c ? e)) => nil (pitch-pattern-matchp '(c4 d4 eb4 f4 g4) '(c ? eb)) => t  
  5. reaction_title_1
    JulioHerrlein reacted to Stephane Boussuge in Harmonic Systems - Harmonizing from top notes (melodies)   
    originally, i've made gen-chord3 with JP for using in this top to bottom approach. 
    what  is called root in gen-chord3 parameters was not thinked by me originaly as "root" but more cantus note on with to add other notes (below or not). 
     
    S.
    But naturally, the gen-chord3 function is not conditionnal, so we have to think about something else but i think you can do that with pattern-match function.
     
    S.
    or also with def-case.
     
  6. reaction_title_1
    JulioHerrlein reacted to opmo in Harmonic Systems - Harmonizing from top notes (melodies)   
    I would need a few examples, input and output to see how could this work in our system.
  7. reaction_title_1
    JulioHerrlein got a reaction from opmo in Harmonic Systems - Harmonizing from top notes (melodies)   
    This would be great to make fast block harmonizations for arrangements.
  8. reaction_title_1
    JulioHerrlein got a reaction from opmo in Harmonic Systems - Harmonizing from top notes (melodies)   
    In the jazz world, Barry Harris came up with the idea of harmonizing a bebop scale.
    Combining a C6 (C, E, G, A) and a Bdim7 (B, D, F, Ab) chords, we have this scale:
     

     
    From this stantpoint we can alternate tonic and dominant sounds, like this:
     

     
    Every pair of chords have all the 8-note set.
    The notes C,E, G and A are always harmonized with a C6 chord.
    The notes D, F, Ab and B are always harmonized with a Bdim7 chord.
     
    So, from the point of view of sets, there is no problem.
     
    WHAT IS NEEDED:
     
    I want a way to start FROM the melody, and then make a four part block harmonization with this (or any other) harmonic system
     from the melody as an OMN expression.
     
    So, I need a way to filter the notes to aply the right chord:
     
    FOR EXAMPLE:
     
    For the notes C, E, G and A
    If the note is an C (in any register), I will apply a chord like , I will add the notes A, G and E, below the melody.
    If the note is an  (in any register), I will apply a chord like , I will add the notes G, E and C, below the melody.
    And so on...
    For the notes D, F, Ab and B:
     
    If the note is an B (in any register), I will apply a chord like , I will add the notes Ab, F and D, below the melody.
    And so on:
     
    So, to make any procedure:
     
    I need first find a way to apply a specific procedure only over the notes I want, over all the C notes, all the B notes, etc.
     
    How to filter from an OMN expression ?
     
    All the best !
    Julio
     
     
     
     
  9. reaction_title_1
    JulioHerrlein reacted to opmo in Opusmodus 1.3 Upgrade   
    Developers Progress
    The Opusmodus development team is making progress on the new release of our Opusmodus 1.3 software. We are planning to have 1.3 version ready for release in December 2018 with the upgrade price of EUR 145.
     
    Opusmodus Prices Going Up
    In the meantime, for those of you who have not yet purchased Opusmodus 1.2 the price will increase to EUR 399 for personal and EUR 250 for academic licence in December 2018 so now is the time to buy. 
     
     Are you Eligible for a Free Upgrade?
    If you purchased an Opusmodus license on or after July 1st, 2018 you are entitled to the upgrade to version 1.3 at no charge.
     
    Opusmodus 1.3, December 2018
     

     
    Whats new in version 1.3
    Compatibility with macOS Mojave
    macOS 10.14 Dark Mode
    CLM integration
    OSC integration
    MIDI player improvements
     
    New functions
    circle-pitch-plot
    circle-rhythm-plot
    pc-thythm
    xy-plot
    edit-event
    process-omn
    fit-to-span
    osc-thread
    osc-stop-threads
    osc-data
     
    Enhancement
    single-events
    quantize
    and bug fixes.
     
    Best wishes,
    JP

  10. reaction_title_1
    JulioHerrlein got a reaction from opmo in how to keep omn-notation?   
    Quoting André:
     
     
    But, despite this, we always want to have the output as close as possible to the final score.
    Best,
    Julio
  11. reaction_title_1
    JulioHerrlein reacted to opmo in how to keep omn-notation?   
    (setf sequence '((t s t)                  (3q 3e_s. t)                  (5h 5h 5q_7q 7q 7q 7q 7q 7q 7q_5q 5h 5h)                  (t s._3e 3q))) (gen-retrograde sequence) => ((t s t)     (t s._3e 3q)     (5h 5h 5q_7q 7q 7q 7q 7q 7q 7q_5q 5h 5h)     (3q 3e_s. t))
     
    best, JP
  12. reaction_title_2
    JulioHerrlein reacted to opmo in how to keep omn-notation?   
    Will be fixed in the next update. The problem not the ratios but the tied lengths. What we need to do is to reverse the order of tied lengths:
    5q_7q = 7q_5q
  13. reaction_title_1
    JulioHerrlein reacted to opmo in transpose-on-event-number   
    With EDIT-EVENT (ver1.3) function you will be able to edit any parameter in any given bar:
    (edit-event '(               (0 0 '(pitch-transpose 12 x) :pitch)               (0 2 '(chord-inversion 2 x) :pitch)               (0 3 '(pitch-variant x :variant 'i) :pitch)               (2 1 '(chord-inversion 1 x) :pitch)               (2 2 '(chord-inversion 1 (pitch-transpose 12 x)) :pitch)               (3 1 '(chord-inversion 1 (pitch-transpose 12 x)) :pitch)               (3 2 '(chord-inversion 2 x) :pitch)               (3 3 '(chord-inversion 2 x) :pitch)               (3 5 '(chord-inversion 4 x) :pitch)               (3 6 'g3e4c5 :pitch)               )             '((e c2 c3e3g3 c3e3g3 c3e3g3) (e f2 c3f3a3 c3f3a3 c3f3a3)               (e e2 e3g3c4 e3g3c4 e3g3c4) (e gs2 e3b3 e3b3 e3b3 g2 d3g3b3 d3g3b3 d3g3b3))) => ((e c3 mf c3e3g3 g3c4e4 c3gs2f2) (e f2 c3f3a3 c3f3a3 c3f3a3) (e e2 mf g3c4e4 g4c5e5 e3g3c4) (e gs2 mf b4e5 e4b4 e4b4 g2 g4b4d5 g3e4c5 d3g3b3))  
  14. reaction_title_1
    JulioHerrlein reacted to AM in transpose-on-event-number   
    thanx for the span-ignore-pause-HINT! ...but it makes no sense to me - when you are working with EVENTS (by numbering it) - to ignore some of them 😉
    the idea behind this concept is, that you could work with a (finished) score by changing some parameters or enlarge rests - like a kind of "post-production". in this way it's not necessary to go deep inside you generating-algorithms, you can only change things a little bit like in a notation-software (i think it's on that level). some months ago i had the idea to do such changes (post...) by positions with BARS/BEATS - but at the moment i think it's much better to signify the EVENTS and work directly on them. less errors and easy to code such post...-functions.
     
  15. reaction_title_1
    JulioHerrlein reacted to Stephane Boussuge in transpose-on-event-number   
    For span-ignore-pause, use the function gen-swallow
     
    SB.
     
     
  16. reaction_title_1
    JulioHerrlein reacted to AM in transpose-on-event-number   
    it's not a common solution, only a specific for my project... 
     
    1) it should also work with chords - because it's made for EVENTS it's always one chord = one event
    2) of course, you have to decide/check if you like to merge rests or not => because i'm filtering the texture by a binary-seq (binaries from a jpeg, like a sieve) it's not the idea to merge the rests, but you could do that in a seperate step. but in my case every note/event (before filtering) is numbered, so with/when BINARY-FILTER/SIEVE you will keep the numbering concise.
     
  17. reaction_title_2
    JulioHerrlein reacted to AM in transpose-on-event-number   
    greetings
    andré
     
    ;;; --------------------------------------------------------------------------------------------------- ;;; because i'm working with numbered-events (to have some more control) i has to code ;;; a specific tranposition-function, which is transposing on specific spans/positions ;;; --------------------------------------------------------------------------------------------------- ;;; SUB (defun and-span (n a b) (and (>= n a) (<= n b))) ;;; MAIN (defun transpose-on-event-number (omn-list &key positions/transpose-list) (loop for i in (single-events omn-list) for cnt = 0 then (incf cnt) with position-list = (loop for x in positions/transpose-list collect (car x)) with transpose-list = (loop for y in positions/transpose-list collect (rest y)) with cnt2 = 0 when (and (and-span cnt (car (nth cnt2 position-list)) (cadr (nth cnt2 position-list))) (not (length-restp (car (omn :length i))))) collect (pitch-transpose-n (nth cnt2 transpose-list) i) else collect i when (and (= cnt (cadr (nth cnt2 position-list))) (< cnt (cadar (last position-list)))) do (incf cnt2))) ;;; ZERO-based (like in lisp) (transpose-on-event-number '(q g4 -q q g4 g4 g4 g4 g4 g4 g4 g4) :positions/transpose-list '(((0 5) 1) ((6 7) -3) ((8 9) 12))) => ((q gs4 mf) (-q) (q gs4 mf) (q gs4 mf) (q gs4 mf) (q gs4 mf) (q e4 mf) (q e4 mf) (q g5 mf) (q g5 mf))  
  18. reaction_title_2
    JulioHerrlein reacted to AM in transpose-on-event-number   
    what you could do with it? 
    a precise "projection on a curve" of a generated OMN (in this example: a 12-tone-row, which is been permuted (by a SORTING-algorithm) from start to end, till it's a symmetrical scale)
     

  19. reaction_title_1
    JulioHerrlein reacted to opmo in how to number pitches   
    create you own text articulations:
     
    (add-text-attributes '(nr0 "0") '(nr1 "1") )  
  20. reaction_title_2
    JulioHerrlein reacted to AM in how to number pitches   
    thanks, so i have to code an algorithm to write such a library (till 1000) - or do it by hand 😉
    any idea to code such a format? - i don't know how to code/write such a format with single lists (and not lists in lists) inside a function...
     
    thanx for help
    andré
  21. reaction_title_2
    JulioHerrlein reacted to AM in how to number pitches   
    this is the simple solution...
    (defun add-numbers-to-text-attributes (a b) (loop for i from a to b append (add-text-attributes (list (compress (list 'nr i)) (write-to-string i))))) (add-numbers-to-text-attributes 12 23) => (nr12 nr13 nr14 nr15 nr16 nr17 nr18 nr19 nr20 nr21 nr22 nr23)  
  22. reaction_title_2
    JulioHerrlein reacted to AM in why a alternative version of LENGTH-INVERT is useful   
    i coded a new/alternative version of LENGTH-INVERT. i used it for a so called BINARY-FILTER (for events) - have a look to the example and you see the reason.
    in some cases you will have a much better DISPLAY/SCORE, is there an OPMO version for that?
     
    greetings
    andré
     
    ;;; -------------------------------------------------------- ;;; VERSION WITH OPMO length-invert ;;; -------------------------------------------------------- (defun binary-filter-old (alist bin-list) (let ((event-list (cond ((omn-formp alist) (single-events alist)) (t alist)))) (flatten (loop for i in event-list for j in bin-list when (= j 1) collect i else append (list (length-invert (car i))))))) ;;; -------------------------------------------------------- ;;; VERSION WITH OWN length-invert ;;; -------------------------------------------------------- (defun binary-filter* (alist bin-list) (let ((event-list (cond ((omn-formp alist) (single-events alist)) (t alist)))) (flatten (loop for i in event-list for j in bin-list when (= j 1) collect i else append (list (length-invert** (car i))))))) (defun length-invert** (length-val) (append (compress (list '- length-val))))  
     
    EXAMPLE WITH THE ORIGINAL VERSION:
     
    ;;; EXAMPLE => complex rhythms (setf omn-seq (make-omn :length '(t s t 3q 3e_s. t 5h 5h 5q_7q 7q 7q 7q 7q 7q 7q_5q 5h 5h t s._3e 3q t s t) :pitch '(a4))) ;;; when you use my BINARY-FILTER_OLD which has the OPMO length-invert you will get a strange display-result (looks bad) ;; have a look with cmd3 (binary-filter-old omn-seq '(0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1)) => (-1/32 s a4 mf -1/32 3q a4 mf -13/96 t a4 mf -1/10 5h a4 mf -3/35 7q a4 mf -1/28 7q a4 mf -1/28 7q a4 mf 7q_5q a4 mf 5h a4 mf 5h a4 mf t a4 mf s._3e a4 mf 3q a4 mf)
     
     
     
    EXAMPLE WITH USING THE ALTERNATIVE VERSION:
     
    ;;; EXAMPLE => complex rhythms (setf omn-seq (make-omn :length '(t s t 3q 3e_s. t 5h 5h 5q_7q 7q 7q 7q 7q 7q 7q_5q 5h 5h t s._3e 3q t s t) :pitch '(a4))) ;;; when you use the new BINARY-FILTER with the new length-invert** ;; have a look with cmd3 (binary-filter* omn-seq '(0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1)) => (-t s a4 mf -t 3q a4 mf -3e_s. t a4 mf -5h 5h a4 mf -5q_7q 7q a4 mf -7q 7q a4 mf -7q 7q a4 mf 7q_5q a4 mf 5h a4 mf 5h a4 mf t a4 mf s._3e a4 mf 3q a4 mf) ;;; you see the FORMAT (-3e_s.) didn't changed in the rests (not -13/96), so it will be displayed well
     
  23. reaction_title_2
    JulioHerrlein reacted to AM in Creating Custom Chord Symbols   
    i think it's good and important to see that opusmodus is not a notation software (like sibelius/finale/dorico...). the potential is rightly in another area and i believe that it is important to keep the basic idea of opusmodus in focus (it's important to have restrictions/limitations) - and i think the development team is very aware of that .
    you can not have everything, but what is possible should be very very smart in its kind.
     
    the longer i work with opusmodus, the more i realize, for what i can use it ...and when I have to switch to another platform. 
    and because it is so open, it is then possible for me to find solutions for my specific needs, by being able to program myself and not simply having to do what the existing tools / functions allow.
     
    okay i admit i'm a big fan of opusmodus, although i do not even compose with it but can try/simulate basic ideas of my work - doing abstract/new things and see what happens - like working in an LAB 🙂
     
  24. reaction_title_1
    JulioHerrlein reacted to opmo in Creating Custom Chord Symbols   
    There are limitation with text attributes in the music-xml script espacially with more than two layers. 
    Chord symbols are manly for popular music and should not me proceed if you wish to display them in the score.
  25. reaction_title_1
    JulioHerrlein reacted to Stephane Boussuge in Creating Custom Chord Symbols   
    You may use text attributes.
     
    S.
×