Music Set Scripting language
Find a file
2022-01-11 10:22:05 -05:00
mpris-player@2e843ec8d9 Create barebones music player for mps interpretor 2021-12-10 16:53:22 -05:00
mps-interpreter Implement reset functionality on existing statements 2022-01-11 10:22:05 -05:00
mps-player Ignore unsupported file extensions in files by default and make OS media controls sort of optional 2022-01-07 13:22:22 -05:00
src Initial API work for reset() support on statements 2022-01-08 20:51:31 -05:00
tests Implement simple CLI for executing scripts 2022-01-02 20:20:09 -05:00
.gitignore Create initial language functionality and framework 2021-12-03 16:13:19 -05:00
.gitmodules Create barebones music player for mps interpretor 2021-12-10 16:53:22 -05:00
Cargo.lock Add some built-in and code documentation 2022-01-03 21:15:28 -05:00
Cargo.toml Ignore unsupported file extensions in files by default and make OS media controls sort of optional 2022-01-07 13:22:22 -05:00
LICENSE Create LICENSE 2022-01-01 04:30:05 +00:00
README.md Initial API work for reset() support on statements 2022-01-08 20:51:31 -05:00

mps

An MPS program which plays music. This project implements the interpreter (mps-interpreter), music player (mps-player), and CLI interface for MPS (root). The CLI interface includes a REPL for running scripts. The REPL interactive mode also provides more details about using MPS through the ?help command.

FAQ

Is MPS Turing-Complete?

No. It can't perform arbitrary calculations (yet), which easily disqualifies MPS from being Turing-complete.

Can I use MPS right now?

Sure! It's not complete, but MPS is completely useable for basic music queries right now. Hopefully most of the bugs have been ironed out as well...

Why write a new language?

I thought it would be fun. I also wanted to be able to play my music without having to be at the whim of someone else's algorithm (and music), and playing just by album or artist was getting boring. I also thought designing a language specifically for iteration would be a novel approach to a language (though every approach is a novel approach for me).

What is MPS?

Music Playlist Script (MPS) is technically a query language for music files. It uses an (auto-generated) SQLite3 database for SQL queries and can also directly query the filesystem. Queries can be filtered and extended by using filters and functions built-in to MPS (see mps-interpreter's README.md).

Is MPS a scripting language?

No. Technically, it was designed to be one, but it doesn't meet the requirements of a scripting language (yet). One day, I would like it be Turing-complete and then it could be considered a scripting language. At the moment it is barely a query language.

License: LGPL-2.1-only OR GPL-2.0-or-later