Synthesia Light Guide for LinnStrument

Official support for: rogerlinndesign.com
RELATED
PRODUCTS

Post

Here is a web app that you visualize a LinnStrument layout and paint in how you play it. Additionally it can take external MIDI input (e.g. from Synthesia, Scaler 2 or our DAW) to visualize it as "guide notes" and also highlight them as light guide on the LinnStrument itself. Additionally, it can record and forward your MIDI input, compare it to the guide note input. It automatically detects the LinnStrument layout and transposition.

Here is the link to the web app.
Here is the link to the documentation / GitHub repo.

I created this as a learning tool. For example, you can use Synthesia (https://synthesiagame.com/) to learn to play the LinnStrument with a bit of guidance through MIDI files. Synthesia itself has a nice "Light Guide" feature, but it does not support the LinnStrument directly - with this app it works. But you can just use any MIDI input as guide notes, for example Scaler 2 also works well.

Setting this up is not entirely trivial because you likely need (virtual) MIDI loop devices. This is explained in the documentation with two examples.

Image

Image
Last edited by Fannon on Wed May 03, 2023 4:45 am, edited 4 times in total.
Find my (music) related software projects here: github.com/Fannon

Post

Update: I've now converted my CLI script that you need to checkout and install locally to a web application.

So no need to do that anymore, just open this in a modern browser: https://fannon.github.io/linnstrument-s ... ght-guide/
It also comes with an UI to configure it, which hopefully makes it more accessible.
Find my (music) related software projects here: github.com/Fannon

Post

This looks great. Can I use this on a Mac?
I tried link and it was working.

Post

The URL was changed to this.

Post

Thanks @FranklyFLawless for posting the new link. I've now updated the first post with new links and images.

@Timmy Put: Yes, this should work on a Mac. Have not tried Safari, but with Google Chrome it should work fine. If not, please let me know. However, the critical factor is whether your browser / OS supports the WebMIDI standard already.

General Update: I've now added all features to the app that I originally had in mind, so I'd consider this now a 1.0 release.
Find my (music) related software projects here: github.com/Fannon

Post

Cited from caniuse.com, the Web MIDI API is not supported by Safari, among other browsers, and it is not being considered as an inclusion for WebKit-based browsers.

Post

FranklyFlawless wrote: Thu Apr 13, 2023 8:40 pm Cited from caniuse.com, the Web MIDI API is not supported by Safari, among other browsers, and it is not being considered as an inclusion for WebKit-based browsers.
Too bad. It's really an irony of history, but nowadays Safari is the new Internet Explorer...

I've noticed something interesting with Web MIDI: It's not exclusive to subscribe to it, so you can have multiple applications listening to the same MIDI device and you don't block the device. If I go directly on the Windows driver level, it's blocking.

In theory that means that for some cases, you don't need to setup MIDI Loop devices anymore.
Find my (music) related software projects here: github.com/Fannon

Post

Whoa!
I ended up finding the iPad version of the app.
Which for free, and in app purchase of 7.99
My mind is blown!
The possibility of loading your own midi files and seeing the Linnstrument notes light with falling piano notes(which can have names on them), as well as see a scrolling score!
And if you choose the song waits note by note.
You can loop and set bookmarks in songs by measures. There’s even a free play mode with chord detection. I haven’t tried any apps except another piano app in background but it seems you can play chosen sound source and decide what gets sent to it. This app has made my year and it’s only April!!!
Thanks to Fannon for posting about this.
Incredible
T

Post

I've now updated the main post to describe the project itself a bit better.
Right now I don't get much time to work on it, but the last feature I added was MIDI recording and exporting them as .mid files.
Find my (music) related software projects here: github.com/Fannon

Post

Timmy Put wrote: Fri Apr 14, 2023 12:37 pm Whoa!
I ended up finding the iPad version of the app.
Which for free, and in app purchase of 7.99
Which iPad app? Is there a link somewhere? I could not find any…

Post

Tj Shredder wrote: Thu May 04, 2023 3:31 pm
Timmy Put wrote: Fri Apr 14, 2023 12:37 pm Whoa!
I ended up finding the iPad version of the app.
Which for free, and in app purchase of 7.99
Which iPad app? Is there a link somewhere? I could not find any…
I think that this is the Synthesia iPad app that is being referred to?
https://apps.apple.com/us/app/synthesia/id579518445
Last edited by Gromit42 on Fri May 05, 2023 7:13 am, edited 1 time in total.

Post


Post

I was testing the web app using Firefox ESR 115.8.0, but it was unable to detect my LinnStrument 200. Attempting to change the "LinnStrument Size" value to "200", then clicking "Save and Apply Config" removes the visualizer. From that point onwards, refreshing the window/tab does nothing, but closing and reopening the web app no longer detects the LinnStrument, even if MIDI device access permissions have already been granted. Here is the log file and General Configuration:

Code: Select all

11:54:14 Detected state from LinnStrument: startNoteNumber=30, rowOffset=6, bpm=120
11:54:14 Successfully initialized.
11:54:14 Could not connect to optional Forward Port 2: Loop Forward B
11:54:14 Could not connect to optional Forward Port 1: Loop Forward A
11:54:14 Could not connect to Light Guide MIDI Input: Loop Back C
11:54:14 Connected to LinnStrument MIDI Output: LinnStrument MIDI
11:54:14 No Instrument 2 MIDI Input given.
11:54:14 Connected to Instrument MIDI Input: LinnStrument MIDI

Code: Select all

Start MIDI Note Number: 30
Row Offset: 6
Show play statistic feedback: On
Light Guide Note Color: Magenta
Played Guide Note Color: Red
LinnStrument Size: 128
Delayed Note Threshold (ms): 50
Missed Note Threshold (ms): 200

Post

Hi FranklyFlawless,

thanks for checking it out! Unfortunately I couldn't test the webapp with the LS 200, but it still shouldn't crash like you describe. If I set the size to 200, it still works.

Can you have a look into the browser development consoler (usually opened with F12) if you find any errors there?

It's a while since I wrote the code, but I think there shouldn't be any real difference between LS 128 and LS 200, just a bigger visualization and a wider range of note highlights sent back to the LinnStrument? The LinnStrument itself doesn't even know whether its 128 or 200.
Find my (music) related software projects here: github.com/Fannon

Post

Fannon wrote: Tue Feb 27, 2024 6:59 pm Can you have a look into the browser development consoler (usually opened with F12) if you find any errors there?
Here is what the Multiprocess Browser Console prints for errors:

Code: Select all

No Instrument MIDI Input given. log.js:22:13
    error https://fannon.github.io/linnstrument-light-guide/src/log.js:22
    registerMidiEvents https://fannon.github.io/linnstrument-light-guide/src/main.js:179
    init https://fannon.github.io/linnstrument-light-guide/src/main.js:63
    <anonymous> https://fannon.github.io/linnstrument-light-guide/src/main.js:53
No Instrument 2 MIDI Input given. log.js:22:13
    error https://fannon.github.io/linnstrument-light-guide/src/log.js:22
    registerMidiEvents https://fannon.github.io/linnstrument-light-guide/src/main.js:233
    init https://fannon.github.io/linnstrument-light-guide/src/main.js:63
    <anonymous> https://fannon.github.io/linnstrument-light-guide/src/main.js:53
This is how I am able to reproduce the issue:
  1. Connect the LinnStrument.
  2. Access the web app.
  3. When prompted to grant access to MIDI devices, choose "Continue to Installation", then "Add", then optionally "Okay".
  4. Change the value of "LinnStrument Size" to "200", then click "Save & Apply Config".
After that point, the visualizer disappears, and the logs appear to clear out. I also tried a different approach where I change the value of "LinnStrument Size" to "200" first, then follow the prompts to grant access to MIDI devices second, but this is what the logs on the web app display:

Code: Select all

01:18:03 Successfully initialized.
01:18:03 No Instrument input found, cannot forward MIDI from it.
01:18:03 No Light Guide MIDI input. The Light Guide Feature will not work.
01:18:03 No Instrument MIDI Output given. Without this, Light Guide highlighting and layout detection will not work.
01:18:03 No Instrument 2 MIDI Input given.
01:18:03 No Instrument MIDI Input given.

Post Reply

Return to “Roger Linn Design”