NeuralNote をコンパイル 日本語ファイル名に対応

Juceのロゴが出る時は、情報収集してるかもしれないから消したい。

※コードを見ていたら情報収集とロゴは関係ないかもしれない。

けど、分かりにくいからGPLモードにしたい。 


ダウンロード

https://github.com/DamRsn/NeuralNote

https://github.com/jatinchowdhury18/RTNeural 

https://juce.com/download/

cmake

visual studio 2022 多分C++をインストール

 

準備

NeuralNoteを適当なフォルダーに解凍

 

onnxruntimeをダウンロード

コマンドプロンプトでNeuralNoteのフォルダーに移動してから実行

git clone --depth 1 --recurse-submodules --shallow-submodules https://github.com/tiborvass/libonnxruntime-neuralnote ThirdParty\onnxruntime

ThirdPartyフォルダーに juce と RTNeural を解凍する


windowsの場合は下を実行

※batファイルだとactivate.batの所で落ちました。

※フォルダー名にスペースがあるとエラーになりました。 

※10GB有ったけど容量不足になりました。12.4GB必要でした。

cd ThirdParty\onnxruntime
python3 -m venv venv
.\venv\Scripts\activate.bat
pip install -r requirements.txt
.\convert-model-to-ort.bat model.onnx
.\build-win.bat model.required_operators_and_types.with_runtime_opt.config
copy model.with_runtime_opt.ort ..\..\Lib\ModelData\features_model.ort

 

 

コンパイル

コマンドプロンプトNeuralNoteのフォルダーに移動して実行

build


buildフォルダーにvistual studioのプロジェクト作成される

NeuralNote_artefactsフォルダーのReleaseにvstなどが作成される


ロゴの消し方

CMakeLists.txtを変えてみた。

target_compile_definitions(${BaseTargetName}
        PUBLIC
        JUCER_ENABLE_GPL_MODE=1
        JUCE_DISPLAY_SPLASH_SCREEN=0
        JUCE_WEB_BROWSER=0
        JUCE_USE_CURL=0
        JUCE_VST3_CAN_REPLACE_VST2=0)


確認方法がわからないけど、GPLモードにできたと思う。

 

日本語のファイル名が読めない不具合

 \Lib\Utils\AudioUtils.cpp の _loadMP3File の上に追加

static inline std::wstring cp_to_wide(const std::string& s, UINT codepage)
{
    int in_length = (int)s.length();
    int out_length = MultiByteToWideChar(codepage, 0, s.c_str(), in_length, 0, 0);
    std::wstring result(out_length, L'\0');
    if (out_length)
        MultiByteToWideChar(codepage, 0, s.c_str(), in_length, &result[0],out_length);
    return result;
}

 参照先

https://qiita.com/javacommons/items/9ea0c8fd43b61b01a8da

 

あと、この行を

    int loadResult = mp3dec_load(&mp3d, filename.c_str(), &info, nullptr, nullptr);

 

これに変える

    std::wstring fn = cp_to_wide(filename, CP_UTF8);
    int loadResult = mp3dec_load_w(&mp3d, fn.c_str(), &info, nullptr, nullptr);



yuki

初めての作業で調べた事、困った時の解決方法を記録するブログ。 主なテーマは、パソコン、プログラミング、カメラ、DTM、スピリチュアル、化学物質過敏症

コメントを投稿

Please Select Embedded Mode To Show The Comment System.*