返回列表 发帖

回复 #10 Bombtrack 的帖子

拜读过您关于这歌的测BPM的帖子,我感觉这首歌属于比较另类的吧,测个BPM都用了您所说的3种方法,此文方法不适用也似乎在情理之中。

这篇文章提出的方法具有一定的普遍使用性(毕竟一般的曲子BPM不会经常浮动),特别是对于新手和压音效率有很大帮助,由于某些个案而否定了此方法似有不妥。

当然了,放慢速度来检查压音乃是根本方法,并不与此文冲突,本文提出的是快速检查(强调效率)由于粗心所犯的压音错误(手一抖放错了线等情况)

欢迎继续讨论~

TOP

这文章有个很大的漏洞。
http://www.o2mania.com/4_Downloa ... 200907220005977.htm
别人的BMS我不清楚,这是我去年做的忍者神龟3,请用你的“快速检查方法”对此BMS进行一次检查,你就明白文章的漏洞在哪了。
实际检查压音,还得靠放慢。文章中的这个方法仅仅适用于BPM完全恒定且旋律变化反差很小的一部分曲子。可以说适用范围极小。
如果审核单单用此方法会很容易造成大量的冤案错案假案。
当然,作为技术帖,值得鼓励,有认真研究的心态,这是很好的。
不过方法的可用性和可行性就值得商榷了。

[ 本帖最后由 Bombtrack 于 2010-8-7 19:55 编辑 ]

TOP

- -嘛嘛,GUI本身就是开发人员为使用者创造的工具.就像PS是艺术家的工具一样,不可能所有人都是程序员的,研究源码与制作BMS并没有太多关系,最重要的不是用什么工具,而是找到可以尽情发挥的方法.
学习规则,然后忘掉规则...

TOP

。。。。东西少没有问题。。。东西多了以后。。。很复杂的说。。。昨天我用程序生成BMS,结果这个编码我足足复制了5分钟。。。。

TOP

技术性很强 不过貌似用不到哎 好复杂 不过应该支持一下技术贴

TOP

自动机其实我并不赞成,不过提高效率倒是很值得支持(这两者概念是不同的,人可以稍微偷点懒,不过超过一个“度”的话肯定要出事)


这篇文章还是很新颖的,加精了,希望LZ加油做出好的BMS

TOP

拍砖
子曾经曰过:在哪里跌倒了,就在哪里躺着。

TOP

四.应用之自动Note

记得向FF抱怨要是有软件检查“压音失误”时,FF戏言:“要是自动写Note那不更好”,通过二。理论篇的研究,我们是完全可以制造一个Note Generator的(在变速问题没有完美解决前,至少是可以做出恒定BPM的歌曲)


大致思路如下:


1.BPM


2.用频谱分析的方法测出音所在的位置(压哪格线?)和强弱、甚至音色


3.用随机数生成的方法即可自动生成“#001……”这些信息


可改进的有以下几方面:


1.加入自动识别重复旋律的功能以实现重复旋律Note的循环排列


2.判别音色排列出更有规律的Note(避免纯随机)


3.音响决定Note个数



发明是伟大的(至少像嘻哈练习曲、NOF等很有规律的曲子跑个程序就能出一套Note)然而,有了Note Generator,咱这些Noter还享受什么乐趣呢?



五.结论

本文通过对BMS文件的数字化研究,得出了检查“压音失误”的有效方法,可以有效提高Noter检查Note排列失误的效率,同时提出了自动Note(Note Generator)的构想(有点Crazy)。


最后,感谢CCTV,感谢浆糊论坛,感谢FF大大,祝大家的NOTE越写越好~红名作品越来越多~



