Msb Lsb in Midifile

Hi,

i have a Midifile that cointains only msb and lsb.
I want Translater to receive both and open a Programm.

Is it not possible to write them directly? Like control 0 0 control 32 0?
Or how can i do this?

thx for help
Andreas

EDIT: I have more Problems.
I use Midi Monitor to what Messages are incomming
Midi Monitor shows

15:54:38.055 From Digital Workstation Anschluss 1 Control 1 Channel Volume (coarse) 79
15:54:38.055 From Digital Workstation Anschluss 1 Control 1 Expression (coarse) 127
15:54:38.069 From Digital Workstation Anschluss 1 Control 1 Bank Select 0
15:54:38.069 From Digital Workstation Anschluss 1 Control 1 Bank Select (fine) 0

Translator shows in the Log Window:
1: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 03 03 00 16 00 F7
2: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 03 03 02 09 F7
3: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 03 03 03 09 F7
4: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 03 03 0B 10 F7
5: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 03 04 00 15 08 F7
6: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 03 04 0B 35 F7
7: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 03 13 0C 7F F7
8: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 00 01 00 F7
9: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 20 41 00 F7
10: MIDI IN [Digital Workstation Anschluss 1]: F0 43 73 01 52 25 00 01 01 00 01 07 F7
11: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 00 01 00 F7
12: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 20 41 00 F7
13: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 01 40 F7
14: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 02 0E F7
15: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 03 07 F7
16: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 05 3F F7
17: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 06 1C F7
18: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 07 07 F7
19: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 09 42 F7
20: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 0A 26 F7
21: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 0B 11 F7
22: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 0D 41 F7
23: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 0E 2E F7
24: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 0F 07 F7
25: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 11 43 F7
26: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 12 33 F7
27: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 40 13 07 F7
28: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 40 40 00 F7
29: MIDI IN [Digital Workstation Anschluss 1]: F0 7E 7F 09 01 F7
30: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 00 01 00 F7
31: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 0C 40 F7
32: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 0D 40 F7
33: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 20 41 00 F7
34: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 2D 40 F7
35: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 2E 00 F7
36: MIDI IN [Digital Workstation Anschluss 1]: B0 07 4F
37: MIDI IN [Digital Workstation Anschluss 1]: B0 0B 7F
38: MIDI IN [Digital Workstation Anschluss 1]: B0 00 00
39: MIDI IN [Digital Workstation Anschluss 1]: B0 20 00
40: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 00 01 00 F7
41: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 20 41 00 F7
42: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 40 05 00 F7
43: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 5A 00 F7
44: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 5B 7F F7
45: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 56 40 F7
46: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 57 40 F7
47: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 58 00 F7
48: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 59 00 F7
49: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 5C 40 F7
50: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 5D 40 F7
51: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 5E 40 F7
52: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 5F 40 F7
53: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 02 01 60 40 F7
54: MIDI IN [Digital Workstation Anschluss 1]: F0 43 10 4C 08 00 14 00 F7

In the Capture Window i only see the same
Midi F0 43 7E…
Raw capture is not on
Why?

Hi, Lines 38 and 39 is a 14 bit CC for CC0 on MIDI CH1. You could set up an incoming trigger as such and capture the incoming message that way. Lines 36 and 37 are 7 bit CC messages CC7 on MIDI CH1 and CC11 on MIDI CH 1 repectively. The reset are SysEX messages.

MIDI IN and OUT will only show raw MIDI. You should be able to capture in non-raw MIDI form by clicking “capture” within a translator input box and then pick the message you want.

Or you can just put in Raw MIDI as follows and use the values of qq and rr where qq is msb and rr is lsb.

image

To combine them into a single value you would use a rule like this.

// shift bits up 7 bits into MSB and put in variable tt
tt=qq<<7
// or with lsb 
tt=tt|rr
// tt now contains the 14 bit value

For SysEX items like 43-53 where they all have the same patterns you could do something like this

Incoming

F0 43 10 4C 02 01 qq rr F7

and then use rules to capture or manipulate the values of the bytes that change.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

My first Problem is in the capture window i have only raw.

Sorry but im a musician :slight_smile:
When i try to write it in this Format
F0 43 10 4C 02 01 qq rr F7
is this Hex?

So this is Msb0 Lsb0
F0 43 10 4C 02 01 00 00 F7?

And this is Msb0 lsb1
F0 43 10 4C 02 01 00 01 F7?

i dont understand this

Blockquote
To combine them into a single value you would use a rule like this.
// shift bits up 7 bits into MSB and put in variable tt
tt=qq<<7
// or with lsb
tt=tt|rr
// tt now contains the 14 bit value

Yes, this is hexadecimal. This is a SysEX message (anything that starts with F0 and end with F7), and each vendor has it’s own method for how these work so there is no human translation for SysEx messages. You have to look at the vendor MIDI implementation document (if they have one) to understand what is happening.

These look like Yamaha proprietary SysEx messages. You would need to look into their documentation to see what they mean. The second byte is the manufacturer assigned. See this. I did a google search on F0 43 and it took me to a Yamaha resource site.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

When this is hex F0 43 10 4C 02 01 00 00 F7

