Skip to main content

Pythonで記述されたConslyric Schemaの実行環境

Project description

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})。 常に実行されます。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conslyric-0.2.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

conslyric-0.2.0-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file conslyric-0.2.0.tar.gz.

File metadata

  • Download URL: conslyric-0.2.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.8

File hashes

Hashes for conslyric-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b5a7d79c2007b9e52f62fab982202760a3f74a8dbb4144353043c99c9b85661c
MD5 9dbb3406d2b5559fe0626c41c07891a6
BLAKE2b-256 bd1e6b69503c509bdc88d810fcc06ae5a84dcd007afa3c1551c84846c73118d9

See more details on using hashes here.

File details

Details for the file conslyric-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: conslyric-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.8

File hashes

Hashes for conslyric-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8568e7e3a5e5aa8c0609870f0964874769971b3b9d0a2fe59cdaebdf8b29c83a
MD5 c17bcda0a6f6215da887ac108aa91711
BLAKE2b-256 b7ae309e67491b568a8fff7593d5e2a788ab1944a962966e9ba5f18855021dcc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page