mck technical information in 2ch
mck development chiptunes in 2ch - document section

Shortcut move in this page

	- TOP OF THE PAGE
	- HOW TO USE MCK
	- MML CREATE TECHNIQUES
		- o2a以下の音を出したい
		- スウィープ/スラーの使い方
		- NAMCOT 106音源の使い方
		- トランスポーズを使いたい
		- 短周期ノイズを使いたい
		- LFOの複数同時使用はできません
		- EN255 , D255等が機能しません
		- 1ch,2chディレイって何?
		- ENコマンドの効能って何?
		- qコマンドの音量減衰が欲しい
		- MCKって何かの略なの?
		- データ作りこみの極意を教えれ
		- 再生環境でばらつきがあるね
		- DPCMの鳴らし方
		- 連譜途中の休符の長さがヘン


[FAMICOM]mckについて語りましょう[矩形波]

	MCKオフィシャル : ttp://nesmusic.zophar.net/
	MML職人養成講座 : ttp://nesmusic.zophar.net/whatsmml.html
	MCK使用環境準備 : ttp://nesmusic.zophar.net/makedata.html






[MAKE]初めてのmck![MML]

	あらかじめ用意するもの

		・Windows系マシン		そんな早くなくても大丈夫.
		・mck 本体セット		本家から落とそう.
		・mckc本体セット		本家から落とそう.
		・nesasm.exe			MagicEngineのDevセクションから落とせる.
		・MCKwatch			本家から落とそう.
		・テキストエディタ		Win標準のでもOK.

	MCKwatchを使う場合の構成

		以下のような構成でインストールを行う.
		ただしHSPは深い階層にあるとエラーを起こす可能性がある.
		そのため、なるべくrootに近いところ(c:\ や d:\)に入れるのが望ましい.

		\MCKwatch
		|	- mckwatch.exe
		|	- ****.mml
		|
		+------\mck
		|	- effect.h
		|	- fds.h
		|	- fdsboot.bin
		|	- fdshdr.bin
		|	- freqdata.h
		|	- make_nsf.bat
		|	- make_nsf.txt
		|	- mckc.exe
		|	- n106.h
		|	- nesasm.exe
		|	- sounddrv.h
		|	- mck.txt
		|	- mckc.txt
		|
		+-----\N106
			- ****.106

	作る

		■MCKwatch.exe と同じ所にテキストファイルを作成する.

		  ファイル名は適当で良いが、職人さんたちは大抵 .mml や .mck としている.

		■MCKWatch.exe のアイコンにドロップする.

		  内容を自動的に読みこみ、更新監視状態になる.
		  この時、勝手にMMLファイルも開いてくれるから便利だ.

		■MCKC用のMMLを書く.

		  MCKwatchのウィンドウをアクティブにして、F1キーを押すとマニュアルが出る.
		  覚えておくと多少便利かと.

		■テキストファイルを上書きセーブする.

		  MCKWatchが監視中なら、勝手にコンパイルしてnsfを作ってくれる.
		  気が済むまでMMLを書き換えて演奏しよう.

	あぷ

		俺製.nsfが出来たら、mmlとnsfをセットにして lha か zip で圧縮.
		本スレにageろ!
		これで貴方も職人さんの仲間入り. (・∀・)ガンガレ!







