The XR Rhythms Player is a browser-based player for XR Rhythms tunes. It is based on the Rhythms of Resistance player. It is written in TypeScript and relies heavily on beatbox.js, Vue.js and Bootstrap. The core features are:
More information can be found in the documentation.
The technologies used are:
bbState
item
contains the current state, historical states are stored as bbState-<timestamp>
.index.html
file in the application cache. When opening the player, it is loaded from the cache if
it is available there (to speed up loading and to make offline access possible). Only after the player is loaded, the service worker
downloads the most recent index.html
from the server (if the connection is possible) and updates the cache. Once downloaded, if the file
has changed, a notification is shown in the player, and the page has to be reloaded in order to show the updated version.The tunes are configured in assets/tunes
, along with tune descriptions. The format is very similar to the format that
can be generated in .rhythm files downloaded from the player.
All the parameters (such as the instruments, samples, time measurements) are configured in src/config.ts
.
The samples are available as MP3 files in assets/audio
.
More details can be found in the documentation.
Once you have made your modifications, you can build the player to get a HTML file that you can use in your browser:
npm install
to install the dependencies.npm run build
to build the project.build/index.html
is a self-sufficient build of the player that can be opened in the browserWhile you are playing around with some changes and don't want to rebuild the whole project each time you made a small change,
after step 2 you can run npm run dev-server
instead. This will start a webserver on http://localhost:8080/ that will serve
the built player. When you make any changes to a file, it detects that and rebuild just that file. Simply reload the page to
see the updated player.
Information how to host XR Rhythms Player can be found in the documentation.