Synthesia Light Guide for LinnStrument
-
- KVRian
- Topic Starter
- 552 posts since 13 Jul, 2006
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.
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.
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
-
- KVRian
- Topic Starter
- 552 posts since 13 Jul, 2006
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.
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
-
FranklyFlawless FranklyFlawless https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=586325
- KVRian
- 794 posts since 24 Oct, 2022 from Abbotsford, British Columbia
The URL was changed to this.
-
- KVRian
- Topic Starter
- 552 posts since 13 Jul, 2006
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.
@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
-
FranklyFlawless FranklyFlawless https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=586325
- KVRian
- 794 posts since 24 Oct, 2022 from Abbotsford, British Columbia
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.
-
- KVRian
- Topic Starter
- 552 posts since 13 Jul, 2006
Too bad. It's really an irony of history, but nowadays Safari is the new Internet Explorer...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.
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
-
- KVRer
- 15 posts since 16 Oct, 2018
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
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
-
- KVRian
- Topic Starter
- 552 posts since 13 Jul, 2006
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.
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
- KVRAF
- 8845 posts since 6 Jan, 2017 from Outer Space
-
- KVRer
- 23 posts since 9 Mar, 2023 from UK
I think that this is the Synthesia iPad app that is being referred to?Tj Shredder wrote: ↑Thu May 04, 2023 3:31 pmWhich iPad app? Is there a link somewhere? I could not find any…
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.
-
- KVRer
- 23 posts since 9 Mar, 2023 from UK
There seems to be a Synthesia Android app too.
https://play.google.com/store/apps/deta ... .synthesia
https://play.google.com/store/apps/deta ... .synthesia
-
FranklyFlawless FranklyFlawless https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=586325
- KVRian
- 794 posts since 24 Oct, 2022 from Abbotsford, British Columbia
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
-
- KVRian
- Topic Starter
- 552 posts since 13 Jul, 2006
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.
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
-
FranklyFlawless FranklyFlawless https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=586325
- KVRian
- 794 posts since 24 Oct, 2022 from Abbotsford, British Columbia
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
- Connect the LinnStrument.
- Access the web app.
- When prompted to grant access to MIDI devices, choose "Continue to Installation", then "Add", then optionally "Okay".
- Change the value of "LinnStrument Size" to "200", then click "Save & Apply Config".
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.