(就本文有任何问题与想法,欢迎联系QQ拍砖QQ





handsome8848


2010.8.6



[ 本帖最后由 handsome8848 于 2013-8-19 16:35 编辑 ]

TOP

三.应用之压音检查篇:

如何将上文繁琐的BMS数字化应用在压音检查上?(注:此检查只针对由于粗心导致的错误,如下图Error 1,Error 2所示,对于抓音问题无法查出)


首先,我们需要观察整首曲子的大致最细压音Grid(忽略变速处用到的64Grid以及歌曲高潮密集处,取大部分谱面),就上图而言,如果无错误情况(见下图)

应该是压的Grid 8(每拍2线足矣,也就是每节8线),以此方法观察整曲发现最细压的大致是Grid 16(一般歌曲大概都是这个,即一小节16线,NOTE基本都落在16线上,某些High歌可能大量音符排列在Grid 32上,下面方法类推)

然后,我们用记事本打开歌曲的BMS文件,复制到WORD(此举为了防止直接修改BMS文件,要知道记事本中修改BMS文件对NOTE会有影响!)删去多余部分,即 *---------------------- MAIN DATA FIELD”之前的部分都删去,只保留数据区(MAIN DATA FIELD)。

接着进行如下WORD操作:
0.CTRL+H(替换),点击“更多>>”并勾选“使用通配符”(重要!)如图



在“查找内容”中粘贴“#0??0?:*^13”,“替换为”保持空格状态,点击“全部替换”(注:此操作删除掉“#0xx0x:……”的部分,即删除所有变速段,此法检查压音不考虑变速部分的压音,因为变速部分经常使用高BPM以及密格线)

1.
CTRL+H(替换)查找内容:“#?????:??^13à替换为空格à全部替换(删除掉所有压Grid 1的部分,冒号后2个问号)
2.
CTRL+H(替换)查找内容:“#?????:????^13à替换为空格à全部替换(删除掉所有压Grid 2的部分,冒号后4个问号,注:Grid 1Grid 2BMSE中没有视图,Grid 1即为1小节最多1NoteGrid 21小节最多2Note且压在小节均分处)
3.
CTRL+H(替换)查找内容:“#?????:????????^13à替换为空格à全部替换(删除掉所有压Grid 4的部分,冒号后8个问号)
4.
CTRL+H(替换)查找内容:“#?????:????????????????^13à替换为空格à全部替换(删除掉所有压Grid 8的部分,冒号后16个问号)
5.
CTRL+H(替换)查找内容:“#?????:????????????????????????????????^13à替换为空格à全部替换(删除掉所有压Grid 16的部分,冒号后32个问号)

至此,剩下的Note信息都是压Grid 32Grid 64的了,即为“变速密集区”、歌曲密集区及可能的错误区(超出了普遍的压线密度),以上例说明,替换后得到的结果如下:


#00111:02000000000000000000000000000000020000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000
#00112:00000000000000000200000000000000000000000000000000020000000000000000000000000000000000000000000002000000000000000000000000000000
#00113:0000000002000000000000000000000000000000000200000000000002000000
#00115:00000000000000000000000000000000000000000000000000020000000000000000000000000000000002000000000000000000000000000000000000000000



说明第一节的1,2,5(对应2,3,6号键)压了64线(有128位),3(对应4号键)压了32线




与实际情况完全相符(6号键既犯了Error 1 压了32线,又犯了Error 2压了64线,取更细的线即64线)。




对于几十个小节,上百个小节的BMS文件,只需要上述步骤,经过筛选即可得到压线过细(相对于整曲大致最细压线水平),即为可能的粗心摆错线的小节(问题小节)。当然,对于由于变速、或者歌曲自身原因需要压32线、64线的小节也会被误判为“问题小节”,这时我们只需要在“问题小节”中筛选出真正有问题的Note即可(忽略变速、音乐密集的小节)




有此方法,可以大大缩短NOTER检查粗心导致的压音错误的时间(BTW,也可作为FF检查上传作品的方法之一)。需要强调的是,该方法不能检查出所有(特别是抓音不准等问题导致的)压音不准的问题。但对于检查粗心所导致的摆放错误,这无疑是一个筛选的好方法。






[ 本帖最后由 handsome8848 于 2010-8-8 11:44 编辑 ]

TOP

看完这两条大家或许有些晕头转向了,下面以上图所示例子(设为#001)写出对应的BMS语言

1号键:对应X=6(见上文提到的对应关系),最细压在Grid 4,故一共有8位,Grid 4视图如下


第一个GridNote,即第一部分为00,第二个Grid线上有一个Note#WAV 02),故第二部分为02,后2Grid都无Note,故后2个部分为0000,综上,记录为#00116:00020000.

2号键:对应X=1(见上文提到的对应关系),最细压在Grid 8,故一共有16位,Grid 8 视图如下




第一个Grid Note,为00,第二个Grid 有一个Note,为02,第三个Grid 有一个Note,为02,后均无Note,故4-8“部分”(每部分2位构成)均为00,总计为#00111:0002020000000000

同样可以写出3号键(压Grid 16),4号键(压Grid 32)……的BMS
3号键(白,X=2) #00112:00020000020000000000000000000000
4号键(黄,X=3#00113:0002000000000000020000000000000000000000000000000000000000000000
5号键压Grid 64数字串位数则有128位之多。

别忘了6,7号键的面条,只需要将“#001YX”中的Y1换成5即可(Y=1为米粒,Y=5为面条),即6号键(对应X=5,并参照1号键的BMS语言)为#00155: 000200007号键为(X=8#00158: 00020000

不妨试着写这样一段NOTE,用记事本打开看看是不是这样?
同样的,如果用记事本写下这一段BMS语言,用BMSE打开,即可看到NOTE效果!

至此我们已经可以用记事本写无K-BMS了(变速问题仍未解决,召唤神牛参与变速部分的破译工作,为何变速有两行信息0308,且有些#BPM没有在变速列表之中?

有人可能纳闷,费这么大劲弄这个干吗?依我看来,至少有2个作用:一是自己可以开发写Note的程序了(依据BMS语言)可以制作出新的BMS制作软件(讨论见“四.应用之自动Note机”);二是本文的高潮与主题---BMS文件数字化在压音检查中的应用”



[ 本帖最后由 handsome8848 于 2010-8-6 23:24 编辑 ]

TOP

返回列表