ConsLyric
コンソールでいろいろするためのツール/DSL。ConsLyricっていう名前だけど多分そういう用途以外でも使えるはず。
Conslyric Engine
Pythonで記述された実行環境。古いスキーマを渡された場合はそのバージョン特有のバグ含む問題を可能な限りエミュレーションしようとします。
$ conslyric (プログラムのファイル)
デバッグログを有効にする場合:
$ conslyric (プログラムのファイル) -V
Conslyric Schema v1
Conslyric Schemaは、CLI(コマンドラインインターフェース)環境において、歌詞やテキストを楽曲のタイミングと演出ルールに基づいて再生するために設計されたドメイン固有言語(DSL)です。YAML形式で記述され、表示時間、待機時間、色、画面クリアなどの演出制御を宣言的に行います。
1. 基本構造
YAMLデータは、以下の主要なトップレベル要素で構成されます。
| 要素名 | 型 | 必須 | 説明 |
|---|---|---|---|
consLyric |
string | 必須 | スキーマバージョンを指定します(例: 4)。古いバージョンが指定された場合、そのバージョンの動作(バグを含む)をエミュレートしようとします。 |
metadata |
map | 必須 | 再生全体に関する設定情報とデフォルト値を定義します。 |
define |
map | 任意 | 再利用可能な関数(コマンド群)を定義します。 |
run |
array | 必須 | 歌詞の本体と、実行されるすべての演出コマンドを順番に記述します。 |
2. metadata
再生時の全体設定とデフォルト値を定義します。
| キー | 型 | 必須 | 説明 |
|---|---|---|---|
time |
string | 必須 | 楽曲の総再生時間の上限(リミット)を定義します(例: 4m1s)。run配列から計算された全体の表示時間がこの値を超過した場合、実行時に例外が発生します。 |
showDefault |
string | 必須 | 歌詞行が表示されるデフォルトの持続時間(例: 2s)。setRuleで上書きされない場合に適用されます。 |
sleepDefault |
string | 必須 | 歌詞行間のデフォルトの待機時間(例: 3s)。setRuleで上書きされない場合に適用されます。 |
3. define (関数定義)
再利用可能なコマンドのシーケンス(関数)を定義します。
| キー | 型 | 説明 |
|---|---|---|
[関数名] |
map | 任意の関数名をキーとします(例: fastLyric)。 |
type |
string | 必須。 関数であることを示すため、funcと指定します。 |
args |
array | 関数が受け取る引数を定義します。形式は [引数名]:[型](例: showTime:num)。 |
run |
array | 関数が呼び出されたときに実行されるコマンドのリストです。引数は ${引数名} の形式で参照できます。 |
4. run (再生シーケンス)
歌詞と制御コマンドを混在させた配列です。
4.1. 歌詞行
引用符なしで記述された文字列は、表示対象のテキストとして扱われます。その行の持続時間は、直前のsetShowRuleまたはshowDefault、次の行までの待機時間は直前のsetSleepRuleまたはsleepDefaultに基づきます。
4.2. 制御コマンド
以下のコマンド(ディレクティブ)を使用して、表示ルールや画面の状態を操作します。
| コマンド | パラメータ | 動作 | リセットのタイミング |
|---|---|---|---|
setShowRule:[時間] |
時間(例: 0.5s, 2s) |
現在の歌詞行の表示時間を上書き設定します。 | endSection |
setSleepRule:[時間] |
時間(例: 0s, 1s) |
現在の歌詞行の後の待機時間を上書き設定します。 | endSection |
cons:clear |
なし | コンソール画面をクリアします。 | 常に実行されます。 |
cons:setcolor:[色] |
色(例: red, orange) |
以降のテキストの色を設定します。 | cons:color:reset |
cons:color:reset |
なし | テキストの色をデフォルトに戻します。 | 常に実行されます。 |
endSection |
なし | setShowRuleおよびsetSleepRuleで設定された全てのルールを、metadataで定義されたデフォルト値にリセットします。画面クリアは行いません。 |
常に実行されます。 |
[関数名]:[引数] |
map | defineセクションで定義された関数を呼び出します(例: fastLyric: {showTime: 0.2, sleepTime: 0.1})。 |
常に実行されます。 |
Metadata
Release files for conslyric 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| conslyric-0.2.0.tar.gz | 9.7 kB | Without provenance | Details for conslyric-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| conslyric-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for conslyric-0.2.0-py3-none-any.whl |
Total release size: 24.1 kB
Release files / conslyric-0.2.0.tar.gz
| Download URL | conslyric-0.2.0.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b5a7d79c2007b9e52f62fab982202760a3f74a8dbb4144353043c99c9b85661c
|
|
BLAKE2b-256 checksum How to use checksums |
bd1e6b69503c509bdc88d810fcc06ae5a84dcd007afa3c1551c84846c73118d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Release files / conslyric-0.2.0-py3-none-any.whl
| Download URL | conslyric-0.2.0-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8568e7e3a5e5aa8c0609870f0964874769971b3b9d0a2fe59cdaebdf8b29c83a
|
|
BLAKE2b-256 checksum How to use checksums |
b7ae309e67491b568a8fff7593d5e2a788ab1944a962966e9ba5f18855021dcc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.8
|
Security for conslyric 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.