diff --git a/OpenUtau/Strings/Strings.axaml b/OpenUtau/Strings/Strings.axaml
index 9daf39aff..b018e925d 100644
--- a/OpenUtau/Strings/Strings.axaml
+++ b/OpenUtau/Strings/Strings.axaml
@@ -550,6 +550,7 @@ General
Rename track
Select Renderer
Select Singer
+ (Singer default)
Solo
Solo additionally (which not removes solo from other tracks)
Solo this only (which removes solo from other tracks)
diff --git a/OpenUtau/ViewModels/TrackHeaderViewModel.cs b/OpenUtau/ViewModels/TrackHeaderViewModel.cs
index e43f64808..c31a75e90 100644
--- a/OpenUtau/ViewModels/TrackHeaderViewModel.cs
+++ b/OpenUtau/ViewModels/TrackHeaderViewModel.cs
@@ -373,11 +373,27 @@ public string GetPhonemizerGroupHeader(string key){
return key;
}
+ PhonemizerFactory? FindPhonemizerByName(string name){
+ return DocManager.Inst.PhonemizerFactories.FirstOrDefault(
+ factory => factory.type.FullName == name);
+ }
+
public void RefreshPhonemizers() {
var items = new List();
+ //Singer default
+ if (track != null && track.Singer != null && track.Singer.Found){
+ var factory = FindPhonemizerByName(track.Singer.DefaultPhonemizer);
+ if(factory != null){
+ items.Add(new MenuItemViewModel() {
+ Header = ThemeManager.GetString("tracks.singerdefault") + factory.ToString(),
+ Command = SelectPhonemizerCommand,
+ CommandParameter = factory,
+ });
+ }
+ }
//Recently used phonemizers
items.AddRange(Preferences.Default.RecentPhonemizers
- .Select(name => DocManager.Inst.PhonemizerFactories.FirstOrDefault(factory => factory.type.FullName == name))
+ .Select(name => FindPhonemizerByName(name))
.OfType()
.OrderBy(factory => factory.tag)
.Select(factory => new MenuItemViewModel() {