Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
06f193a
Update macOS target to .NET 8, fixing builds
RedBlackAka Dec 21, 2024
518d911
Fix line ending
RedBlackAka Dec 21, 2024
ac6858f
Improvement of Knife Tool and bug fixes for Tool+Ctrl key
Feb 1, 2025
0d98e19
sliced notes can now be resized without leaving the knife tool
Feb 2, 2025
d3c66fb
Merge branch 'stakira:master' into 250201_KnifeTool
maiko3tattun Feb 28, 2025
5a5dd31
"KeyModifiers.HasFlag(cmdKey)" -> "KeyModifiers == cmdKey"
Feb 28, 2025
cefa692
VoicevoxPhonemizer対応中
rokujyushi Mar 24, 2025
68012ae
タイミング調整対応におけるフレーズごとの音声合成パラメーターの作成機能追加
rokujyushi Mar 27, 2025
ca925ef
Merge branch 'master' into 250201_KnifeTool
maiko3tattun Mar 31, 2025
2c36e95
Clear caches for each phrase
Apr 4, 2025
8c4dae9
organize using
Apr 5, 2025
b3f15fd
clear diffsinger cache
Apr 6, 2025
2fa331f
音声合成パラメータの管理と処理を改善
rokujyushi May 5, 2025
d144d5b
F0Smootherクラスを追加し音声スムージングを強化
rokujyushi May 6, 2025
4d7a3bc
Merge branch 'stakira:master' into 250201_KnifeTool
maiko3tattun May 6, 2025
63a6c4b
textbox caret behavior polish
IsE333 May 6, 2025
9db4f84
textbox caret behavior polish
IsE333 May 6, 2025
5fbf20c
Merge branch 'master' of https://github.com/IsE333/OpenUtau
IsE333 May 6, 2025
764558a
音声合成処理の改善とリファクタリング
rokujyushi May 6, 2025
9bb1ef7
Conflict resolution and merging up-to-date environments.
rokujyushi May 6, 2025
71cbb43
Added description of class `F0Smoother` and removed SmoothPitch
rokujyushi May 6, 2025
b8847dc
more friendly error message for renderer that doesn't support autopitch
oxygen-dioxide May 6, 2025
a6bf25a
fix
oxygen-dioxide May 6, 2025
a20555e
Merge pull request #1526 from IsE333/master
stakira May 7, 2025
56eb931
allow pasting multiline lyrics into lyrics dialog
oxygen-dioxide Apr 30, 2025
a5d8792
fix: use available screen if no primary is set
atouu Apr 30, 2025
003c0a6
fix: remove `/usr/bin`
Lord-Valen Apr 27, 2025
fd6fbd9
Added ability to draw a dash line for the default value of the curve.
rokujyushi Apr 18, 2025
42de4bc
Remove superfluous changes.
rokujyushi Apr 18, 2025
b53254d
Update EnglishVCCVPhonemizer.cs
AnAndroNerd Apr 19, 2025
cd62947
Update ARPA+, EN C+V, and EN-XSAMPA Phonemizers
Cadlaxa Apr 21, 2025
93666c9
update test files
Cadlaxa Apr 21, 2025
5cfced4
fix EN ARPA+ and test file
Cadlaxa Apr 21, 2025
2b9f3a9
wrong template oops
Cadlaxa Apr 21, 2025
b09bcb6
implement the same thing on EN VCCV
Cadlaxa Apr 21, 2025
c79fa5e
Fix yaml replacements should overwrite the built-in phonemes fallbacks
Cadlaxa Apr 22, 2025
07f395e
fixes to EN VCCV
Cadlaxa Apr 22, 2025
c617fa5
fixes to prevV
Cadlaxa May 6, 2025
3775970
Zip file produced by voicebank publisher should use slash, not backslash
oxygen-dioxide Apr 18, 2025
aec4659
add automatic feature request label to feature-request.yml
nagotown Apr 16, 2025
7afee37
Reduced loading wait times when a connection to the VOICEVOX server c…
rokujyushi Apr 17, 2025
dd6debf
Added VOICEVOX-specific exception handling.
rokujyushi Apr 17, 2025
fc74d03
Update OpenUtau.Core/Voicevox/VoicevoxConfig.cs
rokujyushi Apr 17, 2025
e8f9bf1
Improved exception handling and syntax consistency.
rokujyushi Apr 17, 2025
83370e8
When saving oto.ini, always include alias in oto lines even if the fi…
oxygen-dioxide Apr 13, 2025
83b4b1d
Seperated steps for DiffSinger
keirokeer Apr 10, 2025
b5df9f5
Ctrl+R for Load rendered pitch
keirokeer Apr 10, 2025
3580af9
Update PianoRollWindow.axaml.cs
keirokeer Apr 10, 2025
e6814fe
Pitch steps 5 to 10
keirokeer Apr 11, 2025
3b7d04e
Merge pull request #1400 from maiko3tattun/250201_KnifeTool
stakira May 7, 2025
9956b76
ToggleButton icon changes
rokujyushi Apr 2, 2025
a961ffe
Supports dark and light modes.
rokujyushi Apr 2, 2025
dbab045
Review how path colours are set.
rokujyushi Apr 9, 2025
b8f30b6
Show note properties panel by default
Feb 5, 2025
1978dd7
Clone method for voice synthesis parameter classes added and fixed
rokujyushi May 10, 2025
a1749b3
不要なコードの削除およびコードの修正
rokujyushi May 10, 2025
e46c6db
音素リストの取得方法を簡素化
rokujyushi May 10, 2025
3800055
音声合成パラメーターの補正機能および操作用の設定を追加
rokujyushi May 10, 2025
cef7fe5
音声合成パラメータの調整処理を改善
rokujyushi May 19, 2025
787eb83
最新の環境とマージ
rokujyushi May 19, 2025
888bf91
`RenderPhrase` クラスのコンストラクタから `phonemizerTag` フィールドを削除し\ました。ま
rokujyushi May 20, 2025
0039c91
Fix "#Charset:"
May 17, 2025
4a17c72
Add warnings to localization files, because they'll easilly conflict …
oxygen-dioxide Feb 25, 2025
720de3a
Update sync_strings.py
oxygen-dioxide Feb 25, 2025
eb53355
New Crowdin translations by GitHub Action
github-actions[bot] May 20, 2025
1b05db5
sync strings
github-actions[bot] May 20, 2025
f64ae52
Support displaying real curves from DiffSinger variance predictor
yqzhishen May 16, 2025
ebea7c7
Remove redundant TODO
yqzhishen May 16, 2025
e8fcd9d
`continue` instead of `break`
yqzhishen May 16, 2025
6fee4a5
Fix null reference
yqzhishen May 16, 2025
0aa3b98
Property names follow rules
yqzhishen May 16, 2025
eefd73c
Increase precision to 0.001
yqzhishen May 16, 2025
66ccfa6
Add field explanations
yqzhishen May 16, 2025
727ac58
Method names follow rules
yqzhishen May 16, 2025
5849f0e
lyric box: enter to apply
oxygen-dioxide May 13, 2025
114f173
Search notes by alias
May 10, 2025
b435a94
minor fix
May 10, 2025
6401baf
update csharp-kana to 1.0.2
wolfgitpr May 7, 2025
bee9b39
Add TurkishCVVCPhonemizer.
IsE333 May 7, 2025
21c4693
Update TurkishCVVCPhonemizer and clean up code
IsE333 May 9, 2025
92e9b69
Update pr-test.yml
oxygen-dioxide May 7, 2025
f84bbd3
Merge pull request #1527 from rokujyushi/VV
stakira May 21, 2025
4aa9623
Fixes OpenUtau's data folders appearing in the wrong place on macOS (…
Nyaacinth May 21, 2025
b95a794
Improved mouse cursor (#1485)
maiko3tattun May 21, 2025
2b715ec
Add welcome page (#1509)
oxygen-dioxide May 21, 2025
2cc5a4e
Enunu style support (#1506)
rokujyushi May 21, 2025
5cb5ceb
Updated operating instructions. (#1479)
rokujyushi May 21, 2025
790bfee
Resize the beginning of part (#1456)
maiko3tattun May 21, 2025
3b6348a
Merge pull request #1362 from RedBlackAka/macos-target-fix
stakira May 21, 2025
3e358ca
Capitalize machine learnings runner names (#1360)
RedBlackAka May 21, 2025
cb079ef
Ctrl+R for Load rendered pitch (#1488)
lunaiproject May 21, 2025
b59e0c7
Delete .github/CODEOWNERS so that they are not in forks
stakira May 22, 2025
0e627f6
Hide DiffSinger Language Code in Phoneme Canvas (#1521)
May 23, 2025
3524fbb
Corrected errors in actual operation and instructions.
rokujyushi May 22, 2025
6fb5897
Move DLLs to a subfolder (#1543)
oxygen-dioxide May 23, 2025
af41f2b
More flexible translation of error messages (#1524)
maiko3tattun May 23, 2025
0be4700
Fixed Vibrato VolLink was not copied
Apr 20, 2025
dbe146d
Faster vibrato reset
May 18, 2025
b97bafb
Log on Singer and Phonemizer change (#1439)
Astel123457 May 23, 2025
0cca21f
Fixed a bug in Singer's error report (#1401)
maiko3tattun May 23, 2025
07a6faa
Revert "move DLLs to a subfolder" (#1553)
oxygen-dioxide May 25, 2025
d1e5126
Fixes a few menus missing from 7c77ccda906dbf096f53bd4b7b877bed2a04c1bc
stakira May 25, 2025
2ec7747
Fix Up/Down keys not working (#1558)
maiko3tattun May 30, 2025
20de16b
Fixes OpenUtau's data folders appearing in the wrong place on Linux (…
Seele-Vollerei32 May 30, 2025
6d3998a
Improved pitch hit test (#1554)
maiko3tattun May 30, 2025
20f8e23
Allow scrolling main view when hovering over Singer List (#1548)
Kabinet0 May 30, 2025
91875c8
Use ContinueWith instead of async/await in MainWindow.WindowClosing (…
atouu Jun 1, 2025
3ab1905
Added play file button to singers dialog (#1567)
Kabinet0 Jun 1, 2025
1f18eb2
Fixed translated error messages being overwritten by upper level abst…
maiko3tattun Jun 1, 2025
9d9b204
Fix drag and drop area in main window (#1564)
maiko3tattun Jun 1, 2025
b3e22bb
Add "Install Wavtool/Resampler (.exe)" in menu (#1560)
atouu Jun 1, 2025
d5cad30
Fixed unexpected behavior of welcome page (#1550)
maiko3tattun Jun 1, 2025
84886c4
Check null keys to make errors more friendly (#1572)
yqzhishen Jun 6, 2025
9c42053
Simplifies tempo importing (#1568)
stakira Jun 6, 2025
c3ff44b
fix typo (#1575)
shuntia Jun 10, 2025
f5a87bb
fix legacy plugin output (#1577)
takunnma5286 Jun 17, 2025
c88a308
Convert the key for the expression settings in Manifest to lowercase …
rokujyushi Jun 17, 2025
f54892a
Use Wine directly instead of wrappers on Mac and Linux (#1571)
atouu Jun 17, 2025
c7ab49b
Fix OpenUtau crashing when oto.ini contains two `#Charset:` lines (#1…
oxygen-dioxide Jul 19, 2025
dcc86a7
Oto validation before worldline rendering (#1604)
oxygen-dioxide Jul 19, 2025
1dcd10c
Installer: High DPI support, MUI2, desktop shortcut, cleanups (#1607)
RedBlackAka Jul 19, 2025
bde6f7c
update resampler metafiles (#1606)
Cadlaxa Jul 19, 2025
1022bb4
Translate Exe Setup Dialog (#1599)
maiko3tattun Jul 19, 2025
e2a76fe
Fix batch edit order (#1598)
maiko3tattun Jul 19, 2025
a90721b
Add [FIL VCV & CVVC] and [FIL to JA] phonemizers (#1597)
Cadlaxa Jul 19, 2025
65391af
Voicebank Merger (#1596)
oxygen-dioxide Jul 19, 2025
c62456c
fix unable to load empty ust (#1594)
oxygen-dioxide Jul 19, 2025
4a91cd3
Log system encoding (#1593)
oxygen-dioxide Jul 19, 2025
bbf5f02
fix osx upload-artifact action (#1591)
odeinjul Jul 19, 2025
dea6599
Check if plugin is exe or bat before using wine (#1586)
atouu Jul 19, 2025
23fb2e7
Fixed issue with voice bank loading due to differences in spec betwee…
maiko3tattun Jul 19, 2025
e5ed488
Removed 0.9f limit of Preutter delta (#1447)
Cadlaxa Jul 19, 2025
1bd4796
MOD+ related bug fixes (#1566)
maiko3tattun Jul 19, 2025
b41fca7
Revert "MOD+ related bug fixes (#1566)" (#1608)
stakira Jul 19, 2025
adf228c
[FILtoJA] Fixes to `ng` note.lyric bug (#1609)
Cadlaxa Jul 20, 2025
2792646
Fixed a processing branch for phrases containing slur when selecting …
rokujyushi Jul 20, 2025
201f874
(Re) MOD+ related bug fixes (#1610)
maiko3tattun Jul 20, 2025
f3e56f5
Fix crash when playing test sound on an unavailable audio device (#1614)
maiko3tattun Jul 21, 2025
8f00da1
Fix list items could not be controlled by keyboard (#1616)
maiko3tattun Jul 21, 2025
1a6924a
voicebank error checker nullness fixes
stakira Jul 22, 2025
60c647f
Sync translated strings from crowdin to official repo (#1622)
oxygen-dioxide Jul 22, 2025
39a8f76
Added font settings for macOS (#1623)
rokujyushi Aug 31, 2025
7aa8090
fixes macos self-contained build
stakira Aug 31, 2025
a60ca58
Revert "fix legacy plugin output (#1577)" (#1692)
stakira Sep 13, 2025
8913ba1
Fix broken link to ENUNU wiki page in README.md (#1673)
cedkim Sep 14, 2025
21f56e3
Fixes related to VOICEVOXRenderer. (#1627)
rokujyushi Sep 14, 2025
5a195a7
Fix VoiceColorRemapping Crash (#1690)
maiko3tattun Sep 14, 2025
86d7287
Add text to the Singer Setup Dialog (#1689)
maiko3tattun Sep 14, 2025
d055113
always uses CPU for vogen rendering (#1685)
oxygen-dioxide Sep 14, 2025
5eb4555
Install NSIS in github acitons (#1684)
oxygen-dioxide Sep 14, 2025
49ba37a
Add new batch edit "Replace '-' with '+~'". (#1678)
AnAndroNerd Sep 14, 2025
f3d7a35
Add Millefeuille and Marzipan Phonemizers - Take 2 (#1671)
imsupposedto Sep 14, 2025
3e86c92
escape dollar sign in default gitignore (#1667)
oxygen-dioxide Sep 14, 2025
6338d14
[KO CV] Improved behavior, Changed setting file to yaml (#1666)
EX3exp Sep 14, 2025
0907116
Fix note editing tool toggle button behaviour (#1646)
arx-ein Sep 14, 2025
7dc0af8
Improved and translated error reports (#1654)
maiko3tattun Sep 14, 2025
79853cc
Fix tone generator crackling (#1641)
Kabinet0 Sep 14, 2025
d9987a9
Add feature to merge vocal parts (#1645)
arx-ein Sep 14, 2025
ee2ac88
Make a tar.gz Linux artifact instead of zip (#1630)
atouu Sep 14, 2025
d20546d
Add auto focus on TypeInDialog (#1638)
arx-ein Sep 14, 2025
a8d9917
Make expressions view togglable (#1635)
atouu Sep 14, 2025
7651d30
Add Linux Appimage package (#1628)
oxygen-dioxide Sep 14, 2025
9059b04
Play audio files within PlaybackManager (#1626)
atouu Sep 14, 2025
879b095
Reload when singer's avatar is changed (#1613)
maiko3tattun Sep 14, 2025
6a4b4b1
Improvements preferences and related to singers folder (#1472)
maiko3tattun Sep 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .github/CODEOWNERS

This file was deleted.

3 changes: 2 additions & 1 deletion .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
name: '🚀 Feature Request / Idea'
description: Suggest a new feature or improvement (this does not mean you have to implement it).
labels: ["feature-request"]
body:
- type: markdown
attributes:
Expand All @@ -23,4 +24,4 @@ body:
- type: textarea
attributes:
label: Proposed technical implementation details
placeholder: A clear and concise description of what you want to happen.
placeholder: A clear and concise description of what you want to happen.
56 changes: 48 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ jobs:
- { name: win-arm64, rid: win-arm64, arch: arm64, os: win, runs-on: windows-latest }
- { name: osx-x64, rid: osx-x64, arch: x64, os: osx, runs-on: macos-13 }
- { name: osx-arm64, rid: osx-arm64, arch: arm64, os: osx, runs-on: macos-13 }
- { name: linux-x64, rid: linux-x64, arch: x64, os: linux, runs-on: ubuntu-latest }
- { name: linux-arm64, rid: linux-arm64, arch: arm64, os: linux, runs-on: ubuntu-latest }
- { name: linux-x64, rid: linux-x64, arch: x64, os: linux, runs-on: ubuntu-latest, linuxarch: x86_64}
- { name: linux-arm64, rid: linux-arm64, arch: arm64, os: linux, runs-on: ubuntu-latest, linuxarch: aarch64}

steps:
# Setup
Expand All @@ -49,6 +49,10 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 20
- uses: repolevedavaj/install-nsis@v1.0.3
with:
nsis-version: '3.11'
if: ${{ matrix.arch.os == 'win' }}
- uses: justalemon/VersionPatcher@v0.7.1
with:
version: ${{ inputs.version }}
Expand Down Expand Up @@ -84,7 +88,13 @@ jobs:
run: |
cd bin/${{ matrix.arch.name }}
7z a ../../OpenUtau-${{ matrix.arch.name }}.zip *
if: ${{ matrix.arch.os != 'osx' }}
if: ${{ matrix.arch.os == 'win' }}

- name: Tar.gz
run: |
cd bin/${{ matrix.arch.name }}
tar -czf ../../OpenUtau-${{ matrix.arch.name }}.tar.gz *
if: ${{ matrix.arch.os == 'linux' }}

# Create Installer
- name: Get VC Redist
Expand All @@ -102,31 +112,61 @@ jobs:
# Create Dmg
- name: Create Dmg
run: |
dotnet msbuild OpenUtau -t:BundleApp -p:Configuration=Release -p:RuntimeIdentifier=${{ matrix.arch.rid }} -p:UseAppHost=true -p:OutputPath=../bin/${{ matrix.arch.name }}/
dotnet msbuild OpenUtau -t:BundleApp -p:Configuration=Release -p:RuntimeIdentifier=${{ matrix.arch.rid }} -p:UseAppHost=true -p:SelfContained=true -p:OutputPath=../bin/${{ matrix.arch.name }}/
npm install -g create-dmg
cp OpenUtau/Assets/OpenUtau.icns bin/${{ matrix.arch.name }}/publish/OpenUtau.app/Contents/Resources/
create-dmg bin/${{ matrix.arch.name }}/publish/OpenUtau.app || true
mv *.dmg OpenUtau-${{ matrix.arch.name }}.dmg
codesign -fvs - OpenUtau-${{ matrix.arch.name }}.dmg
if: ${{ matrix.arch.os == 'osx' }}

# Create Appimage
- name: Install LinuxDeploy
uses: AnimMouse/setup-appimage@v1
with:
name: linuxdeploy
url: https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
if: ${{ matrix.arch.os == 'linux' }}

- name: Create appimage
run: |
cp OpenUtau/Assets/OpenUtau.desktop bin/${{ matrix.arch.name }}
cp OpenUtau/Assets/OpenUtau.png bin/${{ matrix.arch.name }}
cp OpenUtau/Assets/OpenUtau.png bin/${{ matrix.arch.name }}/.DirIcon
cp OpenUtau/Assets/AppRun bin/${{ matrix.arch.name }}
chmod 755 bin/${{ matrix.arch.name }}/AppRun
ARCH=${{ matrix.arch.linuxarch }} linuxdeploy --appdir bin/${{ matrix.arch.name }} --output appimage
if: ${{ matrix.arch.os == 'linux' }}

# Upload Artifacts
- uses: actions/upload-artifact@v4
with:
name: OpenUtau-${{ matrix.arch.name }}.tar.gz
path: OpenUtau-${{ matrix.arch.name }}.tar.gz
if: ${{ !inputs.release && matrix.arch.os == 'linux' }}

- uses: actions/upload-artifact@v4
with:
name: OpenUtau-${{ matrix.arch.name }}.zip
path: OpenUtau-${{ matrix.arch.name }}.zip
if: ${{ !inputs.release && matrix.arch.os != 'osx' }}
if: ${{ !inputs.release && matrix.arch.os == 'win' }}

- uses: actions/upload-artifact@v4
with:
name: OpenUtau-${{ matrix.arch.name }}.exe
path: OpenUtau-${{ matrix.arch.name }}.exe
if: ${{ !inputs.release && matrix.arch.os == 'win' }}

- uses: actions/upload-artifact@v4
with:
name: OpenUtau-${{ matrix.arch.name }}.AppImage
path: OpenUtau-${{ matrix.arch.linuxarch }}.AppImage
if: ${{ !inputs.release && matrix.arch.os == 'linux' }}

- uses: actions/upload-artifact@v4
with:
name: OpenUtau-osx-${{ matrix.arch.name }}.dmg
path: OpenUtau-osx-${{ matrix.arch.name }}.dmg
name: OpenUtau-${{ matrix.arch.name }}.dmg
path: OpenUtau-${{ matrix.arch.name }}.dmg
if: ${{ !inputs.release && matrix.arch.os == 'osx' }}

# Appcast
Expand All @@ -144,7 +184,7 @@ jobs:

- name: Appcast Linux
run: |
python appcast.py -v=${{ inputs.version }} -o=linux -r=${{ matrix.arch.name }} -f=OpenUtau-${{ matrix.arch.name }}.zip
python appcast.py -v=${{ inputs.version }} -o=linux -r=${{ matrix.arch.name }} -f=OpenUtau-${{ matrix.arch.name }}.tar.gz
if: ${{ inputs.release && matrix.arch.os == 'linux' }}

# Release
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/pr-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,16 @@ jobs:
os:
- runs-on: windows-latest
arch: win-x64
- runs-on: windows-11-arm
arch: win-arm64
- runs-on: macos-13
arch: osx-x64
- runs-on: macos-15
arch: osx-arm64
- runs-on: ubuntu-latest
arch: linux-x64
- runs-on: ubuntu-24.04-arm
arch: linux-arm64

steps:
- uses: actions/checkout@v1
Expand Down
3 changes: 3 additions & 0 deletions Misc/sync_strings.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ def file_to_dict(filename):

def dict_to_file(filename, dict, en_dict):
with open(filename, "w", encoding='utf8') as f:
if(not filename.endswith("Strings.axaml")):
f.write('<!--DO NOT modify this file. It is managed autometically.-->\n')
f.write("<!--To contribute to OpenUtau's localization, visit https://crowdin.com/project/oxygen-dioxideopenutau -->\n")
f.write('<ResourceDictionary xmlns="https://github.com/avaloniaui"\n')
f.write(
' xmlns:system="clr-namespace:System;assembly=mscorlib"\n')
Expand Down
1 change: 1 addition & 0 deletions OpenUtau.Core/Audio/NAudioOutput.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public void Init(ISampleProvider sampleProvider) {
}
waveOutEvent = new WaveOutEvent() {
DeviceNumber = deviceNumber,
DesiredLatency = 100
};
waveOutEvent.Init(sampleProvider);
}
Expand Down
1 change: 1 addition & 0 deletions OpenUtau.Core/Classic/ClassicRenderer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ public Task<RenderResult> RenderExternal(RenderPhrase phrase, Progress progress,
string progressInfo = $"Track {trackNo + 1} : {phrase.wavtool} \"{string.Join(" ", phrase.phones.Select(p => p.phoneme))}\"";
progress.Complete(0, progressInfo);
var wavPath = Path.Join(PathManager.Inst.CachePath, $"cat-{phrase.hash:x16}.wav");
phrase.AddCacheFile(wavPath);
var result = Layout(phrase);
if (File.Exists(wavPath)) {
try {
Expand Down
2 changes: 1 addition & 1 deletion OpenUtau.Core/Classic/ClassicSinger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class ClassicSinger : USinger {
OtoWatcher otoWatcher;

public bool? UseFilenameAsAlias { get => voicebank.UseFilenameAsAlias; set => voicebank.UseFilenameAsAlias = value; }
public Dictionary<string, Frq> Frqs { get; set; } = new Dictionary<string, Frq>();
public Dictionary<string, IFrqFiles> Frqs { get; set; } = new Dictionary<string, IFrqFiles>();

public ClassicSinger(Voicebank voicebank) {
this.voicebank = voicebank;
Expand Down
10 changes: 0 additions & 10 deletions OpenUtau.Core/Classic/ExeInstaller.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,6 @@ public static void Install(string filePath, ExeType exeType) {
: PathManager.Inst.ResamplersPath;
string destName = Path.Combine(destPath, fileName);
File.Copy(filePath, destName, true);

if (OS.IsMacOS()) {
//reference: https://github.com/stakira/OpenUtau/wiki/Resamplers-and-Wavtools#macos
string MacWrapper = $"#!/bin/sh\r\nRELPATH=\"{fileName}\"\r\n\r\nABSPATH=$(cd \"$(dirname \"$0\")\"; pwd -P)\r\nABSPATH=\"$ABSPATH/$RELPATH\"\r\nif [[ ! -x \"$ABSPATH\" ]]\r\nthen\r\n chmod +x \"$ABSPATH\"\r\nfi\r\nexec /usr/local/bin/wine32on64 \"$ABSPATH\" \"$@\"";
File.WriteAllText(Path.ChangeExtension(destName, ".sh"), MacWrapper, new UTF8Encoding(false));
} else if (OS.IsLinux()) {
//reference: https://github.com/stakira/OpenUtau/wiki/Resamplers-and-Wavtools#linux
string LinuxWrapper = $"#!/bin/bash\r\nLANG=\"ja_JP.UTF8\" wine \"{destName}\" \"${{@,-1}}\"";
File.WriteAllText(Path.ChangeExtension(destName, null), LinuxWrapper, new UTF8Encoding(false));
}

new Task(() => {
DocManager.Inst.ExecuteCmd(new SingersChangedNotification());
Expand Down
12 changes: 11 additions & 1 deletion OpenUtau.Core/Classic/ExeResampler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ internal class ExeResampler : IResampler {
public ResamplerManifest Manifest { get; private set; }
readonly string _name;
readonly bool _isLegalPlugin = false;
readonly string winePath;
readonly bool useWine;


public ResamplerManifest LoadManifest() {
Expand Down Expand Up @@ -63,6 +65,10 @@ public ExeResampler(string filePath, string basePath) {
_name = Path.GetRelativePath(basePath, filePath);
_isLegalPlugin = true;
}
//Check if should use wine
string ext = Path.GetExtension(filePath).ToLower();
winePath = Preferences.Default.WinePath;
useWine = !OS.IsWindows() && !string.IsNullOrEmpty(winePath) && (ext == ".exe" || ext == ".bat");
//Load Resampler Manifest
Manifest = LoadManifest();
//Make moresampler happy
Expand Down Expand Up @@ -96,7 +102,11 @@ public string DoResamplerReturnsFile(ResamplerItem args, ILogger logger) {
string ArgParam = FormattableString.Invariant(
$"\"{args.inputTemp}\" \"{tmpFile}\" {MusicMath.GetToneName(args.tone)} {args.velocity} \"{args.GetFlagsString()}\" {args.offset} {args.durRequired} {args.consonant} {args.cutoff} {args.volume} {args.modulation} !{args.tempo} {Base64.Base64EncodeInt12(args.pitches)}");
logger.Information($" > [thread-{threadId}] {FilePath} {ArgParam}");
ProcessRunner.Run(FilePath, ArgParam, logger);
if (useWine) {
ProcessRunner.Run(winePath, $"{FilePath} {ArgParam}", logger);
} else {
ProcessRunner.Run(FilePath, ArgParam, logger);
}
return tmpFile;
}

Expand Down
Loading
Loading