[TECH]知って得するmck情報[INFO]

	1-024 : 内蔵音源でo2aより下が出せないっての結構厳しい制約じゃない?

		mckc ver0.22 以前のバージョンで発生。
		mckc ver0.23 以降はデフォルトで o1a まで演奏可能です。

		nofrendoベースのサウンドコアだと鳴らないのが多いかな。
		某V以下略は調べて直したので実機動作と同様に鳴ります>o2a以下
		とりあえず$4001と$4005に$08ぶち込めば殆どのプレイヤで鳴ると思います。

		mmlだと y4001,8 y4005,8 かな?

		なるほど、単に周波数だけの問題じゃなかったんですね。深い。
		@v0 = { 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 }
		AB y$4001,8 y$4005,8 @v0 o1 t60 l1
		B D1
		AB L @0a^ @1a^ @2a^
		でサックリどのエミュでも鳴ったよ、グレイト

		s0,8 ってやっても上手くいくことを確認


	1-035 : 某有名RPGから派形データ各種

		FF F0 FF 0F 00 F0 FF FF 00 00 00 00 00 00 00 00
		BB FF 77 BB 55 99 11 55
		FF FF FF FF 11 11 11 11
		21 43 65 87 A9 CB ED FF
		DB FE EF BD 35 12 21 53
		B9 ED FF DE 9B 67 45 75 B9 BC 9A 57 23 11 32 75
		15 32 54 76 44 44 44 84 FB DE BC 9A CC CC CC 8C
		21 22 12 42 EC FD DE CC DC DE 4A 12 62 EA DC 26
		31 54 66 77 77 88 88 88 88 88 CA FE DE BC 68 24
		FF FF 11 11
		EC FF FF CE 24 11 11 42
		FF FF FF FF FF FF FF FF 11 11 11 11 11 11 11 11
		FE EF 01 00 00 00 00 10
		21 43 65 87 A9 CB ED FF
		21 43 65 87 A9 CB ED FF EE DD CC 8C 44 34 23 12
		C1 EF CD AB 9A 68 45 64 CB 9B 47 32 87 67 35 12

		直データなので、順番が逆です

		例
		31 54 66 77 77 88 88 88 88 88 CA FE DE BC 68 24
		だったらmckc上では

		@n0 = { 1 3 4 5 6 6 7 7 7 7 8 8 8 8 8 8
		8 8 8 8 10 12 14 15 14 13 12 11 8 6 4 2}

		なので注意して下さい
		ちなみにコイツは魔界幻想のコード音色です(・∀・)イイ!


	1-055 : スウィープやスラーが上手く使えません。

		確かにスラーが使えないのは痛いね。
		エンベロープの最終値まで来ていればその音量に変えればいいんだけど、

		@v0 = {15 10 9 8 7}
		A @v0 c1 v7 defg

		エンベロープで音量変化中の音にスラーがかかった場合はどうしようもないなぁ。

		ちなみに、サガ1の神の曲のイントロの後の「ミファミファミファ・・・」ってとこは、
		スラー掛けてるように見えて実はEPコマンドを使ってるんだなw

		;例 ミファミファミファ・・・・と聞こえる(一応)
		@EP2 = { | 0 0 0 0 0 12 0 0 0 0 -12}
		B EP2 e1^2. EPOF r4

		すげー荒業・・・ってか音長がずれて使えね〜。


	1-079 : NAMCO106音源が上手く使えません。

		n106の波形サンプル数は決まってます。
		設定できる数は  4,8,12,16,20,24,28,32  の4個刻みです

		#EX-NAMCO106 発音数
			8音鳴らしたいなら、#EX-NAMCO106 8

		@N波形番号 = { バッファ番号 波形データ 波形データ 波形データ … }

		例:
		@n0 = {
		1 3 4 5 6 6 7 7 7 7 8 8 8 8 8 8
		8 8 8 8 10 12 14 15 14 13 12 11 8 6 4 2}
		はダメで

		@n0 = { 0
		1 3 4 5 6 6 7 7 7 7 8 8 8 8 8 8
		8 8 8 8 10 12 14 15 14 13 12 11 8 6 4 2}
		はイイ、

		@n0 = { 0
		右端のこれがバッファ番号

		改行なしで
		@n0 = { 0 1 3 4 5 6 6 7 7 7 7 8 8 8 8 8 8 8 8 8 8 10 12 14 15 14 13 12 11 8 6 4 2}
		でもイイ
		イジョ


	1-099 : mckにトランスポーズ機能が欲しいです。

		トランスポーズは、@EN で代用出来ます。
		あまり使う機会無いと思うんですが、どうでしょうか?


	1-126 : mckc上で短周期ノイズとやらはどうやって鳴らすの?

		freqdata.h 内のノイズ周波数の bit7 を立てると短周期ノイズになる。
		俺はめんどいから普通のノイズの下に短周期のデータをくっつけて
		オクターブ0は通常ノイズ、オクターブ1は短周期ノイズにしている。

		@v0 = { 15 11 10 2 }
		@EP0 = { 12 | 0 }
		D @v0 o0 L EP0 cc+dd+eff+gg+aa+b EPOF cc+dd+eff+gg+aa+b

		EPコマンドを使うスマートな方法があったとは…


	1-135 : Aパートが激しくうねります。なんで?

		#EX-NAMCO106 8
		@n0 = { 0 0 0 0 0 15 15 15 15 }
		@MP0 = { 0 3 1 0 }
		@MP1 = { 0 3 20 0 }
		A t120 @2 v10 o5 MP0
		P t120 @@0 v10 o5 MP1
		A c1

		LFOの複数同時使用は出来ないと掲示板にあった.
		そのMMLだと@MP1が適応されてると思われ
		切り替えて使え、と


	1-177 : VRC6のデューティ比は

		VRC6のデューティー比はこんな感じらしい。
		以下、ピンク色のカニスレからコピペ。

		> デューティサイクルは以下の8つ。
		> 1/16 ( 6.25%)、2/16 (12.50%)、3/16 (18.75%)、4/16 (25.00%)
		> 5/16 (31.25%)、6/16 (37.50%)、7/16 (43.75%)、8/16 (50.00%)
		> で、これらの矩形波の他にノコギリ波。


	1-214 : 仕様?バグ?

		EN255でエラーが出るのは俺の環境だけかな
		ENOF を使えばいいんで実害はないけどw

		漏れもD255って指定したら通らなかったyo

		q8以外だとwコマンドが効かないのは仕様ですか?
		あと、LFO使用中にスウィープ(sコマンド)が変になるのも仕様ですか?

		q7以下だと, 音符が終わるまえに消音するから
		その場合wは「消音後の状態を維持」になるのでは?
		q8なら消音がないから鳴った音を維持できるという感じで.
		 # MSX MUSICあたりはq8でも消音してたっけな(事実上yコマンド専用

		ソフトLFOかけてる途中にハードスウィープをかけると,
		スウィープ変化量がソフトLFOで0に戻されますな.
		これはソフトとハードの性質上そういうもんだと思います.

		→ mckc0.25でFIXされますた.


	1-254 : 1chディレイとか2chディレイとか何のことなんでしょうか?

		ディレイは分かる?
		山彦みたいに音が響く効果を模したもののことで、ようは遅れたタイミングでフレーズを鳴らすわけ。
		一番簡単なのは、輪唱みたいにメインのパートとは別のチャンネルで遅らせた音を音量を絞って鳴らす。
		これが2chディレイ。

		例:
		A v10 c4 d4 e4 f4 g1
		B v3 r8 c4 d4 e4 f4 g2.

		で、1chディレイっていうのはFCだとかMSXみたいに発音数に制限がある中でディレイ表現する技法。
		例えば、『ピーポーパーポーピーポーパーポ』って8分音符で鳴ってるアルペジオがあるとする。
		それを16分で鳴らして『ピ ポ パ ポ』にする。そうすると音の間に16分の休符が入るよね?
		そこに、『ピ ピポ ポパ パポ ポ』って感じでベロシティを低くした16分音符を挟み込むと、擬似的に
		山彦効果が得られる訳です。
		分かりにくい説明でゴメソ。

		例:
		AB l16
		A v9 crdrerfrgrargrrr	       . . . . . . .
		B v2 rrrcrdrerfrgrarg	→ A crdcedfegfaggarg (実際には vコマンドも入れるが面倒なので略.)

		1chディレイサンプル投下 >> 1chdelay.zip


	1-276 : ENコマンドの使い方って言うか効能が良くわかりません

		いろいろあるので、一つ例をゴショーカイ

		例えばNさんの二作目のchA (N002.ZIP) で、sax的に
		    音程 : 半音上げて、すぐ戻す
		  タイミング : 発音直後や、ビートの少し後
		という奏法に使ってるね

		MMLをENで検索したり、目的のch以外muteしたり(MMLで!コマンドを使おう)
		テクを盗め!


	1-301 : 用語辞典

		    Duty ... 方形波のHiとLowの比率。デューティ比・デューティサイクルとも呼ばれる。
		エンベロープ ... 連続した数値の変化の度合い。音の立ち上がりから余韻までの課程に良く用いられる。
		    Decay ... ディケイレイト。ディケイタイムとも。アタックレベルからサスティンレベルまでの時間。
		  ディレイ ... 遅延。しばし3D対戦格闘用語としても使われる。例)PPKはディレイ入力でフェイントをかます。
		疑似ディレイ ... 音量変化を駆使し山彦のような効果を得るテクニック。そのパターンは様々。

		   Attack … 発音直後の状態のこと
		    Decay … Attackのあとの状態のこと。またはDecayTimeやDecayRateの略
		DecayTime … 時間。長いなら、ゆっくりDecay
		DecayRate … 速度。大きいなら、高速Decay


	1-318 : ファミコンのサウンドテクニックを知る為のタイトルは?

		シルヴァーサーファー、ドラクエU、グラディウスU、スーパーマリオ
		ab2、parodius。
		SKATE OR DIE(海外オンリーだっけ
		後はMotherだな。
		暴れん坊天狗。
		Wizardry II、鳥人戦隊ジェットマン、オホーツクに消ゆ
		「ロボット(ジャイロセット)」、「ハローキティーワールド」、「ナイトムーブ」
		へべれけはPCMベース(いわゆるSUN BASS)にPCMドラムを重ねてる
		NESでも良いのなら"Tim Follinの"skysharkを推そうか。

		個人的には「星のカービィ」の矩形波ベースも推奨したいトコロ。
		矩形波チャンネルをベースに使うと三角波をメロディに割り当てがちだけど、
		カービィの場合は伴奏に使ってるのがポインツ


	1-398 : NSFは著作権の侵害です!

		みなさん放置されると思いますが、敢えて釣られてみます。

		NSF規格自体は100%違法ではありません。
		更にmckはフリーで公開されているサウンドドライバです。
		間違った認識は訂正されるべきです。
		音楽的著作権の話であれば困った問題ですね。

		オリジナル曲なら無問題.


	1-504 : こういうデータってどこからスコア手に入れてくるの?

		俺は耳コピでソース直打ちだな。
		始めはMIDI作ってからコンバートすると良いかも。
		http://www.aznet.jp/
		ここにあるMID2MML使うとほぼ修正無しでそのままコンパイルできるよ。

		俺も耳コピでソース直打ちだな。
		長い曲をやろうとせず短い音楽からやればいい。


	1-535 : qコマンド時の音量減衰設定コマンドがホスィ・・・

		今のドライバだと、T.K.さんが以前やったように音長限定で
		リリース音含めた音量エンベロープを作る、のが最善かな

		次期mckにはキーオフ時のリリースも搭載する、って作者さんも言ってるよ。>>291で。
		qコマンドによる無音部分の内部挙動はキーオフ+休符だから、万事解決。


	1-539 : ライバル登場?

		次期mckはいつになったら完成するんでしょうか?
		AIRスレでサウンドドライバを作ってるようだし、そっちも気になる。

		AIRスレのドライバは複数曲登録可能みたいね。
		でもコンバータがないとか言ってたけど。


	1-546 : Midi楽器持ってない人向け

		MIDI楽器持ってないひとは Fire-candy.comで、SC8850で変換させてもらえます


	1-605 : チャンネル情報見たいでつ

		黒猫SPCみたいにチャンネルごとのミュートと速度調整ができる
		nsfプレーヤー探してるんですが、いいの教えてください

		> VirtuaNES
		> nester
		> G-NSF(チャンネルごとのミュートのみ)


	1-628 : nsfって無限ループにした方が良いかな?

		そういう曲なら。
		そういう曲じゃなくてもなるべくなら。

	1-787 : MCKって何かの略?

		>Micro Cheap Kukeiha(矩形波)

		>そうだったのカー!!

		ちっっっっがぁぁぁぁぁぁぁ〜〜〜〜〜〜〜〜うッ!
		違う違う違うのだ!
		確かにmckは何かの略だが、由来が恥ずかしいから特に言わなかったのだけど。
		違う認識されてしまうのも歯痒い物があるのでちゃんと言います。

		そもそもオレがNSFにどっぷりはまったきっかけの人や世話になった人に対する
		リスペクトの意味で命名してます。そんな方々のハンドルの頭文字から取りました。
		例を挙げると...

		K はKevinHortonのK(他二名
		C はCrisCovellのC(他一名

		とくれば分かりますでしょうか。Mは沢山いらっしゃいますね。敢えて挙げませんが。
		なんか最近そんな人が増えたので、名前変えたけど切りが無いので一瞬でやめたのは内緒だ。
		あぁ、はんずかス〜


	1-814 : データ作りこみの極意を教えてください!

		「鳴ったら満足」という話なんかは、気持ちがよくわかる
		そこから「俺内イメージ」にいかに近づけるかが作りこみ
		俺内イメージをしっかり持て
		手がかりに好きなCDを聴きまくるなど、コツはいろいろある

		たわごと説教スマン


	1-827 : アマチュアゲームに無断同梱できるwavレンダラとしてのフリーソフトシンセがホスィ

		特にNSFからwavレンダリングできたりしたら最高
		配布時はコンパクトで、ゲームの音質は環境依存せず負荷もない
		まぁMOD慣れしてる人ならそれでOKだし, acid+oggもいい
		とこう言っといて俺がゲーム実際に作るかっていうと微妙なんだけど

		それこそ上で紹介されてるTSSみたいなので良いんじゃない。

		nezplugで何か不都合でも?
		俺はDirectXが良く理解できなかったっつーかサウンドエミュを
		ゲームに組み込むやり方が良く理解できなかったアホなんで何とも言えないが。

		優れた例としてはえここdeふぁいと!を挙げておこうか
		知られた形式を使っているわけではないが

		えここはよかったよね、あれも専用のドライバで鳴らしてると思った
		追加パッチのサウンドモード(゚Д゚)ウマー (PGはX68kの某プレーヤーと一緒だし)

		なんで組んでるのよ?
		そんな事しなくても普通にnpnez.dll使えばいいじゃんか?

		肝心のnpnez自由に利用できるか, は「全く問題なし」でアンサー?

		>本SDKやnpnez.dllの使用、配布等には一切制限はありません。
		nsfsdkのドキュメントにこう書いてあるし、別にいいんじゃないの?
		SDK for HSPてのがある。
		確か使ってるゲームがあったが……

		npnezはHSP利用インターフェイスを作者様が作ってらして
		実際にそれを活かしたHSPソフトもあったな
		知識と思考が足りなくてゴメンネ…

		※hspnez.as は、Win9x系でないと正常に動かないみたい。
		 2000やXPだと、HSPNSFStopや2回目のHSPNSFPlayで固まる…。


	1-935 : Playerやプラグインで音量のバラつきがかなりあるね。

		俺はin_nsf使ってるけど、nezplugで聴くとかなり音量バランスが悪い。

		LPFの特性いかんでバランスかなり違いますよねぇ。
		ノイズとかもろ影響受けるし、
		逆にきつく掛かれば掛かるほど三角波がブリブリと・・・
		nezplugとnsfplugだと拡張音源の音量差もかなり違いますね。

		そうそう。どうせ実機だってばらついてるんだから、
		音の好みで調整用サウンドエミュを決めるのも悪くない。
		バランスをどのエミュで合わせたかだけ教えてもらえると幸福。

		とりあえずrewはノイズでかすぎ

	2-382 : DPCM鳴らすのって、同じフォルダに.dmcファイル置いとけばいいんですか?

		とりあえず練習のために>>2の2chサイトから落とした
		nsfと一緒にあったdmcファイルを、作成するmmlと同じフォルダに置いて
		@DPCM0 = { "bfkick.dmc",15 }
		@DPCM1 = { "bfsnare.dmc",15 }
		E o0 l4 L
		E cdcd
		って感じでやってみたけどエラーがでるのですが。

		もう気付いてるかもだが
		「E cdcd」 で鳴らすには、「@DPCM1」 でなく 「@DPCM2」
		@DPCM1 は c+ で鳴らす

		c+でやってもエラーが出ましたが
		@DPCM0の所のファイル名の記述を
		D:○○\○○\○○\bfkick.dmcというようにしたら鳴りました

		あ〜っと、
		MML上で記述するDMC設定パスは「mckcから見て何処にあるか?」だ。
		だからmckcと同じ所に放り込んでおけば大抵OK。
		ごちゃごちゃイヤンというのならばmckcの下にdmc用フォルダでも作って、MML上では相対パスでそこを指定するが良かろう。

		MCKwatch.exeと同じところにMMLとdmc置いてるなら、mml内での指定は "../dmcファイル名.dmc"となる。

	2-408 : 3連符の2番目に休符を挟みたいが上手くいかない。

		お聞きしたいことがあります。
		いまmckcでmmlを書いているのですが、3連符がうまくいきません。
		普通に3連符を流すのはうまくいくのですが、これに休符を挟むとおかしなことになってしまうのです。
		3連符の2番目に休符を挟みたいのですが、{crc}4と書くと真ん中の休符が異常に長くなって、3連符にならなくなってしまいます。
		書き方が悪いのでしょうか? 解決策を探して方々巡りましたがどこにも書いてありませんでした。
		対処法が分かる方、ご教授願います。

		l8 の状態なら、r12 で対処すべし

		mckはフレーム音長式ドライバ
		mck.txtのノートに関する部分を読んどくと
		いろいろわかって打ち込みが楽になるよ

		>>2-133,2-134のとおり、l8 {cr12c}4 とかけばよい

六四天安門事件