FC音源作成with ppmck.docx
- 文档编号:9722286
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:39
- 大小:490.25KB
FC音源作成with ppmck.docx
《FC音源作成with ppmck.docx》由会员分享,可在线阅读,更多相关《FC音源作成with ppmck.docx(39页珍藏版)》请在冰豆网上搜索。
FC音源作成withppmck
FC音源作成withppmck/MML流程攻略by既存防御
1楼
嗯~怎么开头呢?
大家好...今天天气不错,所以这是一篇关于如何利用ppmck和其他辅助工具制作FC音源音乐的简单流程攻略。
其实我是填去年挖的坑来了...
本攻略内容大部分参考自外国网友公布在网上的文档,同时也结合了学长我的一点经验,希望可以给有这个需要的同学们提供些许参考。
当然,受限于笔者的水平,这东西谈不上技术或者艺术性质的东西,吐槽的同学或老师也请不客气地一齐发射,我弹幕防御全开..啊~不对~我一定照单全收...不过认真你就○了哦(这句话的既视感好强,有版权没?
我还是哔掉好了)
其实动手之前考虑了好久到底有没必要整理这篇攻略,毕竟这类音乐算得上是小众了,听的人都不多,更何况制作,而且很大部分工作是在没有图形界面的情况下。
但是想想曾经的我心血来潮非要弄明白这个玩意但是却baidu不到多少有用的东西(google你是好人呐~还有曾经帮助我日文的某小朋友~~你是好...还是不感谢他了),便决定不让这杯具在有爱的同学身上重演,于是学长我就燃了~有决心调教红白机音源的同学们!
耐心就是通关的金手指,没有被烦到寂寞的觉悟的话,看到这里就请Ctrl+W自行了断吧>_<
啊啦~已经罗嗦这么多了么?
...那本番赶紧的
5楼
谢谢吧主了...别管我在楼上犯白痴,内容从这里开始。
OPENNING-FC音源及PPMCK简介
简单地说,FC音源大概就是红白机能发出来的“滴滴嘟嘟”“呲呲嘭嘭”了吧(大误)。
我想说的是一听到某些视频里FC音源“滴滴嘟嘟”的音色就说是“魂斗罗”、“超级马力”的同学自重...总之~一般说的chiptune不是GB音源就是FC音源的(PC98泪流满面)。
按照资料来讲,FC音源通常是指是由FC的2A03芯片发出的声音,包含矩形波2个通道+三角波1个通道+噪音1个通道+DPCM1个通道。
另外,FC的磁碟机和极少部分卡带的MMC芯片除了内存控制和视频上的加强还提供有扩展音源,各个音源对应的通道和相关指令后面再详细说明。
关于MCK。
MCK实质上是FC声音驱动+MML编译器,是由2chmck的Izumi编写的可以将用MML语言写成的文本编译成FC用的NSF格式的工具。
PPMCK:
在PPMCK之前的PMCK也是对MCK的扩展,提供了对扩展音源的支持,PPMCK是基于PMCK的进一步加强。
这里讲的MML语言(MusicMacroLanguage)是将通道的音色,音量,速度,和音符的音高,时值等信息用文本的方式描述的一类语言,类似于音序软件里事件窗口中的信息。
对了,在网络游戏「洛奇」(Mabinogi)中也是利用简化的MML语言谱写乐谱的哦。
看完OP,或者大家可以同学们有兴趣玩下去的就赶紧PRESSSTART吧
6楼
NOWLOADING……-准备工作
工欲善其事,必先利其器,学长我先把工具打包放入ITEM栏,同学们请自行取用
PPMCK、MUMML、MID2MML、VirtuaNSF
对于包内东西尤其是.exe有顾虑的同学可以自己去分别下载,顺便看看有没更新也好
------------------------------
PPMCK:
作者主页,可以顺路去搜刮些其它工具和相关资料。
http:
//takamatsu.cool.ne.jp/dutycycle/ppmck.html
下载
http:
//takamatsu.cool.ne.jp/dutycycle/ppmck/ppmck09.zip
------------------------------
MUMML:
这网站名字很亮,不过怎么都是些很老的工具。
说下这个,它是用来监视mml文件的,编辑中的mml文件一按保存,它就用预先设置的驱动自动编译成NSF,并用设置的播放器自动播放,挺必要的小工具,没有它的话得自己去点那个XXX.bat什么的,最讨厌了。
下载
http:
//www.2a03.org/software.php
http:
//www.2a03.org/software/mumml_v014c.zip
安装方法:
随便解压到某个文件夹,比如X:
\mumml,然后把刚才下载的PPMCK解压出来,把\mck\bin里的ppmckc.exe、ppmckc_e.exe、nesasm.exe这三个文件复制到X:
\mumml\prog\ppmck以及\mck\nes_include里的ppmck文件夹和ppmck.asm复制到X:
\mumml\prog\ppmck里,完成后的树形应该是这样的:
prog\
+---ppmck\
+ppmckc.asm
+ppmckc.exe
+ppmckc_e.exe
+nesasm.exe
+---ppmck\
+dpcm.h
+fds.h
+fme7.h
+freqdata.h
+internal.h
+mmc5.h
+n106.h
+sounddrv.h
+vrc6.h
+vrc7.h
检查你的文件找齐没有,要小心的是ppmck目录下还有个ppmck文件夹,别弄晕了(呐~除了我之外一定也会有人弄得一团乱吧?
一定有的吧?
!
)。
之后运行mumml.exe,点那个齿轮按纽,切换到Compileconfigure标签,在Settingname一栏选择“ppmck[NSF](ppmckc_e)”;在Consoleapplication里填上ppmckc_e.exe的路径,比如X:
\mumml\prog\ppmck\ppmckc_e.exe;勾上Useplayer并在Player里填上VirtuaNSF的路径,比如X:
\VirtualNSF\VirtuaNSF.exe,O了~
7楼
MID2MML:
从某洛奇论坛找到的东西,可以把MIDI转换为MML,听上去很美是吧...
需要注意的是,每一轨上的复音数都必须为1,即在同一轨里2个音符在时间上不能交叉或重叠,否则无法转换,所以记得在音序软件里把MIDI中需要转换的那几轨复音限制为1。
因为这软件本来不是用于这个的,转换出来的东西当然也不能直接在PPMCK里用,音量和通道名字都要改改。
真正要命的问题是,这东西太过机械,转出来的文本比韩剧还冗长,比如4个连续的1/1休止符r1,它可不会给你转换成[r1]4,而是
Ar1
Ar1
Ar1
Ar1
,一个4分音符的c加个附点只需要写成c4.而转换出来的是c4&c8,每个音符前面都会加上通道名,还得手动去掉,还有,短于32分音符它是无法识别的,三连音也不行,所以这个只能用于一些节奏简单的旋律或者速度相对比较慢的和声声部,复杂的旋律声部还是推荐手写。
不知道作者是谁,给个新浪的下载地址吧
------------------------------
VirtuaNSF:
小巧又功能全面的播放器。
看名字似乎是和大名鼎鼎的VirtuaNES一个作者,管他呢,好用就行了。
只找到了这个翻译得很S的汉化版,华军的应该也没问题吧
基本工具有这几个也就差不多能开动了。
当然,这只是ppmck和mml方面,midi音序或者看谱方面的工具,什么sonar,nuendo,FL,overture之类的也是必要的,我就不信谁能盯着记事本,用字母和数字靠想象写出曲子来,有也别让我看到,不然我的嫉妒之火烧得他连骨灰都不留。
然后还剩下准备工作的最后一部分:
首先创建一个空文本,比如test.txt,把扩展名txt改为mml,并选择始终用记事本打开mml文件
运行mumml.exe,把test拖进mumml的窗口,这时test.mml就自动用记事本打开了,而Mumml的标题处也会显示test.mml,表示监视的是此文本,今后的战场可都在这记事本上了。
8楼
AREA1-“头”?
呼...总算是开“头”了
此BOSS资料里称做"header",学长我不知道怎么翻译好...叫文件头吧,虽然nsf文件的文件头大致内容就是这部分,但也不全是,还是直接叫header算了。
总之,知道一首NSF的创作一定是以它开始就行了,你的大作的名字,作曲者,版权,程序作者,还有一些特殊的声明,都是放在这。
先给个模板好了:
#TITLE test
#COMPOSER none
#MAKER n/a
#PROGRAMER invisible
#EX-MMC5
#EX-NAMCO1068
解读一下:
标题“test”,作曲“none”,版权"n/a",制作者“invisible”,使用扩展音源MMC5,使用扩展音源NAMCO1068通道可用
可以在这里以这种方式使用的指令详细列表(只列出用得上的):
------------------------------
#TITLE<字符串>
<字符串>
曲子的标题,会显示在大多数播放器的Title一栏,最长31字节
------------------------------
#COMPOSER<字符串>
<字符串>
作曲者,会显示在大多数播放器的Artist一栏,最长31字节
------------------------------
#PROGRAMER<字符串>
<字符串>
制作人,不会在任何地方显示...%#*&¥~那拿来干嘛的,MCK的作者蛋疼得慌
------------------------------
#MAKER <字符串>
<字符串>
版权所有者,会显示在大多数播放器的Copyright一栏,最长31字节
------------------------------
◎以下的几条暂时看不明白也没关系,后面用上时会再介绍的。
#OCTAVE-REV<数字>
<数字>(0或1)
一般不需要此条命令,用于颠倒">"和"<"的作用,默认值为0。
如果设置为0,">"记号将使本轨升高1个八度,"<"则是降低1个八度;
如果设置为1,"<"记号将使本轨升高1个八度;">"则是降低1个八度。
------------------------------
#EX-DISKFM
使FDS的通道F可用
------------------------------
#EX-NAMCO106<数字>
使N106的通道P,Q,R,S,T,U,V,W可用,数字为可用通道数,最大8个
例如:
#EX-NAMCO1063 ;P,Q,R通道可用
#EX-NAMCO1067 ;P,Q,R,S,T,U,V通道可用
------------------------------
#EX-VRC6
使VRC6的通道M,N,O可用
------------------------------
#EX-VRC7
使VRC7的通道G,H,I,J,K,L可用
------------------------------
#EX-MMC5
使MMC5的通道a,b可用
------------------------------
#EX-FME7
使FME7的通道X,Y,Z可用
------------------------------
#AUTO-BANKSWITCH<数字>
<数字>
可用作bank0中数据的范围的大小。
完全没弄懂什么是bank以及这个bank切换是怎么回事,只知道大概是说编译器是把数据组织成每8KB一个bank来处理,如果某一轨超出8KB便会发生溢出错误,那把某轨切换到别的bank就小于8KB了吗?
一共就只有0,1,2三个bank,那些100多KB的NSF又是怎么做出来的呢?
不解~期待有爱人士来解答。
总之如果发现语法错误以外的编译出错连mumml都直接crash掉的话,加上下面这条:
#AUTO-BANKSWITCH0
保证原地复活就是了。
------------------------------
#DPCM-RESTSTOP
当存在这条指令的时候,DPCM通道的休止符"r"会立即停止播放sample,而不必等到之前的sample播放完或者下一个sample被播放才停止。
即是说使用这句话的时候,"r"在DPCM通道有"mute"的作用。
------------------------------
#PITCH-CORRECTION
用于N106通道的音高修正。
由于这别扭受N106通道对通常的弯音(EP<数字>)和颤音(MP<数字>)命令是免疫的,因此需要更LEVELUP的这条命令配合"SA<数字>"来调教它~这几条命令和具体使用方法在后面会介绍的。
先就这样了吧~
AREA1CLEAR!
9楼
AREA2-通道基本设置和音符、记号的表示方法
有了刚才的准备,现在终于可以正式开始音乐的部分了。
先看看我们可以用哪些通道吧
通道 描述
A,B 2A03矩形波
C 2A03三角波
D 2A03噪音
E 2A03DPCM样本回放
F FDS 波表合成
G,H,I,J,K,L VRC7FM合成
M,N VRC6矩形波
O VRC6锯齿波
P,Q,R,S,T,U,V,W N106波表合成
X,Y,Z FME7Multisound合成
a,b MMC5矩形波
现在我们只管通道号,后面乱七八糟的描述以后再去打理。
为了一目了然要使用哪些通道,首先给出可用的通道的tempo,一定要是在header里设置为可用通道的。
(从这里开始有个原则,不管后面是音符,记号还是什么,每一行开头一定先指定通道,单数复数皆可,否则会出错)
例如只用2A03的话:
#TITLE 这里用汉字和其他字符轶可
#COMPOSER 使用脑残体火星文直接烧CPU
#MAKER 在VirtuaNSF里可以正常显示
#PROGRAMER 而VirtuaNES里除了ASCII字符全显示为空白
ABCDEt120 ;ABCDE通道的速度都为120bpm
以后的例子我就把header省略掉吧。
单独设置tempo也是可以的,比如:
ABt120
CDEt60
Ft240
t<数字>也可以放在音符中间,比如有的曲子中间有变速或者乐器演奏表情的需要之类的。
记得当前速度为最后一次设置的值。
10楼
下部分是音符,记号和一些有用的指令
在mml语言里,音符的表示方式是音名+时值
例:
c16 表示一个16分音符的C,至于在哪个八度上,需要用下面讲的o<数字>。
以下是在开始写音符前需要设定的一些东西,使用的场合和t<数字>相同,也是任意位置:
------------------------------
v<数字>
静态音量(StaticVolume)。
设定各通道(除三角波和DPCM通道)的整体音量,可用范围如下表:
通道 音量可用范围
C 不可设置
D 0-15
E 不可设置
F 0-63
G-L 0-15
M,N 0-15
O 0-63
P-W 0-15
X-Z 0-15
a,b 0-15
由于这种方式设定的音量只有“开”和“关”,要实现音色的起音和释放等包络需要用
@v<数字>的方式定义,那个以后再谈,现在还是拿这个简单的积累EXP先...
------------------------------
o<数字>
八度(octave)。
设定音符的默认音高在哪个八度上。
------------------------------
11楼
谁告诉我我做错了什么。
。
。
12楼
完成了通道的初始化,下面进入AREA2的BOSS战咯。
材料给同学们,能不能合成宝物就看大家自己了
音符:
cdefgabr(休止符)
升记号:
+ 例:
Ao4c+ ;C#4
降记号:
-
升八度:
>
降八度:
< 例:
Ao4f>c
符点:
.
延音记号:
& 例:
Ao4l4c&c ;一个1/2长度的C4
连音:
暂且这么称呼吧...我也不知道怎么说好。
花括号中的所有音符时值无效,N个音符N等分括号后的时值。
用于三,五,七连音等。
{-} 例:
{ccc}4 1/8三连音,共计占一个1/4音符长度
反复记号:
①[-] 例:
[fcde]4 相当于fcdefcdefcdefcde
②[-|-] 同上,在重复最后一遍时跳过竖线后的音符
来个综合的例子(一听就知道的NETA>_<):
l16o5[[fd]4|{eee}2]2{ggg}2
相当于fdfdfdfd{eee}2fdfdfdfd{ggg}2
循环:
L
最后一个音符结束时从L后的第一个音符开始循环播放。
Tips:
空格随便用,不影响节奏,最好每小节都用空格隔开,听着不舒服也方便修改。
每行写多少内容也是随你高兴的,多提几行方便设置loop循环。
到这里,凭现在的知识已经可以写出可以播放的NSF了吧
那就附上一个实例(不知道随便用别人的mml的好不好...不管了,反正11区人又不来我们韩度贴吧的)
只是让大家先看看格式,里面用到的很多指令下一块就会说明的。
14楼
AREA2CLEAR!
次回~音量、音色、音高相关指令详解
累死了先SAVE一个休息下改天CONTINUE
18楼
AREA3-音量、音色、音高相关指令详解
嘛~游戏差不多进入中后期了,对于难度的提升同学们要有心理准备哈。
19楼
STAGE1音量、音色
为什么要把这2个东西合起来说呢,其实有点囧...
大家都知道FC的内藏音源(扩展音源的音色内容比较多,留到下一块专门讲好了)都是简单的脉冲波形发
生器,由于各种乐器存在各不相同的泛音成分,所以不可能是简单波形或者相同的波形,这样在波形上是
没办法模拟出各种乐器的音色了(其实也不是完败,等下一块我们召唤FDS,N106和VRC7芯片就有能力逆袭
了)。
但是我们还没GAMEOVER,为了使可怜的几种波形听起来尽可能接近某乐器(好象差蛮多的...)还有个办
法就是在音量上模仿此乐器的ADSR,玩过合成器和一些比较完善的软音源的同学应该很熟悉才对,ADSR即
Attack(起音)、Decay(衰减)、Sustain(持续)、Release(释音),学长我怕用口水话会误导大家,绝对不
是偷懒!
就引用下XX百科了>_<
◎“波封”和之前提到的“包络”是同一个单词
--------------------------------------------------------
波封 英文名称:
Envelope
若将一种音色波形的大致轮廓描绘出来,就可以表示出该音色在音量变化上的特性,而这个轮廓就称
为Envelope(波封)。
------------------------------
参数描述
一个波封可以用4种参数来描述,分别是Attack(起音)、Decay(衰减)、Sustain(延持)、与Release(释音)
,这四者也就是一般称的“ADSR”。
一般音源机或合成器,会提供Attack与Release的调整参数;而较专业
的合成器,这4种参数则都会提供。
------------------------------
Attack(起音)参数
又分成AttackTime(起音时间)与AttackLevel(起音音量)。
若AttackTime的值越大,表示该音色从一弹
奏(压下琴键)到音量最大之间的时间会较长,声音听起来就好像慢慢起来的感觉;若AttackTime值越小,
表示从弹奏(压下琴键)到音量最大之间的时间会较短,声音听起来就比较铿锵。
而AttackLevel(起音音量
)的调整参数。
这是用来决定弹奏该音色所冲到的最高音量是多大。
Decay(衰减)参数
则有DecayTime(衰减时间)与DecayLevel(衰减音量)。
许多传统乐器的音色特性,是当一弹奏之初声音冲
到最大音量后,会立刻再往下掉一些,也就是衰减,直到音量稳定为止。
DecayTime就是用来决定这个衰
减会有多快。
Sustain(延持)参数
即SustainTime(延持时间)。
若您在电子键盘乐器上持续压住一个琴键,则声音在经过Attack与Decay之后
,会进入一个音量较为稳定的状态,这个时候就称为Sustain。
SustainTime就是用来调整当您一直按住琴
键的状
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FC音源作成with ppmck FC 音源 作成 with