Rocaloid / RUCE

Rocaloid UTAU Compatible Engine
GNU General Public License v3.0
131 stars 25 forks source link

RUCE fails to compile, ld undefined references #12

Closed ElonSatoshi closed 7 years ago

ElonSatoshi commented 7 years ago
[ 75%] Linking C static library libcJSON.a
[ 75%] Built target cJSON
Scanning dependencies of target RUCE_s
[ 77%] Building C object CMakeFiles/RUCE_s.dir/src/Pitchbend.c.o
[ 78%] Building C object CMakeFiles/RUCE_s.dir/src/RUCEData.c.o
[ 79%] Building C object CMakeFiles/RUCE_s.dir/src/RUDB.c.o
[ 81%] Building C object CMakeFiles/RUCE_s.dir/src/Synth.c.o
[ 82%] Building C object CMakeFiles/RUCE_s.dir/src/UnitParam.c.o
[ 83%] Linking C static library libRUCE_s.a
[ 83%] Built target RUCE_s
Scanning dependencies of target RUCE_CLI
[ 85%] Building C object CMakeFiles/RUCE_CLI.dir/cli/GetPara.c.o
[ 86%] Building C object CMakeFiles/RUCE_CLI.dir/cli/RUCE_CLI.c.o
[ 87%] Building C object CMakeFiles/RUCE_CLI.dir/cli/WineUtil.c.o
[ 89%] Linking C executable RUCE_CLI
external/CVESVP/libCVESVP.a(Sinusoidal.c.o): In function 'CSVP_SinusoidItersizer_Float(long __restrict, long)':
Sinusoidal.c:(.text+0x46ff): undefined reference to 
'CSVP_SinusoidItersizer_Float__Compress'
external/CVESVP/libCVESVP.a(Sinusoidal.c.o): In function 'CSVP_SinusoidItersizer_Float_IterNextTo':
Sinusoidal.c:(.text+0x6837): undefined reference to 'CSVP_SinusoidItersizer_Float__Compress'
external/CVESVP/libCVESVP.a(Sinusoidal.c.o): In function 'CSVP_SinusoidItersizer_Float_PrevTo':
Sinusoidal.c:(.text+0x6fd2): undefined reference to 'CSVP_SinusoidItersizer_Float__Compress'
external/CVESVP/libCVESVP.a(Sinusoidal.c.o): In function 'CSVP_SinusoidItersizer_Double(long __restrict, long)':
Sinusoidal.c:(.text+0x87ff): undefined reference to 'CSVP_SinusoidItersizer_Double__Compress'
external/CVESVP/libCVESVP.a(Sinusoidal.c.o): In function 'CSVP_SinusoidItersizer_Double_IterNextTo\':
Sinusoidal.c:(.text+0xa93b): undefined reference to 'CSVP_SinusoidItersizer_Double__Compress'
external/CVESVP/libCVESVP.a(Sinusoidal.c.o): In function 'CSVP_SinusoidItersizer_Double_PrevTo':
Sinusoidal.c:(.text+0xb0d2): undefined reference to 'CSVP_SinusoidItersizer_Double__Compress'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/RUCE_CLI.dir/build.make:154: RUCE_CLI] Error 1
make[1]: *** [CMakeFiles/Makefile2:468: CMakeFiles/RUCE_CLI.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
m13253 commented 7 years ago

The RUCE project has been discontinued. We are really, really sorry about it. We suggest you try Moresampler as an alternate.

ElonSatoshi commented 7 years ago

Moresampler requires wine, and seems to be just be a "back-end" or just a resampler for UTAU, so it's not an alternative.

The last commit to RUCE was in 2015. The latest version of UTAU was released in 2013. So as long as RUCE doesn't make Teto sound like a drunk robot, I'm still willing to compile it, if you can tell me how to do so successfully. Or if there's something I don't know, such as it's actually just a backend for UTAU, or it's really hard to use or something, or there's never been a stable version.

m13253 commented 7 years ago

Or if there's something I don't know, such as it's actually just a backend for UTAU, or it's really hard to use or something, or there's never been a stable version.

Yes, RUCE is actually just a backend for UTAU. Even if you compiled it successfully, you still need UTAU (or alternatively Cadencii / jCadencii) to use it.

We once prepared to release an independent editor "RocaEditor". But our whole Rocaloid project suspended very soon, for various reasons. I apologize for the inconvenience. It is difficult to reunion our team now. It might take some years before the Rocaloid project relaunches, though we are not deterred.

Anyway, I can still try my best help you if you have any trouble running any other third-party resamplers or wavtool-yawu by Rocaloid. I personally use fresamp, but it is not updating for years, and runs very slow. A LA CARTE is also the plugin worthy to try as it eliminates some unnaturalness.

ElonSatoshi commented 7 years ago

If RUCE is a resampler, and wavtool-yawu is a wavtool, and UTAU is basically just an editor with wavtool.exe and resampler.exe... then maybe I can convert an .ust into sound using the command line, and edit the .ust with vim. Can you tell me how .ust processing works?

ElonSatoshi commented 7 years ago

I'm gonna close this issue. I can compile it if I checkout the nanodesu branch and initialize the submodules. Now if I could figure out how to make it produce a sound file, and how it works, I could perhaps create a script to put together a voicebank, ust, ruce resampler and wavtool. But there's no documentation. But that's for another issue.

RigoLigoRLC commented 2 years ago

For anyone else trying to compile master branch, here's the solution:

diff --git a/external/CVESVP/src/Iterator/_SinusoidItersizer.rc b/external/CVESVP/src/Iterator/_SinusoidItersizer.rc
index e961380..b0ca646 100644
--- a/external/CVESVP/src/Iterator/_SinusoidItersizer.rc
+++ b/external/CVESVP/src/Iterator/_SinusoidItersizer.rc
@@ -202,7 +202,7 @@ RTMethod(int , CSVP_SinusoidItersizer, GetPosition)
     } \
     } while(0)

-RTMethod(void __inline__, CSVP_SinusoidItersizer, _Compress)
+RTMethod(void, CSVP_SinusoidItersizer, _Compress)
 {
     RCall(CSVP_PhaseWrap, _T1)(& This -> LastPhse);
 }

Rocaloid is built upon a C based, heavily macro driven customized Object oriented system, this issue took me quite a while to find. I believe this programming mode is also part of the reason why Rocaloid was abandoned... for making the project notoriously hard to maintain. Also a nightmare to any IDEs.

RigoLigoRLC commented 2 years ago

If you happen to use Arch Linux or similar distros, this would be useful for installing a legitimate Rocaloid onto your system: https://github.com/RigoLigoRLC/legacy-rocaloid-pkgbuilds