搜索

iVocaloid论坛

查看: 2812|回复: 10
打印 上一主题 下一主题

〖求助〗关于VSQ文件(自认VB 、VC++、VC#高手的请进) [复制链接]

充気娃娃

そんなことはないよ。。。 ...

Lv.4-触手吸盘

Rank: 4Rank: 4

0
20
0


UID: 74329
权限: 30
属性: 受性
发帖: 90 (1精)
积分: 494
章鱼: 5
大葱: 42
茄子: 4563
注册:2010/12/26
存在感:295

创作者 茄子饲养者

跳转到指定楼层
[1L]楼主
RainのNight 发表于 2011/5/8 16:06:14 |只看该作者 |倒序浏览
本帖最后由 RainのNight 于 2011/5/29 13:36 编辑

因为尝试了一下用VocalTune处理VSQ,结果很不理想。而且几百K的文件竟然会变成几十M,大一点VSQ也无法正常处理。
我所知道的VocalTune有两个版本,第一个版本虽然可以处理大文件,但速度慢,而且对音量处理很不明显。
第二个版本在处理文件的速度大提升了相当的多,效果也更真实,但在处理大一点VSQ时会出错。这点很蛋疼

所以打算自己作一个类似的东西。只是不知道VSQ文件的内部格式
目前我只能分析VSQ的文件头部分的数据。
想请求高手提供此类文件的内部格式。

如果可以,希望提供相关的VB、VC代码

谢谢!

另外:关于Wav文件部分正在测试中,估计我会加入对于伴奏、歌声等提取的功能。


知识共享许可协议 除非另有声明,本帖内容采用 署名-非商业-相同方式共享 3.0 许可协议 授权,且需注明出处,所有权利归发帖人。
この世界上に物事が二種である果てしない、「一つは宇宙、もう一つは人間の愚昧」——アインシュタイン

使用道具 举报

Rank: 6Rank: 6

0
8
1


UID: 63361
权限: 50
属性: 不明
发帖: 364 (1精)
积分: 1050
章鱼: 8
大葱: 107
茄子: 599
注册:2010/4/11
存在感:149

创作者

[2L]沙发
Doream 发表于 2011/5/8 20:28:28 |只看该作者
我只知道修改DYN和PIT参数的vocasim给的是源代码,不过是perl代码。

使用道具 举报

Rank: 4Rank: 4

0
26
0


UID: 64688
权限: 30
发帖: 176 (0精)
积分: 399
章鱼: 4
大葱: 27
茄子: 756
注册:2010/5/12
存在感:126
[3L]板凳
regnad 发表于 2011/5/9 16:15:30 |只看该作者
vsq格式没有涉足过。
不过我还是在网上发现了VSQ格式的介绍。
http://www5d.biglobe.ne.jp/~nooc ... FileFormat/VSQ.html

使用道具 举报

Rank: 9

44
447
15


UID: 62030
权限: 80
属性: 不明
发帖: 1371 (1精)
积分: 8944
章鱼: 183
大葱: 249
茄子: 9818
注册:2010/2/22
存在感:1289

茄子饲养者 创作者 创作达人 葱田播种者 讨人喜欢的家伙 已经合不上嘴了... 隐型则玲~ 巡音の爱 全能创作者 KUKU神的意志 オト厨们的专属徽章 水王 终身成就 发帖达人

[4L]地板
maplestyle 发表于 2011/5/9 18:49:23 |只看该作者
雖然我不是VB 、VC++、VC#高手,但是我可以幫忙找資料,於是沒有被牆的壓力所以更加好找!★

使用道具 举报

充気娃娃

そんなことはないよ。。。 ...

Lv.4-触手吸盘

Rank: 4Rank: 4

0
20
0


UID: 74329
权限: 30
属性: 受性
发帖: 90 (1精)
积分: 494
章鱼: 5
大葱: 42
茄子: 4563
注册:2010/12/26
存在感:295

创作者 茄子饲养者

[5L]萝莉
RainのNight 发表于 2011/5/18 09:09:18 |只看该作者
本帖最后由 RainのNight 于 2011/5/18 09:25 编辑

首先,要感谢大家的支持!

回复 4# regnad

    特别感谢4L提供这么好的情报!

发表一下这一个多星期的努力成果,可能没什么用来着。。。
因为找不到反编译VocalTure的工具(那东西貌似用C++编的,我不是很清楚)
下面的东西是通过WinHex以及对那个口型生成工具(叫什么来的着,名字忘了)的vsq模块反编译后总结出来的

'文件Chunk(共14字节)
4d 54 68 64 '4字节 File Chank ///MThd
00 00 00 06 '4字节 Chank length ///6
00 01 '2字节 Format number ///1
00 XX '2字节 Track number(XX默认02) ///2
01 e0 '2字节 时间单位 ///480 注:这是指MID中将每一拍被分为480份
'音轨Chunk(多轨文件则重新从此处开始)
主音轨部分:
4d 54 72 6b '4字节 Track Chank ///MTrk
00 00 00 XX '4字节 Track Data length ///一般为33
00 ff '2字节 格式标识 ///255
03 '1字节 シーケンス名标识 ///3
0c '1字节 シーケンス名偏移 ///12
4d 61 73 74 65 72 20 54 72 61 63 6b シーケンス名 '12字节 シーケンス名 ///Master Track
00 ff '2字节 格式标识 ///255
51 '1字节 テンポ标识 ///81
03 '1字节 テンポ偏移 ///3
0a 0d da '3字节 テンポ值 ///658906 注:这是转换后的值
00 ff '2字节 格式标识 ///255
58 '1字节 拍子标识 ///88
04 '1字节 拍子偏移 ///4
04 02 18 08 '4字节 拍子 ///
00 ff '2字节 格式标识 ///255
2f 00 '2字节 此段结束
内存值如下:
                  00 ff 03 0c 4d 61 73 74 65 72
20 54 72 61 63 6b 00 ff 51 03 0a 0d da 00 ff 58
04 04 02 18 08 00 ff 2f 00
第一音轨部分:
4d 54 72 6b '4字节 Track Chank ///MTrk
00 04 e7 7d '4字节 Track Data length ///321405 此例的值
00 ff '2字节 格式标识 ///255
03 '1字节 シーケンス名标识 ///3
06 '1字节 シーケンス名偏移 ///6 此例的值
a5 dc a5 a4 a5 b9 '字节为上述的值 シーケンス名 ///ボイス 注:Shift-JIS 此例的值
00 ff '2字节 格式标识 ///255
7f '1字节 テキスト长度 ///127
44 4d 3a 30 30 30 30 3a ... '127字节 文本数据 注:删去DM:0000:之类的数据后应为119字节
'循环上述3条N次后,每次得到119字节的有效数据
直到如下情况:
00 b0 '2字节 文本主体可识别部分结束 ///
或者
2f '1字节 文本主体读取完毕 ///此处正确的内存值应该为2f 00,所以处理要偏移2个字节
除上述两种情况外,其它情况则说明这是个错误文件

'音轨信息
[Common]
Version=DSB301 '版本
Name=Voice1 '音轨名称
Color=181,162,123 '音轨选项卡的颜色
DynamicsMode=1
PlayMode=1
[Master]
PreMeasure=4
[Mixer]
MasterFeder=0
MasterPanpot=0
MasterMute=0
OutputMode=0
Tracks=1
Feder0=0
Panpot0=0
Mute0=0
Solo0=0
'音轨数据
[EventList]
0=ID#0000 '格式为MID时间点或段=ID#索引号
7680=ID#0001 '第一个音(例)
230400=EOS '音轨结束(例)不指定索引
[ID#0000] '无音索引号的数据
Type=Singer
IconHandle=h#0000
[ID#0001] '有音索引号的数据
Type=Anote
Length=240
Note#=64
Dynamics=64
PMBendDepth=8
PMBendLength=0
PMbPortamentoUse=0
DEMdecGainRate=50
DEMaccent=50
LyricHandle=h#0001 '歌词索引号
[h#0001] '第一个歌词
L0="i","i",0.000000,0,0
[h#0002] '下一个歌词(例)
L0="tsu","ts M",0.000000,64,0,0
[h#0066] '无歌词,音的结束点(例)
IconID=$04040001
IDS=normal
Original=1
Caption=[Normal] Type 1
Length=680
StartDepth=64
DepthBPNum=0
StartRate=50
RateBPNum=0
'参数
[PitchBendBPList] 'PIT参数(-8192到8191,默认0)
7680=0 '格式为MID时间点或段=参数值
[PitchBendSensBPList] 'PBS参数(0到24,默认2)
7680=2 '格式为MID时间点或段=参数值
[DynamicsBPList] 'DYN参数(0到127,默认64)
7680=64 '格式为MID时间点或段=参数值
[EpRResidualBPList] 'BRE参数(0到127,默认0)
7680=0 '格式为MID时间点或段=参数值
[EpRESlopeBPList] 'BRI参数(0到127,默认64)
7680=64 '格式为MID时间点或段=参数值
[EpRESlopeDepthBPList] 'CLE参数(0到127,默认0)
7680=0 '格式为MID时间点或段=参数值
[GenderFactorBPList] 'GEN参数(0到127,默认64)
7680=64 '格式为MID时间点或段=参数值
[PortamentoTimingBPList] 'POR参数(0到127,默认64)
7680=64 '格式为MID时间点或段=参数值
[OpeningBPList] 'OPE参数(0到127,默认127)
7680=127 '格式为MID时间点或段=参数值

有一些东西貌似可有可无
この世界上に物事が二種である果てしない、「一つは宇宙、もう一つは人間の愚昧」——アインシュタイン

使用道具 举报

叫我小艾或者河蟹的都可以...... ...

~捂脸内核~

Rank: 7Rank: 7Rank: 7

0
26
0


UID: 82625
权限: 50
属性: 不明
发帖: 81 (0精)
积分: 399
章鱼: 5
大葱: 25
茄子: 484
注册:2011/5/14
存在感:305

创作者

Axiom.Latis 发表于 2011/5/18 10:00:16 |只看该作者
回复 1# RainのNight


    不妨尝试下waves 的tune=。=
还有 你只要了解下声学的基础 自己就可以轻松弄出来
具体的请参考midifan(具体第几期我忘了=。=)

使用道具 举报

我们是打酱油的围观党。.。 ...

Lv.4-触手吸盘

Rank: 4Rank: 4

0
10
0


UID: 72463
权限: 30
发帖: 128 (0精)
积分: 277
章鱼: 4
大葱: 13
茄子: 575
注册:2010/11/7
存在感:177
[7L]大姐姐
'kex 发表于 2011/5/18 21:47:06 |只看该作者
那个..想请问一下楼主将带参数的midi转换为vsq的可行性..

使用道具 举报

絵罪時

努力让扇子妹不再天然呆

~音乐版主~

Rank: 11Rank: 11Rank: 11

0
172
3


UID: 66729
权限: 100
属性: 軟性
发帖: 1492 (0精)
积分: 5484
章鱼: 78
大葱: 340
茄子: 20330
注册:2010/6/24
存在感:720

茄子饲养者 水王 创作者 发帖达人 创作达人 葱田播种者 已经合不上嘴了... 隐型则玲~

[8L]实妹
とあるAzige 发表于 2011/5/20 12:15:15 |只看该作者
回复 8# 'kex


    midi的部分参数是可以导入V里的……vsq本来就是midi的一种……

使用道具 举报

我们是打酱油的围观党。.。 ...

Lv.4-触手吸盘

Rank: 4Rank: 4

0
10
0


UID: 72463
权限: 30
发帖: 128 (0精)
积分: 277
章鱼: 4
大葱: 13
茄子: 575
注册:2010/11/7
存在感:177
'kex 发表于 2011/5/20 12:54:32 |只看该作者
'参数
[PitchBendBPList] 'PIT参数(-8192到8191,默认0)
7680=0 '格式为MID时间点或段=参数值
[PitchBendSensBPList] 'PBS参数(0到24,默认2)
7680=2 '格式为MID时间点或段=参数值
[DynamicsBPList] 'DYN参数(0到127,默认64)
7680=64 '格式为MID时间点或段=参数值
[EpRResidualBPList] 'BRE参数(0到127,默认0)
7680=0 '格式为MID时间点或段=参数值
[EpRESlopeBPList] 'BRI参数(0到127,默认64)
7680=64 '格式为MID时间点或段=参数值
[EpRESlopeDepthBPList] 'CLE参数(0到127,默认0)
7680=0 '格式为MID时间点或段=参数值
[GenderFactorBPList] 'GEN参数(0到127,默认64)
7680=64 '格式为MID时间点或段=参数值
[PortamentoTimingBPList] 'POR参数(0到127,默认64)
7680=64 '格式为MID时间点或段=参数值
[OpeningBPList] 'OPE参数(0到127,默认127)
7680=127 '格式为MID时间点或段=参数值
-------------------------------------------------------------------------
看到上面这段希望楼主能开发出可以把全部参数都转换为VSQ的程序...T T

使用道具 举报

叫我小艾或者河蟹的都可以...... ...

~捂脸内核~

Rank: 7Rank: 7Rank: 7

0
26
0


UID: 82625
权限: 50
属性: 不明
发帖: 81 (0精)
积分: 399
章鱼: 5
大葱: 25
茄子: 484
注册:2011/5/14
存在感:305

创作者

[10L]幼驯染
Axiom.Latis 发表于 2011/5/20 17:39:01 |只看该作者
回复 10# 'kex


    恩  说实话吧 PIT和PBS有了 不过不可靠 毕竟0+4=4但是1+4≠4
bir的话  用扫谱仪就行
好像ope有点···

使用道具 举报

我们是打酱油的围观党。.。 ...

Lv.4-触手吸盘

Rank: 4Rank: 4

0
10
0


UID: 72463
权限: 30
发帖: 128 (0精)
积分: 277
章鱼: 4
大葱: 13
茄子: 575
注册:2010/11/7
存在感:177
[11L]怪蜀黍
'kex 发表于 2011/5/20 21:42:48 |只看该作者
回复 11# Axiom.Latis
嚎吧...某完全听不懂了...回去抱vsti去...

使用道具 举报

您需要登录后才可以回帖 登录 | 注册/sign up

申请友链|Archiver|iVocaloid - 自由,开放,合作,共享    | 版权持有者点击这里进行举报

GMT+8, 2025/6/9 23:06

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部