Jump to content
Sign in to follow this  
AM

how to write a "polytempo score"

Recommended Posts

dear users and opusmodus-guys

 

i'm an OPUSMODUS-newby, very happy with this direct and cool LISP-programming!

now the question: i would like to create an polytempo-score

 

for example:

this BOTS (bot1-bot4) are playing/written in ONE score with ONE tempo - is it possible to create a score, so that every bot has his own tempo?

in extremis: bot1 = 90bpm, bot2 = 91bpm... etc... like in "ars subtilior", but not with a modification of rhythm/duration...

 

thanks for you support - perhaps it's very simple, i don't know...

andré

 

further informations to ploytempo etc... http://www.greschak.com/polytempo/ptword.htm

 

 

-------my simple score-OMN with "material"  bot1 to bot4

 

(def-score multi-bots 
           (:title "multi-bots"
            :key-signature 'atonal
            :time-signature '(4 4)
            :tempo 90
            :layout (bracket-group 
                     (treble-layout 'bot1) (treble-layout 'bot2) (treble-layout 'bot3) (treble-layout 'bot4)))
  (bot1
   :omn mat_bot1
   :channel 1  
   :sound 'gm  
   :program 'acoustic-grand-piano)
  (bot2
   :omn mat_bot2
   :channel 2
   :sound 'gm 
   :program 'acoustic-grand-piano)
  (bot3
   :omn mat_bot3
   :channel 3
   :sound 'gm 
   :program 'acoustic-grand-piano)
  (bot4
   :omn mat_bot4
   :channel 4
   :sound 'gm 
   :program 'acoustic-grand-piano))    

Share this post


Link to post
Share on other sites

Instruments can't use the own tempo values and changes.
You need to do that with modification to the length of each instrument.

Share this post


Link to post
Share on other sites

Hi,

 

you can do eventually polytempo with Live Coding, using many instance (workspaces) of Opusmodus.

 

here's attached a picture example with 2 instances of LCI (LiveCodingInstrument)/

 

Hope this can help.

 

 SB.

Capture d’écran 2015-11-20 à 09.38.46.png

Share this post


Link to post
Share on other sites

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é

Share this post


Link to post
Share on other sites
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

 

 

 

Share this post


Link to post
Share on other sites

It would be great if the master can chime in an say a few words to this topic..

 

thanks

 

ole

Share this post


Link to post
Share on other sites

At the moment I am busy with programming and testing the spectral functions and FUNCALL-SHEET function.

At the end of the week I should have something very exiting for all of us.

 

As for the tempoThe DEF-SCORE marco works only with one tempo line.

I don't think the midi can't deal with multi tempo events - separate tempo events for each instrument.

The best way to do that would be to import the musicxml Opusmodus files into Sibelius or Finale and then there assemble the two or more scores into one.

Share this post


Link to post
Share on other sites

Thanks for the answer!

 

 

@AM: Don't know if you are using Logic,

in Logic you can  lock an object (midi-track) to its current SMPTE position,

via right-click, also see: https://documentation.apple.com/en/logicpro/usermanual/index.html#chapter=40%26section=4%26tasks=true 

than choose another tempo and lock the SMPTE position again and so forth.

Maybe that helps as a workaround.

 

best

 

ole

Share this post


Link to post
Share on other sites

it works in PWGL, not really for notation but i can listen/programm/simulate polytempo-scores in midi (or other players).  so i could transfer my lisp-code to pwgl-boxes... etc...

but i would be nice, if i could do it in OPUSMODUS, no boxes etc...  :-)

 

best wishes

andré

 

Share this post


Link to post
Share on other sites

I will see what we can do. Maybe we could add the SMPTE to the DEF-SCORE to each of the instrument instance.

This could be part of version 2.0 as well as microtonality etc...

 

Example of microtonal notation:

(q c4 h d4.5 g5.3)

 

1/10 of a semitone:

(q c4.1 mp)

 

or

(q c4.0456) 

 

Share this post


Link to post
Share on other sites

POLYTEMPO: would be great and very interesting! here is the technology to do/perform this LIVE on STAGE... http://www.smc-conference.net/smc-icmc-2014/images/proceedings/PS2-B03-PolytempoNetwork.pdf. (by philippe kocher - institute for computer music and sound technology zurich university of art). 

it works simple and fantastic!!

 

MICROTONAL: i prefer  (q c4.0456) but i would like more (or as an option) 60.0456 (via midi-note-number), so you could work/calculate directly with numbers and "pure lisp-code"....

 

 

Share this post


Link to post
Share on other sites

all this will work of course:

omn: (q c4.0456)
midi: 60.0456
integer: 0.0456
interval: 0.0456

and the conversions.

 

As for notation, we only can display what the musicXML can do - for sure quarter and possibly 8th tone.

 

 

Share this post


Link to post
Share on other sites

a solution could be... to write the cents (-14) or what ever as TEXT-file above each note - so you could work with it in sibelius/finale/paper

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Topics

    • By etu
      After a few days of testing and reading I'm starting to understand the power of OpusModus.  What would be beneficial to me (and perhaps other new users) is a collection of relatively simple scores.  I see references to such scores in the forums, but I cannot find them.  Perhaps they are not available in the newer versions of OpusModus?  Here is an example of a score I cannot find:
       
       
       
    • By AM
      dear all
      here is a setup for playing midi-files/scores in polytempi / follow the instructions and have fun!
      just ask if you have some questions...
       
      greetings
      andré
       
      - personally i will use it for exact sample/e-player perfomance with my pieces which are working with "Technology-Assisted Conducting"
      http://polytempo.zhdk.ch ... in future i will do it all directly from OPMO or lisp - "live score generating" + polytempo-conducting + e-player)
      - i have already done this with my piece MODULAR FORM  but not all controlled by LISP/OPMO, so next step is doing it all in OPMO/LISP
       
      ...some explanations about the piece....
      andré meier - trompete | komposition - modular form
      WWW.ANDREMEIER.ORG  
       
       
      greetings
      andré
       
      Polytempo - Wikipedia
      EN.WIKIPEDIA.ORG  
      ;;; POLYTEMPO-PLAY ;;; with a MAX-patch (from my friend thomas peter) and some OSC-send i can play the same/different midis (up to 30) ;;; in different tempos in parallel - any combination, with precise coordination ;;; also possible: change global velocity (means: change velocity inside midi) ;;; time-delay (start) in ms ;;; 1) OSC-send functions: (defparameter *out-socket* (make-socket :type :datagram)) (defparameter *remote-host* "127.0.0.1") (defparameter *remote-port* 7500) (defun udpsend (&rest args) (let ((message (apply' osc::encode-message args))) (send-to *out-socket* message (length message) :remote-host *remote-host* :remote-port *remote-port*))) ;;; 2) a) put the MAX-player-folder on desktop ;;; b) start midiplayer.maxpat ;;; c) midiplayer: define your output source in [midiout@name "from MAX 1"] ;;; d) the MIDIS must be placed in the midi-folder (inside MAX-player-folder) ;;; 3) generate SCORE (here a nonsense example) (setf omn (make-omn :pitch (setf pitches (filter-repeat 1 (flatten (gen-sort (rnd-air :type :pitch :seed 45) :step 5 :sort '> :seed 123)))) :length (gen-length '(1) 1/32) :velocity (pitch-to-velocity 'p 'mf pitches :type :float) :span :pitch)) (def-score sorted-whitenoise (:title "sorted-whitenoise" :key-signature 'atonal :time-signature '(4 4) :tempo 60 :layout (grand-layout 'inst)) (inst :omn omn :port 0 :channel 1 :sound 'gm :program 'acoustic-grand-piano)) ;;; 4) COMPILE that score into your Max-Player/midi-folder => PATH+NAME!!! (compile-score 'sorted-whitenoise :file "your-path/sorted-whitenoise") ;;; 5) play it by evaluate UPSEND -> some examples ;;; /eplayer / midi-name / tempo-factor / velocity factor / time-delay in ms (udpsend "/eplayer" "sorted-whitenoise" 1.0 0.5 0) ;; originaltempo, velocity 0.5 (udpsend "/eplayer" "sorted-whitenoise" 2.3 1.0 0) ;; (* tempo 2.3) etc... (udpsend "/eplayer" "sorted-whitenoise" 0.375 1.0 2000) ;; (* tempo 0.375 with startdelay 2000ms) (udpsend "/eplayer" "stop") ; you can stop with that ;;; a tempo-relations => 23:17:13:9:3:2 -> a complex example with time-delays ;;; also possible with every and different midis you like (progn (udpsend "/eplayer" "sorted-whitenoise" 2.3 1.0 0) (udpsend "/eplayer" "sorted-whitenoise" 0.3 0.8 0) (udpsend "/eplayer" "sorted-whitenoise" 0.2 0.4 0) (udpsend "/eplayer" "sorted-whitenoise" 1.3 1.0 10000) (udpsend "/eplayer" "sorted-whitenoise" 1.7 0.9 16000) (udpsend "/eplayer" "sorted-whitenoise" 0.9 0.7 20000)) (udpsend "/eplayer" "stop") ; you can stop with that  
       
      Max_Player_19-08-23.zip example.aiff
      goldberg_13_11.aiff example_11_7_5_3_2.aiff
    • By opmo
      How to save last score (or last snippet) to midi-file in a given location:
      (compile-score *last-score* :output :midi :file "path/filename")  
×
×
  • Create New...