Amethyst is an Electron-based music player

Many of our audio reviews have explored music players that are in an early stage of development. We’re always conscious that it can be unfair to review software too early in its lifecycle. It’s not surprising that they can miss essential functionality or lack stability and polish. Sometimes it’s best to wait until software has matured somewhat before putting it under the microscope.

Amethyst is billed as a powerful node-based audio player. The aim of the project is quite interesting: to develop a music player in TypeScript to see how far the language can be stretched to prove it’s possible to provide pro-level features. This is mature software.

Amethyst is published under an open source license.


I tested the software with the Manjaro distro. There’s a package in the Arch User Repository which can be installed with an AUR helper such as yay or paru, or using pamac, Manjaro’s GUI installation tool.

$ yay -S amethyst-player

My system was missing gendesk, one of the program’s dependencies. gendesk is a utility for generating desktop files. The yay command above installs that dependency as well as Amethyst.

Trying to start the software yields nothing. In this situation, it’s always better to resort to the command-line to see any error message.

In this case, running amethyst from the command-line gives the error:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: ENOENT: no such file or directory, stat '/home/luke/.config/amethyst/Metadata Cache'

This issue is easily fixed. The installation didn’t create a Metadata Cache directory, so we’ll have to do it manually.

$ cd ~/.config
$ mkdir -p "amethyst/Metadata Cache"

I’ve used the -p flag to create the parent directory amethyst, and the sub-directory Metadata Cache with a single command.

This issue arises because the AUR package does not install the latest version of Amethyst. You get version 1.8.22, but the current version is 1.9.14. I recommend installing the current version as it offers a number of improvements, not least it fixes the installation issue.

I created my own package for the current version by making a single line change to the PKGBUILD shell script. Go to the Build files tab in Pamac (image below), and change the 4th line to pkgver=1.9.14. Then click Build.

Editing build file in Pamac

If you want to start the program from the command-line bear in mind the software is installed to /opt/amethyst. You’ll probably want to add this directory to your $PATH.

Next page: Page 2 – In Operation

Pages in this article:
Page 1 – Introduction / Installation
Page 2 – In Operation
Page 3 – Memory Usage
Page 4 – Summary

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Newest Most Voted
Inline Feedbacks
View all comments
11 months ago

When a music player consumes as much memory as the OS it’s running on there’s something seriously wrong somewhere.

11 months ago
Reply to  Raffles

Yep, hugely bloated Electron. The project is really a proof-of-concept rather than anything serious in my eyes.

It really highlights that developers should choose appropriate tools for the job. And that isn’t Electron / TypeScript.