Giter Club home page Giter Club logo

linnstrument-light-guide's Introduction

LinnStrument Light Guide Support

Description

This web app allows you to visualize a LinnStrument a modern, Web MIDI enabled browser. It also shows notes that are currently played and optionally optionally guide notes from a second source. If such guide notes (also referred to as Light Guide feature) are used, the tool also highlights them on the LinnStrument and the app can compare the played notes to the guide notes. This can be a useful tool for learning to play or to jam along with a second MIDI note source with visual feedback.

Some keyboard learning tools like Synthesia offer a "Light Guide" feature for certain keyboards. LinnStrument is not directly supported by Synthesia, but with this app it is still possible to use the light guide feature. See User Guide for Synthesia.

In principle this app works with any Light Guide source that sends MIDI notes or Light Guide messages.

Pictures and GIFs

Synthesia Light Guide

Demo GIF

User Guide

Any MIDI Source

In principle any MIDI source can be selected as Light Guide input in the app. The MIDI note-on and note-off events from that source will then be visualized and the played notes compared against it. For an example, see Scaler 2.

Scaler 2

I found Scaler 2 to be a very useful input source for Light Guide notes as well. It can play chords but also patterns based on the chords.

  • You need to have a virtual MIDI Loop Device (e.g. loopMIDI) through which Scaler 2 can send its MIDI out to this app.
    • On Windows you can use a tool like loopMIDI
    • You need to setup two MIDI loop ports,
      • One where Scaler 2 can send its MIDI output to, e.g. with the name Loop Back A
      • One where the app can send back the received LinnStrument MIDI notes back (like MIDI Thru) to a VSTi, so you can hear your own notes, e.g. Loop Forward A
  • Start the app and configure
    • Input: Light Guide to use previously setup loop port (e.g. Loop Back A)
    • Forward: MIDI Thru 1 to forward the LinnStrument notes to the DAW VSTi for your own sound (e.g. Loop Forward A)
  • Start a DAW of your choice and setup two tracks:
    • Load Scaler 2 and route its MIDI outport to the Loop Back A device
    • Load a VSTi of your choice and use the MIDI Thru port as input, e.g. Loop Forward A
  • Tip: Also add some drums or other backing track elements and use your DAW time, play and stop controls.

Scaler 2 in DAW

Synthesia

Setting this up with Synthesia is a big fiddly, as it needs a few MIDI loop devices to route MIDI information from and to the right places. Personally, I'm also using a DAW to hear my own notes, synthesia notes and drums / metronome with low latency.

  • You need to have a virtual MIDI Loop Device (e.g. loopMIDI) where Synthesia sends KeyLights to the Output.
    • On Windows you can use a tool like loopMIDI
    • You need to setup at least two Loop ports:
      • One for receiving forwarded LinnStrument MIDI notes (This scripts defaults to Loop Forward A)
      • One for sending Synthesia Light Guide information (This scripts defaults to Loop Back C)
    • Personally, I've set up three more Loop Devices, so I can use my DAW to hear / mix everything with low latency:
      • One for sending Synthesia background MIDI (teachers piano) to my DAW (Loop Back A)
      • One for sending Synthesia drum & metronome MIDI (teachers piano) to my DAW (Loop Back B)
      • One for sending LinnStrument MIDI notes to the DAW (Loop Forward B)

LoopMIDI Setup

  • Optionally: Setup a DAW to hear your own and Synthesias sounds in real-time without latency. I've setup three tracks:
    • Own Piano: Listens to Loop Forward B (which is the MIDI Thru of LinnStrument)
    • Teachers Piano: Listens to Loop Back A to play Synthesia notes
    • Drums & Metronome: Listens to Loop Back B to play Synthesia drum and metronome sounds

DAW Setup

  • Configure Synthesia Music Input:
    • Receive player notes from Loop Forward A

Synthesia Input Config

  • Configure Synthesia Music Output:
    • Send "Key Lights" to Loop Back C, using the "ONE Smart Piano" or any of the channels mode, e.g. "Finger-based channel".
      • The "ONE Smart Piano" option seems to work most reliable?
    • Optional: Send "Background" to Loop Back A.
    • Optional: Send "Percussion, Metronome" to Loop Back B.

Synthesia Output Config

Now everything should be ready. Start the webapp at https://fannon.github.io/linnstrument-synthesia-light-guide/. Make sure to use a modern browser that supports WebMIDI like Google Chrome or MS Edge.

Make sure that the configuration is correct and matches your MIDI input and output ports.

Have fun :)

TODO and Ideas

  • Create a GitHub issue in this project if you have an idea or run into a problem.

Developer Guide

  • Install Node.js if not there
  • Check out this repository
  • Run npm install
  • Run npm run build (to copy over dependencies to webapp)
  • Run npm start

linnstrument-light-guide's People

Contributors

fannon avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

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.