Using Chromebook For Running The KeyMusician Keyboard

We tested the KeyMusician Keyboard application, on an Acer Chromebook 15, which has an Intel processor, dual-core, with a normal speed of 1.6 gigahertz, and a maximum speed of 2.6 gigahertz.  It has 4 gigabytes of RAM. 

It was fast enough to render quality sound from the soundfonts used, at least while using the KeyMusician Keyboard by itself.  Advanced capabilities, such as composite voices (a way we provide on Linux for doing sounds beyond what is available in soundfonts), did cause some audio-dropouts, especially when using KMK within Chromebook (option 1 below).

The CPU speed of your Chromebook is definitely something you have to consider, since the normal way of making it work on slower machines, is to use JACK (qjackctl), and in options 1 and 3 below, I could not get JACK to work with Chromebook hardware.

That means you’re limited to using PulseAudio (in options 1 & 3), so you probably need a CPU speed of at least 2 Gigahertz, to avoid audio-dropouts.

We started with the more typical installation on a Chromebook, then tried options requiring Developer Mode, and finally, even a firmware update.

Since it works on many Chromebooks, we provide detailed, step-by-step instructions on doing it.

The information in this article should enable a reasonably competent Chromebook user, to install and use it, with the aid of a few Internet searches. In doing such searches, it’s helpful to include your particular Chromebook model, or you may get old information that isn’t necessarily applicable to your machine.

Beware of things you find searching, that are very old, such as 2012. Things have changed a lot since then.

Here is a summary of my testing results:

1. Installing KMK As A Linux Application Within Chromebook

You can enable the "Linux (beta)" option in the Chromebook settings, and it will install a Linux environment within your Chromebook, into which Linux applications can be installed. 

I found the following web-page helpful in learning how to do that:

How to Enable Linux App Mode on Chromebook

After doing that, you can sign-in to the KMK member page, navigate to the “Installing The Application” pages, and click on the “Installing on Linux” page. 

On that page, download the (Linux) Debian package of the KeyMusician Keyboard to your Downloads folder.  If you double-click on that downloaded Debian package, it will install the KeyMusician Keyboard (along with its normal dependencies) into the Linux environment on your Chromebook. 

You can also use Qsynth (one of the installed dependencies), configuring it to use PulseAudio, to improve KMK's performance in that environment. 


The KeyMusician Keyboard, running under Linux (Beta), on a Chromebook, along with Qsynth

The problems observed in running KMK this way, were:

Running Qsynth in the Linux environment (configured to use PulseAudio), and configuring KMK to use Qsynth, will solve the prior problem, and also reduce the latency.  The “Improving Your System” member pages for Linux, show you how to configure Qsynth.

Using Qsynth, means you have to first start Qsynth (using the launcher), then start KMK (using the launcher) each time you use the KMK. 

2. Installing A Linux System Within Chromebook

I installed a Linux system inside ChromeOS, which can be switched-to, or back from, ChromeOS.  This feature is called "crouton".  To use this feature, requires that Developer Mode be turned-on.  Doing this may void your Chromebook warranty. 

The amount of latency observed in this mode, is normal for Linux, and is is less than (better) than on Windows.  The latency is so small, that you can even use the Java Sound (Gervill) Synthesizer that comes with it, rather than having to use Qsynth. Also, it runs with the full CPU speed of the machine, so audio-dropouts are avoided, even in advanced usage, such as composite voices.

Using this option requires that you first turn-on the Linux (Beta) option in your Chromebook, because it uses that environment for its sound. If you neglect this, you may not have any sound in your Linux system installed this way. 


The KeyMusician Keyboard (with its windows arranged automatically), running on the Linux system installed within Chromebook, running with Qsynth.  Notice the task-bar at the top of the screen, and the ‘dock’ at the bottom.  It’s also using the “GTK+” look-and-feel. 

The following web-page was very helpful to me, in learning how to install Linux within Chromebook:

Complete Guide to Installing Linux on Chromebook

The problems observed in running KMK this way, were:

The application was able to intelligently place the various KMK windows. 

Qsynth ran fine on my machine when configured (in the “Audio” tab of Qsynth’s setup) to use PulseAudio. It ran well this way, with minimal latency, even using composite voices.

But running Qsynth (configured to use Jack, and using qjackctl) will reduce the latency to where it’s imperceptible. 

Except for the Help buttons not working, KMK runs well in this environment.  

I was able to get JACK (qjackctl) to work in this environment, but it takes a bit of work to do it. And then after I had it working, it stopped working.

I did this, by specifying cras as the name of the interface, in the “Settings” tab of the setup window. For example, in the “Settings” tab of the “Setup” window (of my machine’s qjackctl below), the “Interface” combo-box contains “hw:MTrack”.


