metadata: improve doc

This commit is contained in:
Roipoussiere 2023-06-06 21:33:32 +02:00
parent bd7f4dd73f
commit 96ac054392
2 changed files with 67 additions and 10 deletions

View File

@ -68,7 +68,7 @@ Try uncommenting this line by deleting `//` and refreshing the pattern.
You can also use the keyboard shortcut `cmd-/` to toggle comments on and off. You can also use the keyboard shortcut `cmd-/` to toggle comments on and off.
You might noticed that some comments in the REPL samples include some words starting with a "@", like `@title` or `@license`. You might noticed that some comments in the REPL samples include some words starting with a "@", like `@title` or `@license`.
Those are just a convention to define some information about the music. We will talk about it in the _metadata_ section. Those are just a convention to define some information about the music. We will talk about it in the [Music metadata](/learn/metadata) section.
# Strings # Strings

View File

@ -8,24 +8,81 @@ import { JsDoc } from '../../docs/JsDoc';
# Music metadata # Music metadata
You can optionally add some music metadata in your Strudel code, by using tags in code comments like this: You can optionally add some music metadata in your Strudel code, by using tags in code comments:
``` ```js
// @license: CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/ // @title Hey Hoo
// @author: Felix Roos // @by Sam Tagada
// @details: Inspired by Friendship - Let's not talk about it (1979) :) // @license CC BY-NC-SA
``` ```
Like other comments, those are ignored by Strudel, but it can be used by other tools to retrieve some information about the music. Like other comments, those are ignored by Strudel, but it can be used by other tools to retrieve some information about the music.
It is for instance used by the [swatch tool](https://github.com/tidalcycles/strudel/tree/main/my-patterns) to display pattern titles in the [examples page](https://strudel.tidalcycles.org/examples/). It is for instance used by the [swatch tool](https://github.com/tidalcycles/strudel/tree/main/my-patterns) to display pattern titles in the [examples page](https://strudel.tidalcycles.org/examples/).
## Alternative syntax
You can also use comment blocks:
```js
/*
@title Hey Hoo
@by Sam Tagada
@license CC BY-NC-SA
*/
```
Or define multiple tags in one line:
```js
// @title Hey Hoo @by Sam Tagada @license CC BY-NC-SA
```
## Tags list
Available tags are: Available tags are:
- `@title`: music title - `@title`: music title
- `@by`: music author(s), separated with comma, eventually followed with a link in `<>` (ex: `@author john doe <https://example.com>`) - `@by`: music author(s), separated by comma, eventually followed with a link in `<>` (ex: `@by John Doe <https://example.com>`)
- `@license`: music license - `@license`: music license(s)
- `@details`: some additional information about the music - `@details`: some additional information about the music
- `@url`: web page related to the music (git repo, soundcloud link, etc.) - `@url`: web page(s) related to the music (git repo, soundcloud link, etc.)
- `@genre`: music genre (pop, jazz, etc) - `@genre`: music genre(s) (pop, jazz, etc)
- `@album`: music album name - `@album`: music album name
## Multiple values
Some of them accepts several values, using the comma or new line separator, or duplicating the tag:
```js
/*
@by Sam Tagada
Jimmy
@genre pop, jazz
@url https://example.com
@url https://example.org
*/
```
You can also add optinal prefixes and use tags where you want:
```js
/*
song @by Sam Tagada
samples @by Jimmy
*/
...
note("a3 c#4 e4 a4") // @by Sandy
```
## Multiline
If a tag doesn't accept a list, it can take multi-line values:
```js
/*
@details I wrote this song in February 19th, 2023.
It was around midnight and I was lying on
the sofa in the living room.
*/
```