コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
アオタク ◆6Tx4tgOERFcr
2019/7/26 1:06
質問
3号MMLの「キー」について、など
N[数字]で設定出来るキーですが、あれの扱い方を教えて頂きたいです。
今は「音の高さの指定にCDEFGABの代わりにこれも使えるよ、しかも部分的に微調整が出来るよ」的なものだと認識しておりますが、間違っていたらコメントで教えて頂けると嬉しいです
その他様々なMML関連の質問もあるかもしれませんがよろしくお願いします。
ちなみに(どうでもいいけど)プチバースでの初トピックです

コメント

アバター
Na 2019/7/26 15:33 ◆QoELVrBXBQCI
N数字は、指定した高さの音を鳴らします。キーではありません。
数字はノート番号(音の高さ)で、MIDIなどで使われるものと同じです。
例えば、N60でO4Cと同じ音が鳴ります。
数字が1増えると、半音上がります。(60→C,61→C#,62→D など)
3号の場合、Nコマンドでは音の長さが指定できません。Lコマンドで指定しておく必要があります。(例 L8N60 → C8)
あとポルタメントやスラーでNコマンドを呼び出すと、その次の音もつながって流れるなど、変な挙動をします。(例 C_N62C → C_D_Cと同じ)
使い道としては、Nコマンドでは変数が使えるので、変数を使って何かするときぐらいですかね...? (例 $0=60 N$0 → C)

プチコン4では、N高さ,音長 となっていて、音の長さも指定できるようになりました。(例 N60,8 → C8)
また、キーの変更は K数字 です。(プチコン4のみ)
例えば、K1 とすると、それ以降の音(C,D,E,...やN)の高さがすべて半音上がります。
アバター
アオタク 2019/7/26 17:09 ◆6Tx4tgOERFcr
>>Naさん
ほぉ...。詳しく教えて頂きありがとうございます。
ですが3号のMMLのリファレンスには「キーを数値指定」と書かれてあります。どういう違いなのでしょうか?それとも、キーの数値指定というリファレンスの説明が間違っているのでしょうか?これも教えて頂きたいです。
アバター
Na 2019/7/26 17:39 ◆QoELVrBXBQCI
>>アオタクさん
うーん、自分は「キー」って言ったら曲全体の調の事だと思ってたんですが、今調べたら1つの音程のことも「キー」って言うみたいですね。
プチコン4のリファレンスでは「音程を数字で指定して鳴らす」と書いてあります。
またmkII説明書では「音程に対応する数値でキーオン。」とあります。
要するに曲全体の調を変更するのではなく、指定した音を鳴らすということです。
アバター
あんちもん 2019/7/26 17:43 ◆8qCJSJ1bKTIQ
横からすみません
リファレンスは間違ってないと思います
キー「の」数値指定じゃなくてキー「を」数値指定ですから、
Naさんの例えで言うとO4Cというキー「を」60という数値で指定するコマンドがN60、ということになります。
アバター
アオタク 2019/7/26 20:58 ◆6Tx4tgOERFcr
>>Naさん
はい、僕もリファレンスを初めて読んだ時は全体の調だと思って「?」状態になりました。
なるほど、よく分かりました!
アバター
アオタク 2019/7/26 21:02 ◆6Tx4tgOERFcr
>>あんちもんさん
あ、下のほうの「の」に関しては「を」の間違いでした。言われて初めて気付きましたwすみませんでした。
ありがとうございます。やはり変数くらいしか使い道は無いのかな...?
「部分デチューン」的な事にはあまり使われないのかな...?
アバター
Na 2019/7/26 22:07 ◆QoELVrBXBQCI
>>アオタクさん
Nコマンドは半音単位でしか変更できないので
微調整をするには向いてないと思います。
アバター
アオタク 2019/7/26 23:12 ◆6Tx4tgOERFcr
>>Naさん
そういえばそうですね、ありがとうございます。
アバター
うょリウム(元 SPDX) 2019/7/29 10:56 ◆UTOEg1c1vr.B
P=(64×128)+RND(512)
※P=音の高さ
P1=P MOD 128
P2=FLOOR(P/128)

BGMPLAY ”@256@D”+STR$(P1)+”N”+STR$(64+P2)
のように使いました(??)
アバター
アオタク 2019/7/30 21:42 ◆6Tx4tgOERFcr
>>うょリウム(元 SPDX)さん
すごく凝ってますね!
(頭がこんがらがってヤケクソになってしまった)
アバター
うょリウム(元 SPDX) 2019/7/31 0:35 ◆UTOEg1c1vr.B
たとえば音の高さは
@D数値
(数値…-128〜127まで。
     64で半音となる。)
で微調整できます。
”@D64N64”==”N65”です。

コンガラガルのは承知ですが




P=(64×128)+RND(512)
※P=音の高さ
P1=P MOD 128
P2=FLOOR(P/128)

FOR I=0 TO 29
BGMPLAY ”@256@D”+STR$(P1)+”N”+STR$(64+P2)
VSYNC 2
NEXT

のようにするとピポパポピポパポ
アバター
アオタク 2019/8/1 16:25 ◆6Tx4tgOERFcr
>>うょリウム(元 SPDX)さん
デチューンでそういう感じにもなるんですね。

FLOORだー頭割れるー(嘘です)

確か整数までの概数(切り捨て)にする命令ですね
アバター
うょリウム(元 SPDX) 2019/8/4 9:41 ◆UTOEg1c1vr.B
P1=FLOOR(P/128)
Pを128で割って余りを切り捨てる。

P2=P MOD 128
Pを128で割った余り

Pが130なら
P1=1
P2=2
となります。
アバター
アオタク 2019/8/5 10:55 ◆6Tx4tgOERFcr
>>うょリウム(元 SPDX)さん
面白い(?)違いですね!そこまでややこしくはなさそうですがしっかり区別して覚えておきます。
アバター
うょリウム(元 SPDX) 2019/8/5 12:25 ◆UTOEg1c1vr.B
FLOORで余りを切り捨て、
MODで切り捨てた余りを求めるのです。

300/128= 2 あまり 44

FLOOR(300/128)=2

300 MOD 128=44
アバター
アオタク 2019/8/5 16:30 ◆6Tx4tgOERFcr
>>うょリウム(元 SPDX)さん
詳しくありがとうございます。
ところで、MODで余りを出す割算はよく使いますが、DIVで整数の商を出す割算ってどこで使うべきですか?
(基本「/」を使っている)
アバター
Na 2019/8/5 18:54 ◆QoELVrBXBQCI
FLOOR(300/128)を300 DIV 128と書けるんじゃないですか?
アバター
アオタク 2019/8/5 21:25 ◆6Tx4tgOERFcr
>>Naさん
おお、その表し方もあったとは...。
アバター
シロ 2019/8/5 21:40 ◆g0oUAxBiWqcj
因みにSmile BASICが早いかは分からないが128で割るなら一般的に/やDIVを使うより、X >> 7の方が早い(基本割り算は処理的に引き続けて算出するから遅い)。
アバター
アオタク 2019/8/7 9:31 ◆6Tx4tgOERFcr
>>シロさん
やはりシフト系やビット系はコンピュータに優しい訳ですね、使い方の例を挙げて下さってありがとうございます。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -