RST Posted July 15, 2024 Posted July 15, 2024 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. 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! Quote
Stephane Boussuge Posted July 16, 2024 Posted July 16, 2024 ;;; 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 ) ) jon and jesele 2 Quote
RST Posted July 16, 2024 Author Posted July 16, 2024 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! Quote
Stephane Boussuge Posted July 16, 2024 Posted July 16, 2024 You can use the function ambitus-filter. Quote
RST Posted July 16, 2024 Author Posted July 16, 2024 I will look into this. Thank you for the tip! Quote
Hunterge Posted December 30, 2024 Posted December 30, 2024 Start by defining the pitch ranges for each stave—decide what constitutes "high," "middle," and "low" for your piece. Once you have that, you can apply ambitus-filter or a similar function to your rh and lh streams. If you're new to handling these transformations, looking into resources like https://www.artmaster.com can be really helpful. They offer lessons and guidance on working with composition tools and notation techniques, which could give you more clarity and control as you refine your layout. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.