Jump to content

o_e

Members
  • Joined

  • Last visited

Posts posted by o_e

  1. Hi Julio,

     

    I've found two problems. The weird one you had I think I could find and solve, but the function also does not handle tied notes properly and I have no idea how to remedy that. That goes waay above my hacking abilities :-)

    
    (length-staccato 1/16 '((e. c4 eb4 fs4 a4 tie) (s a4 e. cs4 e4 g4 e bb4 tie) (e bb4 e. d4 f4 gs4 s b4)))
    -->((s c4 -e s eb4 -e s fs4 -e s a4 -e) (s a4 cs4 -e s e4 -e s g4 -e s bb4 -) (s bb4 - d4 -e s f4 -e s gs4 -e s b4))

     

    5a343ccd0afd1_Bildschirmfoto2017-12-15um22_17_58.jpg.aac8244db0091797b20ab8e21271ef2e.jpg

     

    Nevertheless the code with the one correction, so it's not perfect but maybe somehow useful for you..

    best  ole

    
    (defun length-staccato (n alist)
      (let ((newlengths (loop for i in (omn :length (flatten alist))
                          when (> i n)
                          append (list n (* -1 (abs (- i n))))
                          else collect i)))
        (if (omn-formp alist)
          (omn-to-time-signature
           (make-omn :length newlengths
                    :pitch (omn :pitch alist)
                    :velocity (omn :velocity alist)
                    :articulation (omn :articulation alist))
           (get-time-signature alist))
          newlengths))) 

  2. Did you see my workaround in the post mentioned by André (to lock the smpte of the track and then change the overall tempo in Logic)?

    Now I'am working with Reaper (https://www.reaper.fm/ )

    which is worth to checkout, very cheap and unbelievable powerful (a bit of a learning curve I admit), no problem to change the tempo of every midi file seperatly..

     

    best  ole

     

     

  3. Hi,

     

    Just a minor improvement, the function is now also working with sublists :-)

     

    best ole

     

    
    (defun length-staccato-lists (n alist)
      (let ((newlengths (loop for i in (omn :length (flatten alist))
                          when (> i 0)
                          append (list n (* -1 (abs (- i n))))
                          else collect i)))
        (if (omn-formp alist)
          (omn-to-time-signature
           (make-omn :length newlengths
                    :pitch (omn :pitch alist)
                    :velocity (omn :velocity alist)
                    :articulation (omn :articulation alist))
           (get-time-signature alist))
          newlengths)))
    
    
    (length-staccato-lists 1/16 '((q e4 mp q tasto q -q q q)(q e4 mp q tasto q -q q q)))
    
    -->((s e4 mp -e. s e4 tasto -e. s e4 -e. -q s e4 -e. s e4 -e.) (s e4 -e. s e4 tasto -e. s e4 -e. -q s e4 -e. s e4 -e.))
    
    

  4. 2 hours ago, opmo said:

    In the velocity documents you find all the answers.

     

    Example

    All 127 velocities in float point numbers:

    
    (vector-to-velocity 0.1 1.0 (gen-integer 1 127) :type :float)
    => (0.1 0.11 0.11 0.12 0.13 0.14 0.14 0.15 0.16 0.16 0.17 0.18 0.19
            0.19 0.2 0.21 0.21 0.22 0.23 0.24 0.24 0.25 0.26 0.26 0.27
            0.28 0.29 0.29 0.3 0.31 0.31 0.32 0.33 0.34 0.34 0.35 0.36
            0.36 0.37 0.38 0.39 0.39 0.4 0.41 0.41 0.42 0.43 0.44 0.44
            0.45 0.46 0.46 0.47 0.48 0.49 0.49 0.5 0.51 0.51 0.52 0.53
            0.54 0.54 0.55 0.56 0.56 0.57 0.58 0.59 0.59 0.6 0.61 0.61
            0.62 0.63 0.64 0.64 0.65 0.66 0.66 0.67 0.68 0.69 0.69 0.7
            0.71 0.71 0.72 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.78 0.79
            0.79 0.8 0.81 0.81 0.82 0.83 0.84 0.84 0.85 0.86 0.86 0.87
            0.88 0.89 0.89 0.9 0.91 0.91 0.92 0.93 0.94 0.94 0.95 0.96
            0.96 0.97 0.98 0.99 0.99 1.0)

    Thanks!

     

  5. On 6/6/2017 at 11:32 AM, opmo said:

    What about floating point numbers velocity 🙂

    
    (make-omn :length '(e = = = = = = =)
              :pitch '(c4 cs5 b3 c4)
              :velocity '(0.1 0.2 0.21 0.32))
    => (e c4 0.1 cs5 0.2 b3 0.21 c4 0.32 0.1 cs5 0.2 b3 0.21 c4 0.32)

     

     

    thanks for the quick answer! So the floating point numbers velocity ranges from 0.1 to 0.99 or how do it relate to the 1-127 midi steps?

    I want to create an as-smooth-as-possible crescendo from the lowest possible value to the highest over x steps..

    Can you point me to some more information about 'floating point numbers velocity'?

  6. Posted

    Hi,

    I have a list of 30 midi-velocities that I want to map to 30 pitches, how can I do that without converting the velocities into symbols? Is that possible in OM (it is not for human players but for virtual instruments)?

    (setf vel '(1 5 10 14 19 23 27 32 36 41 44 50 53 57 62 66 71 75 79 84 88 93 97 102 105 109 114 118 123 127))

    converted to symbols it looks like:

    (ppppp ppppp pppp pppp pppp ppp ppp pp pp pp p p mp mp mp mf mf f f f ff ff fff fff fff ffff ffff ffff fffff fffff)

    which is not as 'smooth' as I want it..but make-omn seems to handle only velocity-symbol or am I missing something?

     

    thanks for help!

  7. I think I know what the problem was, I can not copy directly from the browser. 'Text Wrangler' shows me lots of otherwise hidden signs that confuses OM and that I have to remove first. Sorry for the noise.

    That was probably the same problem with Yuichis Code..

    edit: Yes ideed!

  8. Dear Torsten,

     

    Thank you very much for your solution. It looks very promising, in a good sense simple.

    Unfortunatly, when I tried to eval your "cut-holes" function it throws an error:

    Error: ((= b 0) (* l -1) l) can't be destructured against the lambda list (ccl::test true &optional false), because it contains 5 elements, and at most 3 are expected.

    and I could not find out whats wrong. What am I missing?

     

    ole

  9. Hi Yuichi,

     

    Thanks for your efforts!

    Unfortunatly the listener gives me a 'no current expression' when I try to evaluate the 'skip-notes' function and I do not find what is wrong at first glance. Maybe you can repost your code using the  '<>' code-brackets in the posting window. Not sure if this helps though.

     

    best

     

    ole

  10. Posted

    Hi,

     

    I want something rather simple, a sort of sieve, how can I achive that?

     

    Lets say I have a melody like

    (q c4 e d4  e e4  q. f4 e g4 q a4 b4)


    and I want to mute every other note, so the result would be:

    (q c4 -e e4 -q. e g4 -q b4)

    or every third note like:

    (q c4 e d4 -e q. f4 e g4 q a4 -q)

    and it would be great to have an offset..

     

    thanks!

    ole

  11. Thank you for the quick reply!

    My material is this pattern:

    (1/4 -1/4 1/4 -3/8 1/4 -1/4 1/4 -3/8)

    now I want to create  all variations of this pattern ranging from one beat:

    (-1/4 -1/4 -1/4 -3/8 1/4 -1/4 -1/4 -3/8)
          
    (0    0    0    0    1   0    0    0   )

    to four beats (orginal pattern)

     

  12. Posted

    Hi, I'am looking for a method to pick more and more elements from a list (that are more or less equally distributed):

     

    (1/4 -1/4 1/4 -3/8 1/4 -1/4 1/4 -3/8)
    (1   0    1   0    1   0    1   0   )
    1.pass--> (-1/4 -1/4 -1/4 -3/8 1/4 -1/4 -1/4 -3/8)
          
              (0    0    0    0    1   0    0    0   )
    2.pass--> (-1/4 -1/4 1/4 -3/8 -1/4 -1/4 1/4 -3/8)
           
              (0    0    1   0    0   0     1   0   )
    3.pass--> (1/4 -1/4 -1/4 -3/8 1/4 -1/4 1/4 -3/8)
          
              (1   0    0    0    1   0    1   0   )
    4.--> see orginal list

    thanks for any hints

    best

    ole

  13. I've tried to import Data from Spear following the help-file of import-spectral-spear but did not succede.

    I assume I have to export the textfiles of the partial data and the frames data to the folder ~/Opusmodus/Spectral Data/Data

    and the described import action is related to OM?

     

    When I try (import-spectral-spear :frames "tbn cs3 frames"  "tbn-cs3-frames") than:

    > Error: No such file or directory : #P"om:Spectral Data;Data;tbn cs3 frames.txt.newest"

     

    So it would be really great if you can ellaborate on that spectral stuff..

     

    thanks a lot!

     

    ole

  14. 2 hours ago, AM said:

    thanks for you answer. but it seems that the nancarrow/carter-idea is not possible with opusmodus.... because i would like to programm a SCORE. best way for me would be, if i could combine two or more different (setups/tempi) "def-score"s to a MAIN-score.... 

     

    but anyway, thanks!!!!!!

    andré

     

    If there is a way to program a score with voices  in different tempos, I'am also strongly interested how that could be done.

     

    best

     

    ole

     

     

     

  15. I guess gen-retro does not work with more that one voice.

    And you don't need the quote when calling the variable with gen-retro

    Don't know if it is necessary but I would put a blanc character between the name of the variable and the content

    (gen-retrograde 'music1)
    
    (setf music1 '((q ..

     

    hth

  16. Hi,

    I just wanted to make use of the string quartet score layout and copied the following from layout into my def-score:

    :layout
    	 (string-ensemble-layout
    	  '(violin-1 violin-2) 'viola 'cello ())

     

    that throws the following error:

    Error: Too few arguments in call to #<Compiled-function string-ensemble-layout #x3000014660AF>:
    >        3 arguments provided, at least 4 required. 
    > While executing: string-ensemble-layout, in process Listener-1(8).
    > Type cmd-. to abort, cmd-\ for a list of available restarts.

     

    what am I missing?

    And where are the score templates listed above e.g. where do I find string-quartet.opmo?

    best

    ole


Copyright © 2014-2025 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy