RST Posted July 15 Share Posted July 15 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 Link to comment Share on other sites More sharing options...
Stephane Boussuge Posted July 16 Share Posted July 16 ;;; 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 Link to comment Share on other sites More sharing options...
RST Posted July 16 Author Share Posted July 16 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 Link to comment Share on other sites More sharing options...
Stephane Boussuge Posted July 16 Share Posted July 16 You can use the function ambitus-filter. Quote Link to comment Share on other sites More sharing options...
RST Posted July 16 Author Share Posted July 16 I will look into this. Thank you for the tip! Quote Link to comment Share on other sites More sharing options...
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.