プチコン3号&BIGまとめWiki

投稿プログラム : ちょーMML (CHOMML)

パンくずリスト

2014年12月23日投稿 / 投稿者 : Oskar / タグ : 投稿プログラム 音楽 MML ユーザ定義命令 ユーザ定義関数 ライブラリ

概要

SmileBASIC MML の拡張と、和音・コードネームを扱うための命令・関数ライブラリです。

使い方

プログラムを直接 RUN する、または「作品を見る」から実行すると、ヘルプが表示されます。 そちらで使い方を確認してください。

なお、ユーザ定義命令・関数の集合体なので、そのままツールとしては使うようにはなっていませんが、 DIRECT モードで直接命令・関数を呼び出してインタラクティブに使うことも一応は可能です。

※ヘルプを書くのが実は一番大変で、ずいぶんと魂が奪われたため、とりあえずは書きなぐりで書いておきます。

  • 以下の命令は SmileBASIC の BGM 命令とほとんど同じ用法で使えます。
    CHO_BGMPLAY CHOMML$
    CHO_BGMSET TRACK,CHOMML$
    CHO_BGMSETD TRACK,LABEL$   ※ LABEL$ は "0:@ラベル" 形式、0:を省略すると0固定
  • 以下の命令で CHOMML から SmileBASIC の標準 MML へ変換できます。
    MML$=CHO_CONVERT_MML$(CHOMML$)
  • CHOMML の MML 拡張内容
    *[チャンネル数※      コード部開始
    *]                    コード部終了
    
    (以下、コード部の内側に書く)
    *コードネーム;長さ    コードネームを和音で演奏(長さ省略可)
    *(音符列)長さ         任意の和音を演奏
                          (長さ省略可、音符列内で < か > で臨時オクターブ上下可能)
    
    ※チャンネル数は、コード演奏用に予約するチャンネルの数で、省略時は4。
    (例) ":4*[5*Cm7.9;*]"   4~8の5チャンネルがコード部用の予約される   
  • コード部にはチャンネル指定・マクロ定義/使用以外の任意の SmileBASIC MML が記述可能です。
    • 基本的には、コード部の予約チャンネルすべてにコピーされます。
    • 音符の場合は、コード部自身のチャンネル(上の例では4)以外のチャンネルでは休符に置き換わります。
  • CHOMML のコード部以外では、チャンネル指定が任意の順序で何度でも指定できます(地味に便利)。
    (例) ":0GAB:1FFF:0>C2.:1E2."
  • これ以外にも、コードネームの構成音を調べるための関数などがあります。詳細はヘルプまたはプログラムを参照してください。

備考

このプログラムの元となったプチコンMkII用のツール(まとめWikiには載せていません)の README.txt から、ヘルプに書いていないコードネーム関係の情報を少し引っ張り出しておきます。

コード要素の順序

ルート→種別→付加音(6/7度)→テンション→掛留音(2/4度)→増減音(5度)→onベース

扱えるコードネームのもろもろ
  • Cmaj = CM、C+ = Caug、C- = Cm、CO = Cdim、C0 = Cm7(b5)
  • ルート・onコードの♯は "音名#"、♭は "音名b"("音名+" "音名-" は不可)
  • テンション・増減5度の増音程は "#数字" "+数字"、減音程は "b数字" "-数字"
  • テンション・増減5度は "()" 内に入れるか、"." で区切るか、そのままで並べる
  • その他の細かいところは面倒なのでソースコードを読んでください
扱えないコードネーム
  • パワーコード(C5)
  • omit指定(C7omit3)
  • ポリコード(分数コード)
  • テンションのいろいろな区切り文字(",", "/" など)
  • その他いろいろ

スクリーンショット・動画

CHO-HELP.jpg

公開キー

プチコン3号用の公開キーです。トップメニューの「作品公開とダウンロード」から公開キーを入力すると、作品をダウンロードすることができます。

  • V1.2(現行バージョン)
プチコン3号/BIG 公開キー
NKSNNPZF

今回は、都合により別のプログラム Toukou/箏曲「六段」 のプロジェクトに同梱して配布します。

旧バージョン L3EXV334 (V1.0) はそのうち公開終了にする予定です。

プログラムの更新履歴

  • V1.2
    • 臨時記号の付いた音階が正常に扱えない不具合を修正しました。
    • タイ・スラーとポルタメントが扱えない不具合を修正しました。
    • 文字列配列自体の直接代入を使わないように修正しました。 SmileBASIC 3.0.2 ではメモリリークが発生するためです。 そのため、以下の命令に変更があります。オンラインヘルプも併せて修正しました。
      • CHO_CONVERT_TO_NOTES() : 関数で文字列配列を返す形式から、引数の参照渡しで文字列配列に値を代入する文(ステートメント)に変更しました。
      • CHO_RENEW$() : 使用できないように削除しました。
  • V1.0
    1. 初期バージョン

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)


メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 1 人がこのサイトを見ています
  • このページはこれまでに 1758 回、本日は 1 回、昨日は 0 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.114 秒 | このページの最終更新 : 2022/09/20 (火) 12:49:33 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30