A simple program used to convert MIDI file into Cytoid chart.
Juce Framework
Visual Studio 2019
a1.If the note holds till next time the scan line bounces back, the note will be a LONG HOLD (yelow one with a effect).
a2.If the note ends before next time the scan line bounces back, the note will be a SHORT HOLD.
b1.Each channel of 2~16 represents a distinct chain.
b2.When a first note on channel 2~16 is detected, the note is CHAIN HEAD.
b3.A chain MUST HAVE a note in that specific channel with velocity 127(max) to indicate it's END.
b4.If the note is not the first note detected, and it's not a CHAIN END, it's a CHAIN BODY note.
c1.It's a TAP note if the velocity is below 120.
c2.It's a FLICK note if the velocity is above or equal to 120.
d1.CytMIDI detects the LOWEST and HIGHEST pitch in the MIDI file.
d2.The lowest and highest note will appear at the leftmost and rightmost position.
d3.Notes between them will spread evenly according to their MIDI pitch.
4.CytMIDI will ask for the beat number of a single page. A bigger number will resulting a slow scan line, and a crowdy chart. This is usually set to 1/2/4.
用于将MIDI文件直接转换为Cytoid谱面的程序
Juce Framework
Visual Studio 2019
a1.若这个音符持续到扫描线折返,那么这是黄色长按音符(有竖向贯穿屏幕特效)。
a2.若这个音符没有持续到扫描线折返,那么这是普通长按音符(无特效)。
b1.通道2~16各代表一个独立的锁链。
b2.当首次检测到任意一个通道2~16的音符,这个音符是锁链起始。
b3.一个锁链【必须以一个力度为127(最大)的音符来表示结束】。
b4.如果不是首次检测到某个通道的音符,且该通道的锁链还未结束(参见b3),那么这个音符是锁链中部。
c1.如果这个音符力度<120,这是一个点击音符。
c2.如果这个音符力度>=120,这是一个滑动音符。
d1.CytMIDI会检测MIDI文件中的最高音和最低音。
d2.最高音和最低音会分别被放在谱面的最左和最右侧。
d3.在最高音和最低音之间的音符按照MIDI音高均匀分配在谱面上。