# Brick Walled with Scaling values

**URL:** <https://forum.bome.com/t/brick-walled-with-scaling-values/7562>\
**Category:** Bome Products\
**Tags:** midi-translator\
**Created:** [September 8, 2025, 12:06am UTC](https://forum.bome.com/t/brick-walled-with-scaling-values/7562 "2025-09-08T00:06:19Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jack.Harris1](https://forum.bome.com/letter_avatar_proxy/v4/letter/j/c89c15/32.png) [@Jack.Harris1](https://forum.bome.com/u/Jack.Harris1)\
**Post date:** [September 8, 2025, 12:06am UTC](https://forum.bome.com/t/brick-walled-with-scaling-values/7562/1 "2025-09-08T00:06:19Z")

</div>

I’ve successfully created my very first project that lets me adjust a controller knob (DJ Fighter) 0-127 to transpose values of 0-12

(for me this is valuable when using standalone VST’s that have no onboard transpose adjustment - Keyscape for example)

After being really quite pleased with myself I realized that I really wanted 0-12 semitones positive and 0-12 negative and ideally with the DJF knob in the center position.

I’ve tried multiple attempts with tweaking the offset amount, messing with the math and it’s clearly more complex than I can visualize. I would appreciate a smack in the right direction.

My project has a second issue in that I get note hangs when changing transposition. This is a minor niggle but any advice as well.

Jack

[DJ Fighter Transpose Knob 2.bmtp](https://forum.bome.com/uploads/short-url/lIyWS7AwhVHbjlooKvgNijonerS.bmtp) (2.4 KB)

---

<div class="post-metadata">

**Author:** ![SteveC](https://forum.bome.com/user_avatar/forum.bome.com/stevec/32/8250_2.png) [@SteveC](https://forum.bome.com/u/SteveC)\
**Post date:** [September 8, 2025, 1:37am UTC](https://forum.bome.com/t/brick-walled-with-scaling-values/7562/2 "2025-09-08T01:37:25Z")

</div>

Hi and welcome to the Bome community!

First I use aliases instead of physical ports. It will make it much easier later if you want to use different ports.

Here is how my aliases are set up.

 ![image](https://forum.bome.com/uploads/default/original/2X/a/aa18ecb67e02d9eb3d397a2f58075cd1be3518bc.png)

You can learn more about aliases from [this tutorial](https://youtu.be/CrE391VJL0s).

Then I set up device selection at the preset level.

Preset 1 is set as follows:

 ![image](https://forum.bome.com/uploads/default/original/2X/3/35875f6d90fdfe2bd928da23e7e03708a5e0ce53.png)

And Preset 2 is set as follows:

 ![image](https://forum.bome.com/uploads/default/original/2X/d/dfeb94c0aa77238ec09c8e329f00119286d29587.png)

For more information about device selection, see [this tutorial](https://youtu.be/KunN2A1rKMY).

Then I changed the rules as follows that allows a value of +12 to -12

```auto
// restrict controller bounds
if ga>127 then ga=127
if ga<0 then ga=0
// Scale controller..
// values to 24 semitones
gb=ga*25
gb=gb/128
// offset by 12 to go in both directions
gb=gb-12
Log "Incoming value =%ga% outgoing value =%gb%"

```

The outgoing action of translator 1.0 triggers timer 0.1 which sends an all-notes-off CC (125) message (if your DAW supports it).

If this message is not interpreteted correctly by your DAW, then, disable translators 0.0 and 0.1 and enable translators 0.2 and 0.3.

Timer 0.3 iterates note-by note to turn each note off on at a time using the global variable gc to determine each note number.

Here are the rules of 0.3

```auto
gc=gc-1
Log "Log note off note %gc%"

```

Where gc is the note-off we wish to send.

I’m assuming MIDI CH 1 for note messages for both timers.

I make sure the timers only trigger 100ms after you stop moving the knob.

[DJ Fighter Transpose Knob 2-sjc.bmtp](https://forum.bome.com/uploads/short-url/x1VShkWzK5lSHvjbzDuDAAqI3nD.bmtp) (3.6 KB)

Steve Caldwell  
Bome Customer Care

* * *
_Also available for paid consulting services: bome@sniz.biz_

---

<div class="post-metadata">

**Author:** ![Jack.Harris1](https://forum.bome.com/letter_avatar_proxy/v4/letter/j/c89c15/32.png) [@Jack.Harris1](https://forum.bome.com/u/Jack.Harris1)\
**Post date:** [September 8, 2025, 3:38am UTC](https://forum.bome.com/t/brick-walled-with-scaling-values/7562/3 "2025-09-08T03:38:08Z")

</div>

Steve:

Ahh man… - Can’t believe I didn’t see scaling to 24 and then offset to 12. Makes perfect sense. I was thinking setting values for 0-63 and 64-127 from the knob with IF - THEN and then trying to scale each set to pos and neg semitone values. And the All Notes Off works fine. Wouldn’t have thought of the timer function for this.

Port Alias’ - I see that you gave _Bome MIDI Translator 1 Virtual Out_ the alias of _Application_. Isn’t that redundant? I thought _Bome MIDI Translator 1 Virtual Out_ was already an alias? There’s a video - the Introduction to BMT I think that says ‘Use these!’

Many thanks !  
JH

---

<div class="post-metadata">

**Author:** ![SteveC](https://forum.bome.com/user_avatar/forum.bome.com/stevec/32/8250_2.png) [@SteveC](https://forum.bome.com/u/SteveC)\
**Post date:** [September 8, 2025, 12:04pm UTC](https://forum.bome.com/t/brick-walled-with-scaling-values/7562/4 "2025-09-08T12:04:11Z")

</div>

> [@Jack.Harris1](#):
>
> Port Alias’ - I see that you gave _Bome MIDI Translator 1 Virtual Out_ the alias of _Application_. Isn’t that redundant? I thought _Bome MIDI Translator 1 Virtual Out_ was already an alias? There’s a video - the Introduction to BMT I think that says ‘Use these!

Yes, the original alias was an ‘auto alias’ that is created to make Bome MIDI Translator Pro backward compatible from a previous version. I just like my alias names to make sense to me. It is more a matter of preference here.

I’m glad things are working for you!

Steve Caldwell  
Bome Customer Care

* * *
_Also available for paid consulting services: bome@sniz.biz_

---

<div class="post-metadata">

**Author:** ![Jack.Harris1](https://forum.bome.com/letter_avatar_proxy/v4/letter/j/c89c15/32.png) [@Jack.Harris1](https://forum.bome.com/u/Jack.Harris1)\
**Post date:** [September 8, 2025, 3:31pm UTC](https://forum.bome.com/t/brick-walled-with-scaling-values/7562/5 "2025-09-08T15:31:01Z")

</div>

Yep, makes sense. Great stuff - Thanks again,

J
