Giter Site home page Giter Site logo

Comments (3)

newlandsvalley avatar newlandsvalley commented on June 5, 2024

What sort of applications do you want to build with this? When I started it, my only aim was to be able to play the MIDI keyboard that I'd just bought!

But I think you're right. If more than one input device connects, clients will need to discriminate between them and the obvious answer is to put the device id into each message. And for output we'd need both a multiplex send and a point-to-point(s) send. I suppose then we could build a MIDI router.

I don't think we'd need to bother too much about lost messages if a device disconnects. It's not as if we're re-inventing MQ with guaranteed once-only delivery semantics. We already listen to disconnections and so the sender will eventually be informed and can change his output options, with the proviso that in-transit messages will be lost.

from elm-webmidi-ports.

rhofour avatar rhofour commented on June 5, 2024

I've got two grid MIDI controllers (a Novation Launchpad Pro and a Midi Fighter) which have LEDs in them. I'm working on a program similar to Melodics (think DDR, but for MIDI controllers) where you can enter a pattern to practice, then get feedback on your timing as you do.

To make either of my controllers light up when you hit them you need to listen for their note on messages then send them back. The first problem I encountered was that my computer also has virtual MIDI Through ports that are connected to each other. So if I listen for a note on event then send it out I'll end up in a loop.

I'll probably start with adding IDs to input, then followup with another PR changing output.

from elm-webmidi-ports.

newlandsvalley avatar newlandsvalley commented on June 5, 2024

@rhofour fixed via f0b3138

from elm-webmidi-ports.

Related Issues (7)

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.