In that combo-box of that tab of that window on your machine, place the cursor in the combo-box, delete the text that’s already there (probably “(default)”), and type in cras. When you click on the “Interface” combo-box, you won’t see cras as one of the options – you have to type it in.

Click the “OK” button when you’re done with the setup tabs.

There are complicated ways where you can configure it to use the hardware directly, but it’s not worth the extra hassle, because using cras only increases the latency by a very small amount.

To make this work, you also have to add your user name to the “hwaudio” group. You can do this by entering the following command in a terminal session:

sudo usermod -a -G hwaudio "$USER"

You have to logout, and re-start the Linux desktop for this change to take-effect.

After starting qjackctl configured as above, and running Qsynth (configured to use Jack as the audio), when playing Qsynth using the KMK, the volume on my machine was so low that it could barely be heard.

To work around this, I had to run (in a terminal session) the alsamixer program. In that program, changing the master volume (using the Up-Arrow or Down-Arrow keys), and then hitting the Escape-key to exit, restored the volume.

The problem with doing just this, is you have to do it every time you run qjackctl. But you can fix it so that it works every time you run qjackctl.

Immediately after exiting alsamixer, if you enter the following command in your terminal session:

alsactl –-file ~/.config/asound.state store

It saves the current alsamixer settings in the specified file.

If you then configure (in qjackctl Setup, in the “Options” tab, in the “Execute script after Startup” text-box) the following statement:

alsactl –-file ~/.config/asound.state restore

It will set the volume properly after qjackctl initializes.

You will probably also have to make the changes (in the Member Page “Improving Your System” pages for Linux), to the /etc/security/limits.d folder, to avoid audio dropouts (under-runs).

Once all of this is done, it should run nicely, with no latency, with no under-runs, and with good volume, every time you use it.

I like this environment for running the KeyMusician Keyboard. It’s only shortcoming is the Help-buttons still don’t work.

3. Installing A Linux System That Dual-Boots With ChromeOS

I was able to install a totally independent Linux system (the "Gallium" distribution of Ubuntu), on a 32 Gigabyte SD card. 

Running this way, uses the full capabilities (and speed) of your computer. As with the prior option, it’s just as fast as Linux normally is, helping you avoid audio-dropouts. Better still, it doesn’t have the excessive security restraints, so the Help-buttons all work, and you can read the installed tutorials.

Dual-booting a Linux system, requires that Developer Mode be turned-on, which may void your Chromebook warranty. 

You’ll need to do Internet searches to determine how to dual-boot your particular Chromebook with Linux. The process is different for different Chromebooks.  Beware of things you find searching, that are very old, such as 2012. Things have changed a lot since then.

I found the following link very helpful in learning how to dual-boot a Linux system on my Chromebook:

How to dual boot ChromeOS and Linux

A firmware update was required for me to do this, followed by installing Linux from a live USB drive, onto the SD card.  After doing this, I can boot either ChromeOS (the default), or the Linux system on the SD card. 

In this mode, the KMK application works normally (for Linux).  The Help buttons all work, as well as the ability to read the Tutorials! 


The KeyMusician Keyboard (with its windows arranged automatically), running on the Linux system installed on an SD card inserted in the Chromebook, running with Qsynth.  Notice the task-bar at the bottom of the screen. 

The problems encountered in this mode, were:

Normally, JACK works fine on the many Linux distributions I've tested.  The GalliumOS distribution (running on Chromebook hardware) is the only case where it doesn't work. 

The “aconnectgui” application can be used to connect MIDI devices in place of JACK, so advanced features, such as composite (layered) voices can still be used

Conclusions

Since the first method of using the KeyMusician Keyboard (turning on the Linux Beta option), is the only method not requiring developer mode, it needs to work this way for running KMK on Chromebook to be officially supported.

Where it ran poorly on the Chromebook I tested, we can’t yet list ChromeOS as one of the supported operating systems.

It’s still worth trying, since ChromeOS is being improved over time, and on some Chromebooks, it may even work now, without the graphics problems.

According to other people testing Chromebook, the graphics problems I observed, may be fixed on the following systems:

If you’re willing to set your Chromebook in developer mode, you have two more options where the KeyMusician Keyboard will run acceptably.

Be aware that there are a lot of different Chromebooks, having a variety of processors, and graphics handlers, so your results may be different from mine.

Also, since JACK (qjackctl) doesn’t work with the Chromebook hardware using the 1st, and 3rd options for installing KMK, you’ll need a CPU speed of 2 gigahertz to avoid audio-dropouts.

If you already have a Chromebook having decent speed and memory (RAM), it’s worth giving KMK a try. 



To return to the index of KMK Newsletter articles, click the link below.

Index Of All Newsletter Articles