{"id":188,"date":"2017-05-06T18:02:46","date_gmt":"2017-05-06T18:02:46","guid":{"rendered":"http:\/\/w2pa.net\/SDR\/?p=188"},"modified":"2017-09-10T13:08:51","modified_gmt":"2017-09-10T13:08:51","slug":"summary-of-mods-for-both-behringer-cmd-pl-1-and-cmd-micro","status":"publish","type":"post","link":"http:\/\/w2pa.net\/SDR\/2017\/05\/06\/summary-of-mods-for-both-behringer-cmd-pl-1-and-cmd-micro\/","title":{"rendered":"Summary of Mods for Both Behringer CMD-PL-1 and CMD Micro"},"content":{"rendered":"<p>This describes modifications I&#8217;ve made to the Midi2Cat package from Andrew Mansfield, M0YGG, as of this date.\u00a0 They should appear in the next release of OpenSDR\/PowerSDR mRX PS (hereafter referred to simply as OpenSDR).\u00a0 They were first applied to version 3.3.16, which may, in fact, be the next release. The new features provide special handling for messages produced by two MIDI controllers from Behringer: the CMD PL-1, and now also the CMD Micro.<\/p>\n<p>Although MIDI is a standard of sorts, the messages from controllers such as these can vary widely.\u00a0 The original code worked well with the Hercules controllers, and to a limited degree, with some of the controls on the Behringer units. That function has been preserved in this new version. In fact, it is possible to use more than one of these controllers together, connected at the same time.<\/p>\n<p>For complete instructions on setting up MIDI controllers using the Midi2Cat package, see M0YGG\u2019s original document, usually found in the OpenSDR package, with a file name such as \u201cMidi2Cat Instructions V3.\u201d\u00a0 This posting, and the corresponding document in the new release, are each intended to be an addendum to those instructions, adding details on how to use the package with the Behringer controllers.<\/p>\n<h3>Setup Process<\/h3>\n<p>Setting up the various controls works as it did before in OpenSDR.\u00a0 This means that the MIDI setup dialog window still works as before, and you get a tab labeled properly as \u201cCMD PL-1,\u201d or \u201cCMD Micro\u201d, similar to how it works with the Hercules.\u00a0 The mapping procedure is mostly unchanged for the Behringer controllers, with some minor exceptions described below.<\/p>\n<h4>Main Wheel<\/h4>\n<p>The PL-1 main wheel is big and very smooth, so it works great as a tuning knob.\u00a0 For example, you can set it to control a VFO\u2014the most obvious mapping and probably the most useful.\u00a0 If you do, the program makes use of the wheel\u2019s speed sensitivity to change the VFO tuning rate in three steps: slow, medium, and fast.\u00a0 It transitions through the speeds gradually as you turn faster.\u00a0 If you give it a good spin you\u2019ll fly across the band, and if you turn it slowly you\u2019ll fine-tune the radio using the step size defined in the OpenSDR window.\u00a0 By default, the wheel\u2019s sensitivity to touching its top surface is not used.\u00a0 It\u2019s always possible to touch the top surface accidentally while tuning, causing something else to happen inadvertently, so it probably is best left unmapped. All of this is true also for the two large wheels on the Behringer CMD Micro.<\/p>\n<p>To program a large wheel, go through MIDI setup as usual, spinning it clockwise and counterclockwise.\u00a0 The max\/min numbers won\u2019t matter because to get the speed sensitivity, the program reads the all the reported values anyway and does the right thing.\u00a0 If you plan to use the single large PL-1 wheel for both VFOs, first program it for VFOA, then follow the instructions in the next section for setting it up for VFOB.\u00a0 If you\u2019re programming the two large wheels on the Micro, just follow the above instructions for each VFO, one at a time.<\/p>\n<p>For the PL-1, there is a new CAT function called \u201cToggle Wheel to VFOA\/VFOB.\u201d\u00a0 You can map this function to any of the buttons.\u00a0 It is used to toggle the function of the PL-1\u2019s main wheel between controlling VFOA and VFOB. To set this up properly you need to do it in the following order:<\/p>\n<ol>\n<li>In MIDI Setup, map VFOA to the main wheel as above.<\/li>\n<li>Map a button of your choice to the \u201cToggle Wheel to VFOA\/VFOB\u201d function.<\/li>\n<li>Save and exit MIDI Setup.<\/li>\n<li>Press the button you just mapped in step #2 once (and <strong>only<\/strong> once) to switch to VFOB.<\/li>\n<li>Go back into MIDI setup.<\/li>\n<li>Map VFOB to the wheel, which behaves now as a different control from that in step #1.<\/li>\n<li>Save and exit setup.<\/li>\n<li>Have fun.<\/li>\n<\/ol>\n<h4><\/h4>\n<h4>Small Knobs<\/h4>\n<p>The small knobs on the Behringer CMD PL-1, and the center knob on the Micro, all behave like mini-wheels (they keep turning without limit) instead of knobs as OpenSDR defines them and is expecting knobs to behave, i.e. with limits and values like a slider or potentiometer. That\u2019s why OpenSDR lumps knobs and sliders together.\u00a0 So when you program a PL-1 knob, you have to choose \u201cWheel\u201d as the control type in the MIDI setup.\u00a0 You can map any mini-wheel to anything in the OpenSDR UI that makes sense.\u00a0 That is, it can be used to control anything that has a value that changes continuously, whether or not that value has limits in the OpenSDR window, such as on sliders.<\/p>\n<p>In addition to handling messages from the Behringer controllers send to the computer, messages are sent back to the controller that activate certain LEDs on the PL-1, such as those around each knob and alongside the single slider, and make them do something sensible. As you rotate the knobs or slide the slider, the LEDs light up roughly corresponding to a percentage of the specific function\u2019s setting, somewhere between its minimum and maximum values.\u00a0 At this time, this feature works for AF gains, AGC gains, RIT\/XIT, drive level, CW speed and some others.<\/p>\n<p>When RIT or XIT is mapped to a PL-1 mini-wheel, the LEDs behave a bit differently.\u00a0First, the center (midpoint) LED lights only when the RIT\/XIT is set to exactly zero.\u00a0 Then, the counterclockwise and clockwise LEDs light depending on how much you turn the knob.\u00a0 Despite the wide range of settings possible in OpenSDR, the LEDs will only indicate a maximum of plus or minus 2 kHz. (I found that if it took in a wider range, they changed too slowly to have any meaning.)\u00a0 Note: you can still keep turning the knob and go well beyond 2 kHz to the limits of OpenSDR, but the LEDs will hit their maximum and minimum indication at 2 kHz or slightly less.<\/p>\n<p>For most of the mappings of mini-wheels to on-screen user interface (UI) slider controls in the OpenSDR window, the LEDs also react to changes made on screen. For example, if you map a PL-1 knob to the RX1 AF Gain, then slide the on-screen RX1 AF slider in the OpenSDR window, the LEDs on the PL-1 will change just as if you were turning the PL-1 knob.<\/p>\n<p>The second feature of these mini-wheel knobs is that they act as buttons when you push down on them.\u00a0 So you can map them as buttons.\u00a0 For RIT\/XIT this is done for you so when you push a mini-wheel mapped to RIT or XIT, it zeros the value of that control.\u00a0You can, of course, map the RIT\/XIT on\/off function to any other button you like.<\/p>\n<p>Buttons<\/p>\n<p>The PL-1 and Micro buttons behave as usual\u2014they produce messages when pressing down and springing back up.\u00a0 You map them just as with any other controller.<\/p>\n<p>Some buttons are capable of changing from their default orange to one other color. So, you can add messages to make them do what you want, using the MIDI Setup Advanced options according to M0YGG\u2019s instructions.\u00a0 To control colors on the PL-1, you just need to send back the same message as received, but change the <em>value<\/em> part of the message to a number, depending on what you want the button\u2019s LED to do.\u00a0 For default orange, send 0 (0x00 \u2013 00 hexadecimal); for the alternate color, send 1 (0x01), and to have it alternate or flash between the two colors, send 2 (0x02).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-224\" src=\"http:\/\/w2pa.net\/SDR\/wp-content\/uploads\/2017\/05\/CMDPL1-552x1024.jpg\" alt=\"\" width=\"472\" height=\"864\" \/><\/p>\n<p>Thus, when you map, for example, a button, click on \u201cShow Advanced Options\u201d and you\u2019ll see a window like the one below.\u00a0 In this example, I pressed the \u201cCUE\u201d button on the Micro, which brought up the window showing I had previously mapped it to the \u201cMulti Rx On Off\u201d function.<\/p>\n<p>In the lower right, the two lower text boxes are where you enter these messages to control button lights.\u00a0 The Setup window lets you use \u201cSS\u201d and \u201cYY\u201d for the status and control ID bytes sent by the controller, instead of having to figure out what those values are and enter them explicitly.<\/p>\n<p>The example shows what gets entered to toggle between flashing (SSYY02) and constant alternate color (SSYY01).\u00a0 To use the default orange color, the message would be SSYY00.<\/p>\n<p>The buttons that can change color have only one alternate color. For example, the PL-1 CUE button can be pinkish-purple, Play\/Pause can be green, and all the others can be blue; and on the Micro, only the Play\/Pause and CUE buttons have alternate colors.\u00a0 OpenSDR changes some of them to their alternate color on startup for some initial variety.\u00a0 I think it looks better than all orange.\u00a0 I may make this customizable in Setup some time later.\u00a0 For now, you can use the built-in messaging (as above) to change color however you like.<\/p>\n<p>As an example, I have my PL-1\u2019s SCRATCH button mapped to toggle between VFOs.\u00a0 In MIDI setup, I entered a message to turn it blue for VFOA and orange for VFOB.<\/p>\n<p>The photo shows examples of mappings and colors, and some labels appropriate for SDR use.\u00a0 This is the same as in the previous post.\u00a0 The knobs (mini-wheels) labeled &#8220;LO&#8221; and &#8220;HI&#8221; correspond to the filter low and high settings in OpenSDR, and basically behave like LowCut and HighCut knobs on Kenwood rigs.\u00a0 They&#8217;re quite intuitive to use with the panadapter.\u00a0 Turning Lo clockwise moves the lower filter edge up, and counterclockwise moves it down in frequency.\u00a0 Likewise for the Hi knob.\u00a0 These make slicing out adjacent QRM very easy.<\/p>\n<h4>PL-1 Slider<\/h4>\n<p>The PL-1 slider can be mapped in setup as a \u201cknob or slider.\u201d\u00a0 When you map it to an existing slider in the OpenSDR window, the LEDs follow the slider\u2019s movement.\u00a0 One bit of quirkiness comes about because there is, of course, no way to physically move that slider under program control.\u00a0 Thus, if you change the slider in the OpenSDR window, the LEDs will change and become out-of-sync with the actual slider, until you move the PL-1 slider yourself.\u00a0 When you do, its value will jump instantly to the physical slider\u2019s actual setting.<\/p>\n<p>The knobs don\u2019t have this problem.\u00a0 Since the PL-1 knobs (and the Micro\u2019s center knob) are mini-wheels and have no absolute position (they just turn freely), there is no direct correspondence between knob position and value or slider position in the OpenSDR window, and so the quirkiness described above for the PL-1 slider\u2019s LEDs isn\u2019t an issue with the mini-wheels.<\/p>\n<p>On the Micro, the sliders behave normally and have no LEDs.<\/p>\n<h3>Multiple Controllers<\/h3>\n<p>M0YGG\u2019s original code nicely handles multiple controllers.\u00a0 The changes to handle the Behringer controllers have their effect only for the PL-1 and Micro.\u00a0 So mapping and using a Hercules controller, for example, should be unaffected.\u00a0 In fact, you can use both connected at the same time.\u00a0 You can also use both Behringer controllers at the same time.<\/p>\n<p>Example CMD Micro mapping and labeling<img loading=\"lazy\" decoding=\"async\" class=\"alignright size-large wp-image-225\" src=\"http:\/\/w2pa.net\/SDR\/wp-content\/uploads\/2017\/05\/CMDMicro-1024x284.jpg\" alt=\"\" width=\"1024\" height=\"284\" srcset=\"http:\/\/w2pa.net\/SDR\/wp-content\/uploads\/2017\/05\/CMDMicro-1024x284.jpg 1024w, http:\/\/w2pa.net\/SDR\/wp-content\/uploads\/2017\/05\/CMDMicro-300x83.jpg 300w, http:\/\/w2pa.net\/SDR\/wp-content\/uploads\/2017\/05\/CMDMicro-768x213.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-size: 10pt;\">de W2PA<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This describes modifications I&#8217;ve made to the Midi2Cat package from Andrew Mansfield, M0YGG, as of this date.\u00a0 They should appear in the next release of OpenSDR\/PowerSDR mRX PS (hereafter referred to simply as OpenSDR).\u00a0 They were first applied to version <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"http:\/\/w2pa.net\/SDR\/2017\/05\/06\/summary-of-mods-for-both-behringer-cmd-pl-1-and-cmd-micro\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,10],"tags":[],"class_list":["post-188","post","type-post","status-publish","format-standard","hentry","category-midi-controllers","category-powersdr"],"_links":{"self":[{"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/posts\/188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/comments?post=188"}],"version-history":[{"count":5,"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/posts\/188\/revisions"}],"predecessor-version":[{"id":227,"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/posts\/188\/revisions\/227"}],"wp:attachment":[{"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/media?parent=188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/categories?post=188"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/w2pa.net\/SDR\/wp-json\/wp\/v2\/tags?post=188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}