Music metadata
You can optionally add some music metadata in your Strudel code, by using tags in code comments:
// @title My Cool Song
// @by John Doe
// @license CC-BY-SA-4.0
Like other comments, those are ignored by Strudel, but it can be used by other tools to retrieve some information about the music.
Alternative syntax
You can also use comment blocks:
/*
@title My Cool Song
@by John Doe
@license CC-BY-SA-4.0
*/
Or define multiple tags in one line:
// @title My Cool Song @by John Doe @license CC-BY-SA-4.0
The title tag has an alternative syntax using quotes (must be defined at the very begining):
// "My Cool Song" @by John Doe
Tags list
Available tags are:
@title: music title@by: music author(s), separated by comma, eventually followed with a link in<>(ex:@by John Doe <https://example.com>)@license: music license(s), separated by comma. Each license should be specified by using the correct identifier in the [https://spdx.org/licenses/](SPDX License List). Example: CC-BY-SA-4.0. Unsure? Choose a Creative Commons license here.@details: some additional information about the music@url: web page(s) related to the music (git repository, Soundcloud link, etc.)@genre: music genre(s) (pop, jazz, etc.)@album: music album name@tag: custom tag
Note to tool authors: Never trust that a song has filled those fields with syntactically correct values; make sure your software is robust enough it doesn’t break if it encounters bad values
Multiple values
Some of them accepts several values, using the comma or new line separator, or duplicating the tag:
/*
@by John Doe
Jane Doe
@genre pop, jazz
@url https://example.com
@url https://example.org
*/
You can also add optional prefixes and use tags where you want:
/*
song @by John Doe
samples @by Jane Doe
*/
...
note("a3 c#4 e4 a4") // @by Sandy Sue
Multiline
If a tag doesn’t accept a list, it can take multi-line values:
/*
@details I wrote this song in February 19th, 2023.
It was around midnight and I was lying on
the sofa in the living room.
*/
Searching meta-data in the online repl
Meta-data can be used in the search field of the patterns tab in the online repl.
For example to search for all patterns by a specific author use the search term
by: Ada L
or search for patterns with a specific genre like
genre: unicorns
Hint: If no meta-data property is provided in the search all patterns with a @title, @by or @tag matching the search term will be shown.