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.1.0.tar.gz (9.2 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.1.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for conslyric-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b6c1c5c2e04d041ea9a8091f60e354661571c6cb7400addc0f08507cb1aafb1a
MD5 4fac89eb850b1bb6e7775ed5e96d408e
BLAKE2b-256 7689cd02b318f796f9d16bfe9e0520d3696deef8bc503832d4a6453b791fb63e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for conslyric-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5176b66a2bdf593506d604d7a665aea65c7f4a1f6711f11633119a96a27bc88d
MD5 dd4143246337c503d77febb0b6faff2c
BLAKE2b-256 c27d4dc9a4b20bda904022bb42e71edf4b20a39ea397cd4862dc6732a2c73c07

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