What is is this?
B0 00 00 b0 20 00

And how do i convert decimal in this Format?

All MIDI Messages are displayed in Hex.

You can lean about the format of these messages at multiple locations.

I would start with midi.org

This is a 14 bit CC message which is also considered to be 2 7 bit CC messages.

For first 3 bytes

B - Means it is a CC message
0 - Means MIDI CH 1 (MIDI channels 1-16 are 0-F)
00 - CC number 0
00 - Value 0

For second 3 bytes

B - Means it is a CC message
0 - Means MIDI CH 1 (MIDI channels 1-16 are 0-F)
20 - CC number 32 (20 Hex)
00 - Value 0

All MIDI message begin with a control byte (with bit 7 high)
8 - Note Off
9 - Note ON
A - Channel Aftertouch
B - CC
C - Program Change
D - Polyphonic Aftertouch
E - Pitch Bend
F - Various

You can use a programmers calculator to convert Hex to decimal. Or ask Goole
‘What is hex b0 in decimal’ and you will likely get returned to a result with various hex calculators. Windows Calculator has an option to set it as a ‘Programmers Calculator’ which will also do that for you.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

OK, i had a Phonecall with Yamaha.

My Yamaha Keybord only send MSB and LSB as CC#0 with value and CC#32 with Value.
It will not send any Sysex.

So how can i add 2 Controllers?
In ur first answer you said click on the message you want, when i click i have 1 controller, Msb or Lsb.
how can i add the second one?

Hi,

Perhaps you can tell me what outgoing action you want to take when receiving these messages. In your case, these would be bank change messages coming in from your keyboard.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

outgoing i want to execute a file.
So it is not possible to use both commands?

Do you want to execute a file on just a certain bank change number or any bank change number? Do you want to execute different files depending on which bank change you are sending?

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

For every msb lsb kombination a different file.

I will work with samples in Ableton Live and when i change a song in my Keyboard i want to load another sample library.

Perhaps i work with a combiantion of Prg Chg and Bankselect?

OK, so with MSB-LSB you have a combination of 16,384 Banks. Each Bank can have up to 128 Program changes. This would be for each available MIDI channel Usually with MIDI nothing happens until the program change occurs. You could set it up so the CC Bank changes just capture the current Bank in a global variable and then have translators that execute files based on the global variable (current bank) and the program change number.

The attached file will do this.

The first translator sets the current bank number in the global variable GA when the bank change message arrives.

// get bank number into ga
tt=qq<<7
tt=tt|rr
ga=tt

The second translator opens Windows Notepad with the name program%pp%.txt where %pp% is the program number so program1.txt program2.txt etc. but first it checks to see if the current bank number is 0 in the rule. If the current bank number is not 0, nothing happens.

//check if it is bank 0
if ga!=0 then exit rules, skip Outgoing Action

The outgoing action is this. If you are Mac, it will be quite different so this is for example only. You could open a different Ableton Live Project File depending on the incoming bank. Keep in mind the old project file may or may not stay there. It really depends on how your application manages multiple instances. I’m not sure if Ableton Live closes an existing project file when you open a new one.

Here is the example Bome MIDI Translator Project file.

Execute-File-W-Program-Change.bmtp (1.3 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thank You!!!

This works, but one more Problem :slight_smile:

Ableton always ask me to stop before loading another Track.
Is it possible to send a midi note before i execute?
I hope you understand what i mean.

When i send the LSB and MSB ableton loads a file. But i need to send a stop command to ableton a second before i execute the file. I can send it through the IAC Driver on my mac, but what do i have to do in Transaltor? Ableton stops when Note G8 is send on Midi Channel 16.

Thx for your help
Andreas

Hi, Try the below.

I added another translator to send a note, then put a 50ms delay on the translator to open the file.

I also set up MIDI aliases as follows. You will need to assign them to the physical ports that you use. You could certainly use an IAC port if you want.

image

Execute-File-W-Program-Change-w-stop.bmtp (1.7 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thx for your Help,

i had it work but with more problems, i come back later,
my question now, how can i get back the “select midi device” Dialog Box?

EDIT:
Following Problem, the Stop only works with the first file.
I attached what i´ve done.
Do i need the stop ableton for every file?
Test.bmtp (2.0 KB)

EDIT 2:
I found that i need to add the stop ableton for every file. Right?

See the below animation.

I believe so.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Yes ive got it now. i have to stop for every file.
And now i test it with 10 files and send i buy your software.

Thx for your great help
Andreas

Sounds great! Yes, as a user and support person, I believe Bome Software is outstanding. I use it quite extensively.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Hi,

one more question. Is it possible to change all path at once?
I added my bmtp file so u can see (perhaps) what i mean.
I start files out of the folder Live. But sometimes i need to start out of the folder alone.
So i need to change only the folder Live to alone.
I dont think its possible but perhaps???

thx for your help
Andreas
Andreas.bmtp (3.8 KB)

You will need translators set to the absolute path of the executable. If you want to change this in different circumstances I recommend that you create a new preset with all of the translators with the alternate path and then set up a way to switch presets having one only open. One with the folder “Live” and the other with the folder “alone” on the path.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz