Menu

#4745 Add Staff.midiCC context property, refactor handling of MIDI control changes

Started
None
design
needs_work
Enhancement
2016-02-02
2016-01-16
No

Add Staff.midiCC context property, refactor handling of MIDI control changes

Setting the Staff.midiCC context property to a list of (control number,
control value) pairs, where every control number and control value must
be an integer between the inclusive range from 0 to 127, will send the
corresponding raw control changes to the MIDI output on the MIDI channel
associated with the current context. For example,
\set Staff.midiCC = #'((7 . 100)) will set the MIDI volume control (#7)
to 100.

Most of the logic for handling MIDI control value initialization from
context properties (in Staff_performer::new_audio_staff),
changes (in
Midi_control_function_performer::announce_function_value_change), and
value conversion for output (in
Midi_control_function_value_change::to_string), was moved into the new
Midi_control_change_announcer class. All MIDI control changes are now
encoded using {Audio,Midi}_control_change items. This change makes the
old {Audio,Midi}_control_function_value_change classes obsolete.

http://codereview.appspot.com/284280043

Discussion

  • Anonymous

    Anonymous - 2016-01-18

    passes make, make check and a full make doc

     
  • Anonymous

    Anonymous - 2016-01-18
    • Description has changed:

    Diff:

    
    
    • Needs: -->
    • Patch: new --> review
     
  • Anonymous

    Anonymous - 2016-01-21
    • Patch: review --> countdown
     
  • Anonymous

    Anonymous - 2016-01-21

    Patch on countdown for Jan 24th.

     
  • H T LilyPond

    H T LilyPond - 2016-01-23

    Due to concerns raised in the review discussion, this patch is not ready to enter the "push" state.

     
  • Anonymous

    Anonymous - 2016-01-24
    • Patch: countdown --> review
     
  • Anonymous

    Anonymous - 2016-01-24

    I'll set this back to review for now.

     
  • Anonymous

    Anonymous - 2016-01-27
     
  • Anonymous

    Anonymous - 2016-01-27

    No change since last time, Heikki I am leaving this on review for one more countdown. If nothing changes by then I'll move it forward to 'countdown'.

     
  • Anonymous

    Anonymous - 2016-01-30
    • Patch: review --> countdown
     
  • Anonymous

    Anonymous - 2016-01-30

    Patch on countdown for Feb 2nd.

    @Heikki if you (or any other dev) still feels this is not 'ready' for pushing, please change the patch status (or make comments on Rietveld), it is unclear to me what I should really do here, so I am moving this on and hoping those that know better will either comment or let it through. Thanks.

     
  • H T LilyPond

    H T LilyPond - 2016-02-01

    From the review discussion so far (which has turned more into a design discussion about the "proper" interface for this enhancement feature), I've concluded that pushing this patch without a redesign of its interface is not going to be acceptable. Can this patch be put on hold for now until the design questions have been resolved (and until there's a new patchset ready to be reviewed)?

     
  • Anonymous

    Anonymous - 2016-02-02
    • Needs: --> design
    • Patch: countdown --> needs_work
     
  • David Kastrup

    David Kastrup - 2016-03-16

    In a few days, master should have reached the state where something like
    \override Staff.MidiCC.7 = #100
    would become possible for setting a MidiCC alist. I could see how to fudge something similar into \set in general (likely without the revert and property combining machinery of grob properties), or make the Performer_group pass along actual override/revert commands.

    However, I consider it prudent to not use this as the user interface since it does not lend itself to continuous change of the continuous controllers. So if we decide to make this roll via context properties, we still should provide some wrapper commands as user interface.

     

Log in to post a comment.