webmidi | Send and receive MIDI messages | Audio Utils library

 by   djipco JavaScript Version: 3.1.9 License: Apache-2.0

kandi X-RAY | webmidi Summary

kandi X-RAY | webmidi Summary

webmidi is a JavaScript library typically used in Audio, Audio Utils applications. webmidi has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can install using 'npm i webmidi' or download it from GitHub, npm.

WEBMIDI.js makes it easy to interact with MIDI instruments directly from a web browser or from Node.js. It simplifies the control of physical or virtual MIDI instruments with user-friendly functions such as playNote(), sendPitchBend() or sendControlChange(). It also allows reacting to inbound MIDI messages by adding listeners for events such as "noteon", "pitchbend" or "programchange". In short, the goal behind WEBMIDI.js is to get you started with your web-based MIDI project as quickly and efficiently as possible.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              webmidi has a medium active ecosystem.
              It has 1376 star(s) with 109 fork(s). There are 41 watchers for this library.
              There were 3 major release(s) in the last 12 months.
              There are 2 open issues and 162 have been closed. On average issues are closed in 24 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of webmidi is 3.1.9

            kandi-Quality Quality

              webmidi has 0 bugs and 0 code smells.

            kandi-Security Security

              webmidi has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              webmidi code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              webmidi is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              webmidi releases are available to install and integrate.
              Deployable package is available in npm.
              Installation instructions are available. Examples and code snippets are not available.
              webmidi saves you 45126 person hours of effort in developing the same functionality from scratch.
              It has 1247 lines of code, 0 functions and 88 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed webmidi and discovered the below as its top functions. This is intended to give you an instant insight into webmidi implemented functionality, and help decide if they suit your requirements.
            • Parse data file
            • Generate the footer page
            • Creates the project
            • Get sponsors .
            • Generate JSDoc output files
            • Draws the keys on the channel
            • Display presentation .
            • renders the home page
            • Initialize the application .
            • Detect WebM MIDI input .
            Get all kandi verified functions for this library.

            webmidi Key Features

            No Key Features are available at this moment for webmidi.

            webmidi Examples and Code Snippets

            No Code Snippets are available at this moment for webmidi.

            Community Discussions

            QUESTION

            testing with jest to update a react state inside a rejected promise
            Asked 2022-Mar-06 at 16:34

            This is a continuation of this question. I have made a few changes that simplifies the question(I believe) and changes it drastically.

            I have seperated creating the hook and initialization of midi events.

            ...

            ANSWER

            Answered 2022-Mar-06 at 16:34

            Your hook is async so u need to wait for the next update. Here is the docs that talks more about it.

            Source https://stackoverflow.com/questions/71351203

            QUESTION

            How to switch a stream of events between "output devices" in rxjs
            Asked 2021-Apr-03 at 06:44

            I have one rxjs subject that is a stream of WebMidi notes (a note is an array of numbers), and another subject that is a stream of selected midi output devices:

            ...

            ANSWER

            Answered 2021-Apr-03 at 06:44

            This (or something close) should work.

            Source https://stackoverflow.com/questions/66927284

            QUESTION

            JS - Calling class methods inside of callback function
            Asked 2021-Jan-31 at 17:38

            I'm currently having a problem and don't know how to solve it correctly.

            I'm developing a web application with js using the WebMidi API.

            I want to load all midi devices into a dropdown after WebMidi is loaded. As far as I understood it I have to pass the enable function of Webmidi a callback function:

            ...

            ANSWER

            Answered 2021-Jan-31 at 17:38

            WebMidi.enable is an asynchronous function, meaning it allows you to specify what to do once WebMidi is enabled. The problem is that you're not using this functionality to full power.

            Imagine you're the guy who shoots the gun to start a race: your code is the equivalent of shooting and turning your eyes away from the race but still wanting to know when the race ends. If you want to do something right after the race ends, better look at the race, right?

            Right now, the constructor function starts the WebMidi.enable race and immediately tries to fill the dropdown. That's not what you want - you want to fill the dropdown when the race ends.

            To resolve your problem, make MidiListener.enable take a callback function that gets executed when WebMidi.enable is done without errors. This will allow you to do something right when WebMidi.enable finishes.

            Source https://stackoverflow.com/questions/65968515

            QUESTION

            How do I make an object returned by the browser globally available then set a function as a property?
            Asked 2020-Aug-11 at 19:15

            I am trying to access MIDI inputs in a ClojureScript project, using something like, in JS:

            ...

            ANSWER

            Answered 2020-Jul-05 at 07:24

            QUESTION

            How do I handle a standard .then style callback in clojurescript?
            Asked 2020-Jul-03 at 07:59

            Suppose I wanted to ask something of the browser, like this JS example:

            ...

            ANSWER

            Answered 2020-Jul-03 at 07:59

            You have various options: then is just a function, so you can just use (.then ..). If the thenable is a Promise object, promesa https://cljdoc.org/d/funcool/promesa/5.1.0/doc/user-guide has a nice interop story.

            It's also pretty simple to add some macro syntax sugar around promises, as I've done here: https://gist.github.com/beders/06eeb1d8f49de715c6bd2b84f634cff6

            Source https://stackoverflow.com/questions/62709926

            QUESTION

            why is requestMIDIAccess working locally but not remote?
            Asked 2020-Apr-13 at 21:30

            Playing around with this javascript library https://www.w3.org/TR/webmidi/#introduction I got some basic functionality working and I was happily able to send midi notes to my syntheseizer and hear it working!..

            However, when I wanted to try out the exact same javascript code, but hosted remotely, I got this error:

            ...

            ANSWER

            Answered 2020-Apr-13 at 21:30

            navigator.requestMIDIAccess() is only available in a secure context, which means your remote host must serve your resources via HTTPS.

            Resources served from localhost are considered to be in a secure context, whether delivered via HTTPS or HTTP.

            Connect to your remote host using HTTPS instead of HTTP and that should resolve the problem.

            Source https://stackoverflow.com/questions/61196127

            QUESTION

            Clearing MIDI output buffer
            Asked 2020-Feb-02 at 05:03

            Using the Web MIDI API, I can send some messages:

            ...

            ANSWER

            Answered 2020-Feb-02 at 05:03

            It is indeed not yet available. You can follow this issue to get updated of any advancements.

            Note that Firefox has a flag to allow the Web Midi API, might worth a try to see if they do handle it.

            Source https://stackoverflow.com/questions/59991783

            QUESTION

            The Web MIDI API is not supported by your browser - Google Chrome on Mac - when code is run locally
            Asked 2020-Jan-12 at 02:41

            Folks,

            I am trying work on a simple Web MIDI app.

            I already looked up and found out that Google Chrome is the only browser that supports this. So, I installed this but I still get this.

            WebMidi could not be enabled Error: The Web MIDI API is not supported by your browser. at WebMidi.enable (webmidi.min.js:30) at script.js:430 (anonymous) @ script.js:432 WebMidi.enable @ webmidi.min.js:30 (anonymous) @ script.js:430 Promise.then (async) (anonymous) @ script.js:154

            Mac - 10.15.2 Chrome - 79.0.3945.117

            According to this link - https://www.midi.org/17-the-mma/99-web-midi , Chrome definitely has the support.

            Important Note - If I were run the code directly on codepen, it works just fine. So the browser is working. But when I try to run locally, I get the error.

            https://codepen.io/teropa/pen/JLjXGK

            ...

            ANSWER

            Answered 2020-Jan-12 at 02:41

            I've used web-midi with Chromium and Opera on 10.12.6, so I wouldn't say that Chrome is the only browser that has web-midi.

            With Opera I think I had to enable experimental features:

            Source https://stackoverflow.com/questions/59676881

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install webmidi

            The official website site is the best place to get started. Over there, you will find, amongst others, two key resources:.
            Documentation
            API Reference
            Forum
            Newsletter
            Twitter

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • npm

            npm i webmidi

          • CLONE
          • HTTPS

            https://github.com/djipco/webmidi.git

          • CLI

            gh repo clone djipco/webmidi

          • sshUrl

            git@github.com:djipco/webmidi.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Audio Utils Libraries

            howler.js

            by goldfire

            fingerprintjs

            by fingerprintjs

            Tone.js

            by Tonejs

            AudioKit

            by AudioKit

            sonic-pi

            by sonic-pi-net

            Try Top Libraries by djipco

            hpgl

            by djipcoJavaScript

            webwelder

            by djipcoJavaScript

            fitc2016-workshop

            by djipcoJavaScript

            fullscreenmanager

            by djipcoJavaScript

            chrome-apps-serialport

            by djipcoJavaScript