Updating Old UTAU Tools

What format do you generally prefer?


  • Total voters
    19

Kiyoteru

UtaForum power user
Supporter
Defender of Defoko
Over the years, I've developed a handful of UTAU tools and shared them with the public on my GitHub and here in UtaForum's Resources. The oldest ones were made with Java back when I was first learning how to code, which was kind of a poor choice in hindsight and has caused grief for some users. I'd like to go over the possible courses of action for updating each of these tools and get some feedback on which will be the most useful. Here are the general approaches and the pros and cons of each.

setParam or UTAU plugins
This would be the most ideal, since it would allow the tools to be fully integrated into the normal workflow of OTOing a voicebank or editing USTs. However, the biggest disadvantage is that this would be Windows only. Mac users have always been at a disadvantage because UTAU-Synth doesn't support third party plugins and there's no Mac-native version of setParam (yet), which means they must use Wine in order to use the same tools that Windows users have.

Web applications
The most well known instance of this is UtaFormatix, which allows users to convert files between various vocalsynth software formats. It used to be a downloadable application for Windows, but has now moved online. If I were to update my tools in a similar way, they would be hosted on TUBS Tools alongside the Voicebank Terms of Use Generator. This makes it accessible to users of other OSes. However, it's a break from workflow, and more importantly, requires internet in order to access the page. It's also somewhat... messy. Theoretically, a webpage means that it can be updated and improved at any time, and that all users will have access to the latest and best version. In practice, I'm very unlikely to continue working on it after an initial version goes online.

Offline applications
This is another solution that could work independent of OS, and without relying on internet connection. But again, it's a break from workflow, and requires you to stop what you're doing in setParam or UTAU to run a separate application. The easiest way to do this would be to release python scripts, so users would need to have python installed. But it should be less of a headache than the current Java situation. I could also look into developing software with a full GUI and release builds for different OSes.

You're welcome to vote in the poll above as well as the poll on twitter.


Please feel free to discuss your preferences overall as well as for specific tools listed below.

Number Duplicate Aliases​

GH: https://github.com/adlez27/number-duplicate-aliases
UF: https://utaforum.net/resources/number-duplicate-aliases.303/

setParam has a built in function for adding numbers to duplicate aliases, but not for deleting duplicates, or keeping a certain maximum and deleting the rest. This tool would make the most sense to have as a setParam plugin.

Some users have expressed difficulty with using this tool due to the expectation that they can pre-number the aliases and then delete them later. However, this originally works by detecting EXACT matches. Detecting existing numbers would be more difficult, as some reclists use numbers to distinguish different phonemes. An updated version could provide the option to attempt stripping out numbers, with a warning that it may cause unexpected behavior.

VCCV to ARPAsing Plugin​

ARPAsing website: https://arpasing.neocities.org/en/resources/vccv-to-arpasing.html
UF: https://utaforum.net/resources/vccv-to-arpasing-plugin.343/

As it turns out, the plugin I modified did not allow modifications. This needs to either be rewritten as a new plugin or made into a replace list for iroiro, or fall under one of the other possible options described earlier. If this were to be changed into a web application, I could also put it up on the updated ARPAsing website.

Contextual ん Plugin​

GH: https://github.com/adlez27/context-n
UF: https://utaforum.net/resources/contextual-n-plugin.454/

This is already an UTAU plugin, but it was created before I was aware of Delta's C# class library for UTAU plugins. I'm also pretty unhappy with the git repo, and would be happy to rewrite this from scratch. A rewrite will probably not use the same context-n.ini format as before, but I'll try to convert old settings to whatever new format would be used.
Due to the reliance on per-voicebank settings, it would be inconvenient to have this as a web app or standalone app. Unless there's a very compelling reason not to do so, it will almost certainly remain as an UTAU plugin.

VCV Generator​

GH: https://github.com/adlez27/vcv-generator
UF: https://utaforum.net/resources/vcv-generator.312/

This would be more practical as a web app. I believe there are already other VCV reclist generator websites out there, so that sets a precedent. I can't see this fitting into setParam or UTAU as plugins.

OTO Generator​

GH: https://github.com/adlez27/oto-generator
UF: https://utaforum.net/resources/oto-generator.308/

I think I'd rather abandon this project. My new project, Label2OTO, does pretty much the same thing as OTO generator, but you don't have to prewrite your whole reclist and the labeling process allows you to generate an OTO that's already finished. This old generator merely gives you aliases and base values.
If there are any OTO Generator fans out there, please check out Label2OTO and look forward to when I make a video tutorial for it!

OTO Suffixer​

GH: https://github.com/adlez27/oto-suffixer
UF: https://utaforum.net/resources/oto-suffixer.306/

This is already built into setParam. For non-Windows users, I could easily replace this tool with a tutorial on how to add suffixes using a text editor. A text editor is very useful for many aspects of voicebank development, so I would need an extremely compelling case for the continued existence of a standalone suffixing tool.

OTO Aliaser​

GH: https://github.com/adlez27/oto-aliaser
UF: https://utaforum.net/resources/oto-aliaser.305/

In its current form, it's kind of primitive, but the idea has huge potential. Based on what I've already implemented in Label2OTO, this tool could have the capabilities to:
  • Find aliases and delete them
  • Find aliases and replace them with something else
  • Find aliases and create a copy of the parameters with another alias
This would all use regular expressions, which means that you can find things by matching partially or matching patterns instead of having to find exact matches. (If you're a user of Delta's alias duplicator, you feel my pain!!)

