Powerpoint slide change - Program Change to outgoing keystrokes

Newbie here, needing some help. I would like to use midi program changes from from DAW to output keystrokes. I would like to i.e. have midi program change “65” for example to output keystrokes “65”. Can different inputs output different outputs? I would like to have a program change select different slides in Powerpoint.

Thanks

Yes, you can take any incoming MIDI message and output any keystrokes you want. In most cases, the target application (ie Powerpoint) will have to be the application currenty in focus for it to work. Some applications, however can accept “injected keystrokes” on the Windows platform, however.

Steve Caldwell
Bome Customer Care


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

Thank you for the very quick reply. My specific problem is, I would like to input a patch change number (0 - 127) and output that same number as keystroke text. That way I can have midi files change powerpoint slides by slide number. The input number would change according to the file being used. How do I make the output change to match the input without creating 128 translators? I’m sure it could be set up in the rules somehow, but I’m not sure how.

Thanks again

Hi,
Please find the attached. I originally did this to translate CC to outgoing digits but modified it for PC instead. Right now it only sends the value of the CC (0-127) followed by RETURN but if you want it to send in addition another character at the beginning you can modify translator 4.0 with this message.
The way it works is it disects the value of the PC and then looks up the value to send the required keystroke for the 100s 10s and 1s digits.

Steve Caldwell
Bome Customer Care


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

PC-to-Keystrokes.bmtp (9.6 KB)

Thank you so much. I really didn’t want to enter 127 translator lines.

Thanks

Nope, just the incoming Program Change and the outgoing digits (with the right timing)

Hi,
I created a version of the script that uses even less translators and only 1 global variable.

The global variable ga is bit mapped. The lowest 4 bits is the sequence number of the digits and I also use this to create the timing delays in the translators

The next higher 4 bits is the 100’s digit and will be 0-9
The next higher 4 bits is the 10’s digit
The next higher 4 bits is the 1’s digit

So I disect the value of ga and then send their digits one at a time in sequence but before I do this I sent a optional prefix set of keystrokes (which right now that translator is disabled).

For the hundreds digit if it is 0, then I suppress it. For instance for a value of 64 I want to send just 64 and not 064.
I do similar for the 10’s digit but only if the hundreds digit is also 0. So a value of 6 will be sent as just 6 and not 06 or 006.
When all digits are sent, I send the Post message which is just a Return and then set the ga back to 0.

So a total of 17 translators now with a single global variable controlling everything.

Note, that if you send PC’s too fast (before the last digits are sent), the PC will be ignored. You would not want random digits in the middle of your current output string. This might only be a problem if you are using a knob to send PC’s at a very fast rate.

I also used global variable zz but only for debugging. (1.8.5 beta has some really need debugging features).

Program-Change-Send-Keystrokes.bmtp (7.0 KB)

Steve Caldwell
Bome Customer Care


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

Thanks again for your help.

Thanks again for your help. I find myself needing your advice again. The preset you sent me works great and my music partner has gone overboard using it. She has already filled the presentation we are using with 128 slides, which is no problem for Powerpoint, but our midi program changes only go to 128 (127). Do you have any suggestions how I can generate numbers higher than 128?
Thanks

Hi, how many pages do you want to access? Although MIDI values for program changes is limited to 128 (0-127), you can use something like a Bank change message to extend the range if you would like. Normally CC0 and CC32 represent bank numbers and since each is 7 bits that would leave you with 16384 (0-16383) banks and each bank would have 128 program change slots which would leave a total of over 2,000,000 million pages. Probably way more than you would need for a PowerPoint presentation although the incoming MIDI message would be more complex. With that said, just implementing within 8 banks would get you over 1000 and if you kept it as only a 3 digit number of 999 you could still do it within 8 banks.
So we could change the original from 1-128 (because I doubt if any slide deck has a page 0). Then with CC32 value 1 and PC of 0 you could get 129-256 and so on. A combination of the CC and bank change would generate a 3 digit number of up to 999 ( so that we don’t need to add digits). You could of course go higher but would need to add a 1000s digit.

Another way you could implement is putting different page ranges with Program changes on different incoming MIDI channels. So MIDI CH 1 could handle the first 128, MIDI CH 2 the next and so on.

You could also use relative CC messages to increment or decrement the current page number, with perhaps different CC’s each just sending 0-9 to handle the column value for 100s, 10s, and 1s.

The possibilities are really limitless.

The concept is the same as I already showed you but the solution is beyond the scope of free support so if you are interested in paid services, please email me or feel free to go with the template I provided you to modify it yourself.

Steve Caldwell
Bome Customer Care


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

Thanks for all the help. I think I will try the bank change method as I don’t think she has more than a couple hundred slides. By the way, I love the app. It has added a whole new layer to our shows.

Thanks

Sounds good!

Steve Caldwell
Bome Customer Care


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

Once again thank you. Using the bank/program combination works great.

Thanks

You are welcome @glenn-bullion !

Need your advice once again. My video/powerpoint director is rapidly approaching 1000 slides in powerpoint. I’m not sure of how to add a 1000’s digit to the project. Any suggestions?
Thanks

Did you modify the script I sent you to go over 128? What I sent you only goes to 128. We would need to modify to go over 128 with bank change as I described and then expand the methodology to 4 digits from there. I’m afraid, doing this would not be included in free support, however, but you could reach out to me via email for a private consulting estimate.

Steve Caldwell
Bome Customer Care


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

Yes I did modify it to increment slides by channel number and pc. I think I see what to do. Thanks for your help.

Hi,

This will take you up to page 9984. I didn’t work out how to strip leading zeros in this version though.

For ever bank change (CC0) up it adds 128 to the page number. I scaled the bank signals so they don’t go beyond bank 77 and overflow your digits.

I also started with page 1 for PC0 bank 0 since there really isn’t a page 1.

Finally, I put focus on the application before sending page numbers. I tested with edit+ editor but you should probably use powerpoint. You can disable that translator if you already have focus.

Program-Change-Send-Keystrokes-1000s.bmtp (9.3 KB)

Steve Caldwell
Bome Customer Care


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