UtaFormatix is an application for converting projects among singing voice synthesizer softwares.
The current version 3.x
is built with Kotlin for JavaScript
and React.
- Supported importing
formats:
.vsqx(3/4)
,.vpr
,.vsq
,.mid(VOCALOID)
,.mid(standard)
,.ust
,.ustx
,.ccs
,.xml(MusicXML)
,.musicxml
,.svp
,.s5p
,.dv
,.ppsf(NT)
,.ufdata
- Supported exporting
formats:
.vsqx(4)
,.vpr
,.vsq
,.mid(VOCALOID)
,.mid(standard)
,.ust
,.ustx
,.ccs
,.xml(MusicXML)
,.svp
,.s5p
,.dv
,.ufdata
- Keep information including: tracks, notes, tempo labels, time signatures
- Detect and convert Japanese lyrics types
- between CV and VCV
- between Kana and Romaji
- Find/Replace texts in the lyrics
- Convert pitch for the following supported formats
Format | Pitch import | Vibrato import | Pitch export |
---|---|---|---|
VSQ/VSQX/VPR/MID(V1) | ✓ | ✓ | |
UST(mode2) | ✓ | ✓ | ✓ |
UST(mode1) | ✓ | N/A | ✓ |
USTX | ✓ | ✓ | ✓ |
CCS | ✓ | ✓ | |
SVP | ✓ | ✓ | ✓ |
S5P | ✓ | ✓ | |
DV | ✓ | ✓ | ✓ |
We have published the internal data format of UtaFormatix to UtaFormatix Data.
If you are developing OSS projects related to singing voice synthesis, you may find it useful.
時雨ゆん, KagamineP , Exorcism0666
- Install IntelliJ IDEA
- Clone and import as a Gradle project
- Configure IDEA's Gradle settings with
JDK 11
andUse Gradle from: gradle-wrapper.properties file
- Run by
./gradlew run
or Gradle Taskother/run
Code contribution is welcomed. Basically, please cut your branch from develop
and make Pull Requests towards develop
branch.
Please check Format.kt and its usages.
Please check Strings.kt.
Please check ConfigurationEditor.kt about how the existing processes work.
Pull requests require build check to be merged. Besides normal building of the project, a format check is conducted.
Please confirm that the build
and ktlintCheck
Gradle tasks pass before submitting your code.
You may find ktlintFormat
task helpful, which helps fix most format problems.
If your IDE's formatter is conflicting with ktlint
, please import format settings
from .editorconfig (IntelliJ IDEA uses it by
default).