Jump to content

Piano on three staves?


Recommended Posts

Here is a small question for the gurus of Opusmodus.

I am developing sketch materials for some piano music (a solo work and also a work for three pianos).

I am generating material as 'rh and 'lh using the piano-solo-layout.

image.png.85fd69012f4a01814b38a9dc02a21429.png

What I am trying to figure out is how to make the layout three staves and to place the music by register into the three staves, so that the pianist can work out the fingering and hand-crossing more easily and effectively during the sketching and feedback process. 

Can anyone point me in a good direction?

 

With thanks!

Link to comment
Share on other sites

;;; LAYOUT DESIGN EXAMPLE
;;; HOW TO DESIGN YOUR OWN LAYOUT IN OM.
;;; TRIPLE PIANO LAYOUT EXAMPLE:
(defun piano-triple-layout (line1 line2 line3)
  (list
   (brace-group 
    `(:treble ,line1)
    `(:treble ,line2)
    `(:bass ,line3)
    :name "Piano")))

;;; Test 

(setf line1 (make-omn :pitch (rnd-sample 32 (make-scale 'g4 16))
                      :length (gen-loop
                               8
                               (fit-to-span 
                                4/4
                                (rnd-sample 
                                 16
                                 '(s s -s q e e -q h h q q -e e e))))
                      ))

(setf line2 (make-omn :pitch (rnd-sample 32 (make-scale 'a3 16))
                      :length (gen-loop
                               8
                               (fit-to-span 
                                4/4
                                (rnd-sample 
                                 16
                                 '(s s -s q e e -q h h q q -e e e))))
                      ))

(setf line3 (make-omn :pitch (rnd-sample 32 (make-scale 'c2 16))
                      :length (gen-loop
                               8
                               (fit-to-span 
                                4/4
                                (rnd-sample 
                                 16
                                 '(-q h h q ))))
                      ))


(def-score temp 
           (
            :key-signature 'chromatic 
            :time-signature '(4 4) 
            :composer "Stéphane Boussuge"
            :copyright "Copyright © 2017 s.boussuge"
            :tempo 71
            :layout (piano-triple-layout 'p1 'p2 'p3)
            )
            


(p1
 :omn line1
 :port "bus 6"
 :channel 1
 :sound 'gm
 :program 'acoustic-grand-piano
 )
(p2
 :omn line2
 :port "bus 6"
 :channel 1
 :sound 'gm
 :program 'acoustic-grand-piano
 )

(p3
 :omn line3
 :port "bus 6"
 :channel 1
 :sound 'gm
 :program 'acoustic-grand-piano
 )
)

 

Link to comment
Share on other sites

This will be helpful to many!  Thanks Stephane!

 

What is still puzzling me is how to make the following transformation:

 

1) two streams of omn data (formatted length, pitch, velocity) as 'rh 'lh (perhaps merged into one stream using merge-voices) - and then transform to:

2) three streams of omn data for the three staves such that the data is parsed and separated as to register: high-middle-low.

 

What has me stumped at the moment is how to parse the data according to the pitch register after formatting as an omn stream while keeping intended length parameter intact.

 

I think I am getting close.  Your helpful comment re-invigorates my  problem-solving and I am grateful for that!

 

 

Link to comment
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.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy