all
a
/
b
/
c
/
f
/
h
/
j
/
jp
/
l
/
o
/
q
/
s
/
sw
/
lounge
cgi
up
wiki
Heyuri!
Bulletin Boards
2D Cute
2D Ero
2D Lolikon
3D Girls
Anime/Manga
Flash
Girl Talk
日本語/Japan
Lounge
Oekaki
Off-Topic
Site Discussion
Strange World
Overboard
Heyuri★CGI
Heyuri★CGI
@PartyII
Battle Royale R
Chat
Chinsouki★
Dating
DevChat
Drama Club
Hakoniwa Islands PvE
Hakoniwa Islands PvP
Polls
Slime Breeder
Web Banana
Web Shiritori
Yumemiru Gambler
Kakiko Checker
Other
Anime Nominations
Banners
Cytube
Heyuri Calendar
Heyuri Wiki
MAL Club
Museum
Steam Group
Uploader
[
Settings
]
[
Home
] [
Contact
] [
Catalog
] [
Search
] [
Thread list
] [
Stats
] [
Reports
] [
Watcher
] [
PMs
] [
Admin
]
Off-Topic@Heyuri
it's the place to be!
[
Return
] [
Bottom
]
Posting mode: Reply
Name
E-mail
sage
noko
dump
Subject
Post
Comment
Tegaki
Emotes
Kaomoji
ヽ(´ー`)ノ
(;´Д`)
ヽ(´∇`)ノ
(´人`)
(^Д^)
(´ー`)
( ´,_ゝ`)
(´~`)
(;゚Д゚)
(;゚∀゚)
┐(゚~゚)┌
ヽ(`Д´)ノ
( ´ω`)
(゚ー`)
(・∀・)
(⌒∇⌒ゞ)
(゚血゚#)
(゚ー゚)
(´¬`)
(´π`)
ヽ(゚ρ゚)ノ
Σ(;゚Д゚)
Σ(゚д゚|||)
キタ━━━(・∀・)━━━!!
(*゚∀゚)
( ̄ー ̄)
\(^o^)/
(´・ω・`)
(σ・∀・)σ
(*^ー゚)b
(-_-)
(=゚ω゚)ノ
(・A・)
( ´∀`)つ
(@^▽^)/
Emoji
BBCode
B
I
U
S
Spoiler
Quote
Scroll
Code
C
o
l
o
r
Size
ASCII
File
Animated GIF
Password
(for deletion)
Allowed file types are: gif, jpg, jpeg, png, bmp, webp, swf, webm, mp4
Maximum file size allowed is 50000 KB.
Images greater than 200 * 200 pixels will be thumbnailed.
16
unique users in the last 10 minutes (including lurkers)
Switch form position
|
BBCode reference
|
Banned?
|
Quick reply
|
Post API
Read the
rules
before you post.
Protect your username, use a
tripcode!
日本のへゆり
2026-08-14
-
meow
2026-08-13
-
Kaotype, kaomoji at your fingertips
2026-08-10
-
Hot OL x Peanut Butter Cracker
2026-07-31
-
Report feature is added. You can now report posts via their dropdown menu
[
Show all
]
We will watch
Mahou Shoujo Neko Taruto
(2001) this Saturday 18:00 UTC [
Info
] [
Countdown
]
We will have Bunkasai on 19-20 September [
Info
]
Want your banner here? Click here to submit yours!
File:
v2-pm.png
(42 KB, 1157x838)
ImgOps
Hide image
ImgOps
Hide image
▶
VOCALOID2 pitch and dynamics model
QueueSevenM
◆Tnq5UWtkfs
[
PM
]
2026/08/17
(Mon)
05:45:47
No.
190751
[
Report
]
+
AS
▶
Hello,
In a previous post, I was talking about some potential experiments/variations I would have to do on the pitch/dynamics model for my VOCALOID2 recreation project. I had already programmed the base code for Bonada 2005 expression system, actually many months ago now. This was all in anticipation of the day I finally compare my system to samples that were actually generated by VOCALOID2. Well today I decided that day is now... and I was totally wrong about everything.
Well not everything, but I was wrong about the expression system. It was actually the Ortola 2001 expression system that was still used in VOCALOID2 seemingly, except using a different dynamics model from the Predictive Amplitude Shaping algorithm that was used in VOCALOID1.
Anyway, at first this made me even more concerned, because there was much less information about the Ortola 2001 expression system. One of the big mysteries was how the pitch was handled over the note duration. Well, as you can see in the attached image, it is very simple. In fact it is actually the simplest thing possible - it is a straight line.
>>
1
QueueSevenM
◆Tnq5UWtkfs
[
PM
]
2026/08/17
(Mon)
05:51:54
No.
190752
[
Report
]
+
▶
File:
vocalegato.png
(19 KB, 592x413)
ImgOps
Hide image
ImgOps
Hide image
▶
Another thing that concerned me was the dynamics model, since there was no description of this at all anywhere. But luckly, it proved to be incredibly simple. Simple enough that I was able to recreate it just by fiddling around for a couple hours in Jupyter notebook.
In general, I feel like I have enough from the creators of VOCALOID that I have in a way gain an intuition for their thought process and what mathematical structures they favored. Below, I have presented in a demonstration of a partial recreation of the dynamics model and template-less legato pitch transition model (my [orange] vs V2 [blue] legato pictured). For an example of this thought process understanding, the first thing I tried for note dynamics decay was a formula of the form y*(e^-x - 1), which was inspired from the formula used for computing the source curve in the Excitation plus Resonance model, and it worked. Another example is the way the exponent is used in the legato transition function, which was inspired in a way from the formula used for that same transition mentioned in the Bonada 2005 expression system patent (
https://patents.google.com/patent/JP2006330615A).
Code:
import numpy as np
def synthesize_note_dynamics(note_on, duration, amplitude, sr=22050):
v = np.zeros(round((duration + note_on + 1.0) * sr))
for itr in range(len(v)):
t = itr / sr
if t >= note_on and t < note_on + 1.25:
amp_attack = np.cos(((t - note_on) / 1.25) * (np.pi / 2.0)) * 0.4 + 0.6
else:
amp_attack = 0.0
if t > note_on + 1.25:
amp_decay = 0.6 + (np.exp(-(t - (note_on + 1.25)) / (duration - 1.25)) - 1.0) * 0.175
else:
amp_decay = 0.0
if t >= note_on - 0.015 and t < note_on + 0.005:
amp_spike1 = (1.0 - abs((t - (note_on - 0.005)) / 0.01)) / 4.0
else:
amp_spike1 = 0.0
# Note: There is also a fade of about 33% that occurs near the end that lasts about 100ms.
# The rest of the fade is handled by an articulation from phoneme to silence.
# The fade is not modeled here since its time depends on the length of that articulation.
v[itr] = (amp_spike1 + amp_attack + amp_decay) * amplitude
return v
# In cents/log-scale
# XXX: Special case for very large legato, >1 ocatve
def synthesize_legato(start_time, duration, start_pitch, end_pitch, sr=22050):
v = np.zeros(round((duration + start_time + 1.0) * sr))
for itr in range(len(v)):
t = itr / sr
if t >= start_time and t < start_time + duration:
if end_pitch >= start_pitch:
v[itr] = start_pitch + (end_pitch - start_pitch) * (((t - start_time) / duration) ** 0.8)
else:
v[itr] = end_pitch + (start_pitch - end_pitch) * ((1.0 - (t - start_time) / duration) ** 1.5)
elif t < start_time:
v[itr] = start_pitch
else:
v[itr] = end_pitch
return v
>>
2
QueueSevenM
◆Tnq5UWtkfs
[
PM
]
2026/08/17
(Mon)
05:54:56
No.
190753
[
Report
]
+
▶
Oh no! It seems Heyuri messed up the formatting!
I guess I'll use the uploader:
https://up.heyuri.net/src/6124.txt
>>
3
Anonymous
2026/08/17
(Mon)
07:26:55
No.
190757
[
Report
]
+
▶
File:
d84b3210af89d64439c07e7c7b3c073367b834c(…).jpg
(223 KB, 1080x984)
ImgOps
Hide image
ImgOps
Hide image
▶
キタ━━━(゚∀゚)━━━!!
>>
4
Anonymous
2026/08/17
(Mon)
07:54:20
No.
190759
[
Report
]
+
▶
> Bonada 2005 expression system
Who is Bonada and what is an expression system?
Want your banner here? Click here to submit yours!
[
Top
]
Delete post: [
File only
]
Password:
First
[1]
Last
Style: