GithubHelp home page GithubHelp logo

charlieroberts / midistroke Goto Github PK

View Code? Open in Web Editor NEW
130.0 13.0 44.0 103 KB

MIDI to Keystroke Macro convertor for OS X

Home Page: http://charlie-roberts.com/midiStroke/

License: Other

Objective-C 99.50% Rich Text Format 0.50%

midistroke's Introduction

midiStroke

MIDI to Keystroke Macro convertor for OS X

THIS PROJECT IS NOT ACTIVELY MAINTAINED. IF YOU ARE INTERESTED IN MAINTAINING IT PLEASE LET ME KNOW.

While some users have reported success with Catalina, I'm avoiding upgrading from Mojave at all costs and have no way of debugging in Catalina currently. I'm also in the slow process of moving to Linux (partially thanks to my 2018 MBP easily being the worst computer I've ever owned)... somone else should really take this project over.

midistroke's People

Contributors

charlieroberts avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

midistroke's Issues

Losing the MIDI input when another device gets unplugged

There's a slight issue with midistroke's ability to remember your midi input.

As far as I can tell the way the program remembers the last used MIDI input is by remembering it in the context of the list of inputs that were active at the time it was selected.

The reason why this is key is because when ANY of those inputs is no longer seen (say because its been disconnected) Midistroke goes into input 'none' (even if the actual MIDI input that was selected is still plugged in an active)

screen shot 2018-04-07 at 9 41 31 pm

In my case a couple of my midi controllers are connected via bluetooth and sometimes they lose the connection. When that happens Midistroke goes into 'none', even though the midi device I'm using for the program is still connected and active.

There's no current workaround for this

Ideas to future development. I can try to help also!

Hello, I really love midiStroke. I was looking for a few new features to be added in the future.
1: The ability to use variable midi input, such as Faders and Rotatory pots.
2: The addition of Fn modifier, to be able to do other commands as Play/Pause, Next/Previous song and VolumeUp and Down.

I would like to support the development of the project, however, my programming abilities are not quite good.

Cheers, Charlie!

When launching a new scene in OBS, I have to go back to midiStroke window for key bindings to work again

Soo close to working perfectly....once I've configured my MIDI device to keystrokes, and assign those to OBS hot keys, it works in the current scene I'm on. Then if I switch scenes, and switch back to the scene that was working, the MIDI keys don't work. If I switch to the MIDI stroke window, then back to OBS, the MIDi keys work again.

When I use the computer keyboard, and switch scenes, the hot keys work as normal when switching back to the original scene. It's only the MIDI keys that aren't tracking between scene switches.

Thanks for working on this!!
Screen Shot 2021-02-17 at 5 31 01 PM

Modifier key mode not available?

In the help menu, it says, "If you would like to use midiStroke to simulate a typewriter, look in the preferences. Here you can enter note numbers that will turn modifier keys on when a note is pressed and off when one is released. Thus pressing note C3 could simulate pressing the Shift key and releasing C3 would simulate the release of the Shift key. Modifiers are available for Shift, Command, Option and Control."

However, I don't see any Preferences menu.

Also, when only a modifier key is selected (with an empty "keystroke" section), the app crashes upon receiving the triggering message.

CC 64 is treated the same way as Note 64 (E3)

Hello. I'm trying to do some mapping using my sustain pedal connected into MIDI keyboard. It sends CC 64 127 when pressed and CC 64 0 when released. When I do mapping in midiStroke it looks like the keystroke is triggered not only on CC 64 but also on regular MIDI note 64 which is E3. Is there a way to trigger keystroke only for CC values? I thought entering value in the value column in GUI did that, but apparently that's not the case

EDIT: actually it looks like someone has raised a PR fixing exactly that here #5. Would that be possible to get it merged and released new version? Would be super cool. Thanks!

Cannot get info from some MIDI devices

I have UR44 audio/MIDI interface and AG06 audio interface connected on my mac. (AG06 doesn't have MIDI capability but mysteriously is observed as MIDI device from the OS)
My mac runs macOS Monterey.

MIDIGetNumberOfSources returns 3, which makes sense because the OS adds IAC driver on top of the two devices I've listed above.
So the program loops over three MIDI sources to get their properties by MIDIObjectGetStringProperty.
And It returns proper values for AG06 and IAC driver, but it doesn't for UR44.
It just gives me null(=0).

As an experiment I forced the pulldown to show the index at which UR44 should have been displayed and tried selecting that , but it just didn't work.

I'm sure that UR44 is recognized by the OS because other MIDI app(namely Logic Pro X) can use it.

I also tried connecting other device(UM-ONE), which appeared on the pulldown, but the message from it couldn't be received.
I'm not sure if UM-ONE driver has any problems or it's the same issue with UR44.

I still haven't figured out many points. I'll check them one by one later.

  • Does it happen only on UR44?
  • When did it start happening? From Catalina or from Monterey?
  • Will the device work if the info is obtained? Possibly not as far as seeing the result with UM-ONE...?

Not recognizing Virtual Midi input

Hi, I'm trying to get my Maschine Plus working. One thing I find is that Midistroke does not recognize the Virtual midi port as it is where the Maschine is sending midi messages to. Does anyone know how to solve this problem? Thank you very much!
ss 2020-12-02 at 19 38 43

Only for os X

Pls add *nix support. It should be easier than with Windows. Im open to help you!

CTRL key stuck on Catalina Beta

I’m trying to program Novation Launchpad mini as macro trigger for Premiere Pro.

For a column of pads I’m setting to toggle audio channels and other audio channels.

The keyboard shortcuts I set for it are CNTRL COMM ALT 1 for Video 1, CNTRL COMM ALT 2 for Video 2 and so on and COMM ALT 1 for Audio 1 and so on.

But looks like the CTRL is stuck after use a video toggle.

So after use it once any audio toggle (COMM ALT) will work as video (CTRL COMM ALT).

When I go to midistroke in foreground and come back to Premiere looks like CTRL is released and audio toggles works until I press again any video toggle.

Catalina beta - does not appear to generate keystrokes

I had a working implementation where I was using Ableton to control Ecamm live via MIDIstroke. It was working as recently as April/May.

The combination no longer works. I've verified that Ableton is sending the correct MIDI controller messages on IAC Bus 1. I've confirmed that midiStroke has the correct permissions in System Preferences > Security & Privacy > Accessibility. I've confirmed that midiStroke is listening to IAC Bus 1. But it does not appear to generate keystrokes.

Is there an app that I can use which will verify that midiStroke is generating the keystrokes?

Global keystrokes

Hi Charlie,

It looks like your midiStroke app does most of what i need. This isn't an issue, per-se, but I wasn't sure how to contact you. Sorry.

If I have an application that uses global shortcuts, will I be able to trigger them no matter what app is currently active? E.g., I have a time tracking app that uses a global hotkey --- I'd like to trigger that hotkey using my midi keyboard no matter what app is currently active.

Thanks!
-Adam

RFE support multiple assignment tables

Thanks – it is a wonderful little app that does what it should. And I have figured out that the file …/Application Support/midiStroke/midiStroke.cdcmidistroke stores the assignment table. Hence it is possible by managing these files to support several mappings.
It would be a nice enhancement if this can be an official feature of midiStroke.

Support multiple MIDI sources at the same time

Hi Charlie,
First and foremost, thank you so much for creating and maintaining midiStroke! 🙇‍♂️

Problem

I am currently trying to have my freedrums kit work with Clone Hero, which doesn't support MIDI devices, but there are workarounds. Once connected, the freedrums appear as 4 Bluetooth MIDI devices:

  • one for each hand sensor, and
  • one for each foot sensor.

Theoretically, if I was to have mutually exclusive keystroke mappings for these, I could have a pretty realistic way to play drums in-game.

However:

  1. Unless I'm mistaken, I don't think midiStroke can monitor all of them simultaneously at the moment. Is that indeed correct?
  2. All 4 devices appear with the same model name, preventing any kind of selection, and therefore, mapping:
    image

Potential solutions

  1. Multiple MIDI sources:
    1. I may be able to work around this by copying the midiStroke.app file multiple times, renaming the 4 copies to have distinct names, and starting them all at the same time, each copy monitoring a separate device. Pretty crude though.
    2. Is there any constraint regarding that feature?
  2. Distinct names:
    1. I also wasn't able to work around that issue.
    2. I suspect the issue to be around this line of code, where the dropdown gets populated.
      OSStatus modelCheck = MIDIObjectGetStringProperty(source, kMIDIPropertyModel, &pModel);

I'm willing to have a closer look at the code and open a pull request to try to fix this (these) issue(s). Would you have any suggestion?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.