In fact, this could probably be merged into Number Duplicate Aliases as an overall alias-editing utility. As an OTO-editing tool, this would make the most sense as a setParam plugin.

UST Note Length Multiplier​

GH: https://github.com/adlez27/ust-note-multiplier
UF: https://utaforum.net/resources/ust-note-length-multiplier.294/

This makes the most sense as an UTAU plugin. It allows you to basically stretch or shorten the notes in the UST, while adjusting the tempo so that the final speed ends up exactly the same. This would be very handy for tuning fast songs, since you'd be able to "zoom in" a bit more and have more space to work with.

In its current state, it can only edit a whole UST file. The same would be true if this were a web app or python script. As an UTAU plugin, you'd be able to selectively apply it to only parts of a UST.
 
Last edited:
  • Love
Reactions: IDOLTRASH

NordGeit

Your stubborn Yotsuba Channel frequenter. Direct.
Supporter
Defender of Defoko
If you ask me, it all depends on how it's coded to begin with.
Which then depends on your skills.

So the real question I'd recommend you ask yourself is:
Can you port the code to the other methods?
It would naturally be an extra burden, but it could provide multiple solutions.

I'd say to develop scripts and have them be open source, and maybe some sort of madman can create a bridge...? I have no idea.

I mean, I'm only giving my thoughts, I'm not sure if I'm ever actually gonna USE what you make instead of brute-forcing it my way.
 

Nohkara

Pronouns: He/him
Supporter
Defender of Defoko
As Mac OS user, I would appreciate either web or offline version to be available. (Every Mac user doesn’t have an emulator or an older OS installed that can run wine)

But for a Win user, having them made as either SetParam or UTAU plug-in would be probably the best.

I don’t know how much time or skill you have but if you haven both, why not making two versions like plug-in&web ver or plug-in&script? If choosing only one is a must, I think web ver would be the best because that requires no installing gigabytes of files to run a single task.
 
  • Like
Reactions: Kiyoteru

Kiyoteru

UtaForum power user
Supporter
Defender of Defoko
Thread starter
Can you port the code to the other methods?
It would naturally be an extra burden, but it could provide multiple solutions.
Maybe this wasn't clear in my original post, but regardless of which approach I decide to take for a project, I will be rewriting the code.

I'd say to develop scripts and have them be open source, and maybe some sort of madman can create a bridge...?
It seems like you missed all of the GitHub links. You're already welcome to modify the existing public code.
 

NordGeit

Your stubborn Yotsuba Channel frequenter. Direct.
Supporter
Defender of Defoko
Maybe this wasn't clear in my original post, but regardless of which approach I decide to take for a project, I will be rewriting the code.


It seems like you missed all of the GitHub links. You're already welcome to modify the existing public code.
Either way, go with whatever makes it easiest to fork and modify to work on everything, including arch
 

Kiyoteru

UtaForum power user
Supporter
Defender of Defoko
Thread starter
As Mac OS user, I would appreciate either web or offline version to be available. (Every Mac user doesn’t have an emulator or an older OS installed that can run wine)

But for a Win user, having them made as either SetParam or UTAU plug-in would be probably the best.

I don’t know how much time or skill you have but if you haven both, why not making two versions like plug-in&web ver or plug-in&script? If choosing only one is a must, I think web ver would be the best because that requires no installing gigabytes of files to run a single task.
Seems like it would be a good idea to have online/offline versions of the aliasing tools.
The reclist/oto generator is already confirmed to be web-only.

As for Context N, VCCV to ARPAsing, and Note Length Multiplier (needs a better name), they'd be much easier to develop and use as windows UTAU plugins.
Context N relies on per-voicebank settings, but those could be manually copied/"uploaded" to a web app.
VCCV to ARPAsing as a web app would have to be a crude lyrics replacement, since splitting notes is much easier with UTAU plugins. I could possibly generalize this to any sort of find+replace of lyrics in a UST, and allow regex.
Note Length Multiplier is the easiest one to handle.
In all three cases, you'd have to process the whole UST at once, so you wouldn't have the opportunity to select a section and only process that part. (I could try letting users set a range of note numbers to edit, but note numbers aren't intuitive at all.)
 
  • Like
Reactions: Nohkara

Nohkara

Pronouns: He/him
Supporter
Defender of Defoko
Seems like it would be a good idea to have online/offline versions of the aliasing tools.
The reclist/oto generator is already confirmed to be web-only.

As for Context N, VCCV to ARPAsing, and Note Length Multiplier (needs a better name), they'd be much easier to develop and use as windows UTAU plugins.
Context N relies on per-voicebank settings, but those could be manually copied/"uploaded" to a web app.
VCCV to ARPAsing as a web app would have to be a crude lyrics replacement, since splitting notes is much easier with UTAU plugins. I could possibly generalize this to any sort of find+replace of lyrics in a UST, and allow regex.
Note Length Multiplier is the easiest one to handle.
In all three cases, you'd have to process the whole UST at once, so you wouldn't have the opportunity to select a section and only process that part. (I could try letting users set a range of note numbers to edit, but note numbers aren't intuitive at all.)
Sounds like a plan! I agree that not all tools need multiple versions.

I think that it’s great to have reclist/oto-generator as a web app, will look forward to that~
 
  • Like
Reactions: Kiyoteru

Kiyoteru

UtaForum power user
Supporter
Defender of Defoko
Thread starter
Either way, go with whatever makes it easiest to fork and modify to work on everything, including arch
If you're enthusiastic to go ahead with working on these projects yourself, by all means go ahead and do whatever you like with the existing repos. If you contribute any interesting ideas I'd be glad to merge them in.