Giter Club home page Giter Club logo

midi2osc's Introduction

Midi2Osc

this is a simple Midi to OpenSoundControl (aka OSC) bridge. it responds to midi messages on a midi input, and forwards them to OSC messages. see http://opensoundcontrol.org/ for more information about OSC.

at the moment, it simply forwards all midi messages as a simple 'm' (midi) type OSC message to OSC path /notes

Using

when the program runs, you should see a small window that looks like this:

Screenshot

choose a midi input device from the first drop down. if you don't have a hardware midi input interface, or you want to route midi from a DAW running on the same computer, you need a midi loopback device. on mac, you can use OSX's built in IAC driver. see https://help.ableton.com/hc/en-us/articles/209774225-Using-virtual-MIDI-buses for an example for how to set it up with ableton, but it applies to any software that can output midi.

on windows, you can use a tool like midiox.

clicking on the keyboard also generates midi events. if the midi input is working, you'll see messages at the bottom of the window.

for the OSC output, type the IP address of the device you want to send the OSC messages to. it should be listening for OSC messages of type 'm' (midi) on OSC path /notes

I'll leave you to experiment with the other controls

Building

I've included pre-built binaries for mac and pc in the /binaries folder

at the time of writing, the code has been compiled & tested on mac & windows. on mac, just run 'make'. you need to have portmidi and glfw3 installed. I used https://brew.sh/ to install these dependencies.

on windows, only the 32-bit build is functional (linking to precompiled 32-bit portmidi static lib). I've included a portmidi static lib in the repo as I found it hard to compile from source.

Dependencies

this little program uses the wonderful 'Dear Imgui' library by Omar Cornut https://github.com/ocornut/imgui

it also uses the portmidi library for cross platform midi input http://portmedia.sourceforge.net/portmidi/

it also uses glfw and gl3w, embedded as part of the Dear Imgui submodule, since it is based on the glfw/gl3 imgui sample.

Issues

This program is provided without any support by Alex Evans. It's licensed under the MIT license. Do what you want with it, but I do not have time to support it. in other words, use at your own risk! And to be clear, this is a personal project and is entirely unsupported by my employer. please don't hassle them. Although it is designed to be compatible with Dreams for the PS4, and that is the reason I wrote it, it is not part of Dreams, not endorsed by Sony or MediaMolecule. You also don't need Dreams to use it - it is a general 'midi to OSC' bridge, useful anywhere you want to send Midi messages to an OSC device or program. I just find it useful to use with dreams, YMMV.

midi2osc's People

Contributors

johanfforsberg avatar kimau avatar mmalex avatar ocornut avatar sgdc3 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

Watchers

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

midi2osc's Issues

Unintended controller switch causes game to crash (Using ds4 and ps moves)

At first I though the issue was playing rapid fast notes in performance mode using osc with both ds4 and ps moves (but its because the movement triggers the ps moves on my desk)

So the issue is when you have both the ds4 and ps moves on using one or the other, if the other controller (s) trigger to be active, this causes the game to crash going to the the report screen.

What ya think Alex? Thanks for the app, I've been jamming and making tunes in the background, loving this.

main.cpp:296:9: warning: 'FSFindFolder' is deprecated: first deprecated in macOS 10.8 [-Wdeprecated-declarations]

Perhaps this is resolved in a newer version of dearimgui

main.cpp:296:9: warning: 'FSFindFolder' is deprecated: first deprecated in macOS 10.8 [-Wdeprecated-declarations]
    if (FSFindFolder(kUserDomain, kCurrentUserFolderType, kDontCreateFolder, &fsref) == noErr && FSRefMakePath(&fsref, path, sizeof(path)) == noErr)
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Folders.h:286:1: note: 'FSFindFolder' has been explicitly marked deprecated here
FSFindFolder(
^

macOS usage instructions would be helpful

I found to use the macOS binary provided, the following packages needed to be installed using homebrew:

brew install glfw portmidi

It would be useful to either rebuild the app with these libraries included inside the app bundle, or provide instructions in the readme for how to satisfy it's requirements using homebrew

Run headless

If midi2osc could be run from the command line without GUI, then it can live in a small dedicated device (e.g. a raspberry pi) without a screen and "just work"

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.