On Tue, Jul 05, 2016 at 06:47:07AM -0700, Zack Olson wrote: > Hi, I have a question about sending rpn messages to a hardware synth with > midish. The documentation for my synth states that the bend range can be > adjusted with rpn 06. With further digging, I found this more instructional bit > of information on what I need to send: > > B0 65 00 Controller/chan 0, RPN coarse (101), Pitch Bend Range > B0 64 00 Controller/chan 0, RPN fine (100), Pitch Bend Range > B0 06 xx Controller/chan 0, Data Entry coarse, +/- xx semitones (from 1 to 12) > (B0 26 04 Controller/chan 0, Data Entry fine), -> Not implemented/needed; do > not send > > I've tried a few different combinations of commands in midish, but I'm clearly > doing something wrong as I'm not getting the desired results. The command > sequence that seems the most straight-forward to me for adjusting the pitch > bend range to 12 semitones on a pre-defined output called mysynth is this one: > > co mysynth > oaddev {rpn mysynth 101 0} > oaddev {rpn mysynth 100 0} > oaddev {rpn mysynth 6 12} > i > s > > Yet for some reason this doesn't work. What am I doing wrong? Hi, According to: https://www.midi.org/specifications/item/table-3-control-change-messages-data-bytes-2 the pitch bend range is adjusted with RPN 0. With midish the "rpn" events are translated to the corresponding four midi controllers you mentioned (64, 65, 06 and 26). So all you need is: oaddev {rpn mysynth 0 (12 * 128)} the value is multiplied by 128 because of the unused "fine" component, which must be there even if it has no effect. This will generate the following midi messages: b0 65 00 b0 64 00 b0 06 0c b0 26 00 -- AlexandreReceived on Mon, 11 Jul 2016 09:22:34 +0200
This archive was generated by hypermail 2.1.8 : Wed Nov 08 2017 - 16:32:29 CET