Jump to content

Recommended Posts

Posted

Hi Michael, in your video you mention the option to download your code so one can run your tool locally on the Web server. I do understand git and know how to clone the repo, but is there a step-by-step instruction on how to set up your browser after that so I can use the tool standalone (I am Not a Web developer)?

 

Thanks!??

Posted
7 hours ago, Roger Hare said:

I just looked at about 10 minutes of this block-buster/epic - I'm now waiting for the usherette to come around with the choc-ices and 'flavour of the month' ice lollies...🙂

 

It's well impressive - thank you! I hope I'll find time over the next few days to look at some more...

 

Only other comment - sometimes the volume seems a little low, but I wonder if that's the 'sound system' on the machine I'm currently using...

Volume should be fine.

 

Posted

Just double click on the:
 

abctools.html

 

file and you'll be off to the races.

The only features that don't work locally are share links because you can't create a valid URL from a web page being run locally, same thing for any play links in PDF files (which are share links), they have to point to a real website.

Posted (edited)
20 hours ago, Michael Eskin said:

Just double click on the:
 

abctools.html

 

file and you'll be off to the races.

The only features that don't work locally are share links because you can't create a valid URL from a web page being run locally, same thing for any play links in PDF files (which are share links), they have to point to a real website.

Works like a charm - except the sound does not work on my MS Surface tablet (Edge browser), regardless of whether I am online or not (the player starts and proceeds as expected, but there is no sound. The online version works flawlessly). I chose to use GitHubs downlad zip file option and unpacked it instead of cloning, is that a problem? 

 

Edit: Never mind, I found it! The Grand Piano sound font used as the melody default requires an internet connection. Apparently all sound fonts are accessed over net internet. Is there a way to specify the root for the sound fonts so I cab redirect the directory to a local one?

 

Sorry for the noise! 😉

 

Edited by RAc
Posted (edited)
2 hours ago, RAc said:

Works like a charm - except the sound does not work on my MS Surface tablet (Edge browser), regardless of whether I am online or not (the player starts and proceeds as expected, but there is no sound. The online version works flawlessly). I chose to use GitHubs downlad zip file option and unpacked it instead of cloning, is that a problem? 

 

Edit: Never mind, I found it! The Grand Piano sound font used as the melody default requires an internet connection. Apparently all sound fonts are accessed over net internet. Is there a way to specify the root for the sound fonts so I cab redirect the directory to a local one?

 

Sorry for the noise! 😉

 

Not without considerable modification of abcjs. I will not be doing any work to make this work without an internet connection, sorry.

Edited by Michael Eskin
Posted
4 minutes ago, Michael Eskin said:

Not without considerable modification of abcjs. I will not be doing any work to make this work without an internet connection, sorry.

No need to apologize, your work is worth gold either way. Thanks again!

Posted (edited)

Even if the sound fonts were local, the way the are read probably wouldn't work due to browser security issues in my experience.

Edited by Michael Eskin
Posted (edited)

Hmmm, if I look at this here: Synthesized Sound | abcjs (paulrosen.github.io) I find the attribute soundFontUrl which looks a little bit what I am looking for. I will experiment with this a little bit just for the heck of it; maybe I'll submit a PR if something useful comes out of it...

 

BTW, come to think of it, the "harcoded default locations" of the sound fonts are kind of ugly and exactly the kind of external dependency one wants to avoid because if for whatever reason, the fonts are temprarily or permanently unavailable, the entire sound part of the app will be broken...

 

Edit: The answer is already on the page above:

 

 

  • This requires an internet connection for the "sound fonts". You can supply your own sound fonts, so if you want to deliver them locally you can get by without the network. The default sound fonts come from this github repo.

 

So it should be possible to store the fonts locally... I will try to incorporate that.

Edited by RAc
Posted (edited)

Definitely "Party on!" as they say.  

I've modified abcjs a fair bit for my own requirements, so you may find that what's described in the abcjs documentation doesn't necessarily apply to how my tool deals with custom soundfonts and very specifically my custom instrument extensions.  

Perhaps in the future some of my methodology will be folded into the core abcjs (been talking with Paul Rosen about this), but for now, my fork of abcjs isn't the same as the "official" version.

Just be aware that you'll need to change the abctools.html file to load the non-minified versions of both the main app.js and modified abcjs version if you want to test changes:
 

Change these two lines:
 

     <script type="text/javascript" src="abcjs-basic-tabs-min.js?v=762"></script>

 

    <script type="text/javascript" src="app-min.js?v=762"></script>

 

to:

 

     <script type="text/javascript" src="abcjs-basic-tabs.js?v=762"></script>

 

    <script type="text/javascript" src="app.js?v=762"></script>

Also, there are direct full URL references to the soundfonts in both the abcjs-basic-tabs.js and app.js files, so you'll need to identify where they are used and override them as well.

Additionally, there is code in abcjs itself that is used for setting gain values based on the soundfont URL, so you'll need to deal with that as well.

Additionally, I've found that you can't load my additional soundfonts or custom instruments when running locally, so all the custom instruments, my Canvas and MScore soundfonts probably won't work. 

I'm also not going to release my custom instrument soundfont samples (all the instruments mapped to MIDI programs greater than 127) as they are shared with my paid iOS apps like "Celtic Sounds".

While I don't have any issue with them being used "on-the-fly" for the tool, they are kind of my "crown jewels", so won't be releasing them. 

The app's source code is open-source. My custom instruments and sound fonts are not.

You'll need to find the original repos for all of the original abcjs sound fonts and pull them locally as well, I think they're about 5 GB total.

Before you dive in the deep end with this, I suggest you try to do the absolute minimum to see if the soundfonts can be loaded from the local filesystem. I suspect you may find that the browser simply won't do it.  I hope will work for you, but I run into all kinds of issues even loading my custom soundfonts from the web when running locally.

Again, completely "off-the-grid" use of the tool for playback is absolutely not a priority for me and I won't be making any changes to support this scenario. 

Share links and interactive PDFs, which are a key value of the tool are designed to be used on-line and depend on being able to access the tool and the soundfonts remotely. They will not work if they point to some file folder-based URL on your system if you give a PDF with share links you create locally to anyone else. 

My intention for the "local" use scenario, i.e. download the repo zip, unzip and run abctools.html was just for PDF tunebook generation without play links, which is the core functionality of the tool.

It is able to replace the now-defunct mandolintab ABC converter I used for many years, the primary reason I built this thing in the first place.

 

 

 

 

 

Edited by Michael Eskin
  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...