From 98022570ec61d923763cc1fcdc33c99ec5396807 Mon Sep 17 00:00:00 2001 From: kurema Date: Fri, 1 Sep 2023 02:02:12 +0900 Subject: [PATCH] Fixed Widget / Sweep can play in opposite phase / Update nuget.csv / Update custom.aprof --- .../EarphoneLeftAndRight.Android/AppWidget.cs | 13 +- .../Manager/Tts.cs | 18 +- .../PlayTileService.cs | 25 +- .../EarphoneLeftAndRight.Android/custom.aprof | Bin 688000 -> 597481 bytes .../EarphoneLeftAndRight/Licenses/nuget.csv | 19 +- .../EarphoneLeftAndRight/Licenses/readme.md | 5 + .../Storages/AudioStorage.cs | 602 +++++++++--------- .../Storages/StatusBarManagerStorage.cs | 2 +- .../ViewModels/BeepSweepViewModel.cs | 369 +++++------ .../ViewModels/PlayViewModel.cs | 20 +- .../Views/BeepTabbed.xaml | 2 + .../Views/PlayPage.xaml.cs | 16 - 12 files changed, 528 insertions(+), 563 deletions(-) create mode 100644 Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Licenses/readme.md diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/AppWidget.cs b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/AppWidget.cs index f2b4a13..bcec75d 100644 --- a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/AppWidget.cs +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/AppWidget.cs @@ -21,9 +21,12 @@ public class AppWidget : AppWidgetProvider public override void OnUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - var me = new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)).Name); - - appWidgetManager.UpdateAppWidget(me, BuildRemoteViews(context, appWidgetIds)); + //https://developer.android.com/guide/topics/appwidgets + //var me = new ComponentName(context, Java.Lang.Class.FromType(typeof(AppWidget)).Name); + foreach (var appWidgetId in appWidgetIds) + { + appWidgetManager.UpdateAppWidget(appWidgetId, BuildRemoteViews(context, appWidgetIds)); + } //base.OnUpdate(context, appWidgetManager, appWidgetIds); } @@ -50,12 +53,10 @@ public override async void OnReceive(Context context, Intent intent) { base.OnReceive(context, intent); - await PlayTileService.PlayDummyAudioIfRequired(); - switch (intent.Action) { case ACTION_SELECTED: - await Manager.Tts.SpeakLeftRight(); + await PlayTileService.PlayLeftRightSound(); break; } } diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/Manager/Tts.cs b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/Manager/Tts.cs index fc72f6f..28e4363 100644 --- a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/Manager/Tts.cs +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/Manager/Tts.cs @@ -85,8 +85,10 @@ static async Task SpeakLeftOrRightCommon(LeftRight leftRight) private static async Task SpeakWordInEnglish(string text, TextToSpeechOptions options) { - var op = new TextToSpeechOptions(options); - op.Locale = TextToSpeechImplementation.GetLocaleFromJavaLocale(Java.Util.Locale.English); + var op = new TextToSpeechOptions(options) + { + Locale = TextToSpeechImplementation.GetLocaleFromJavaLocale(Java.Util.Locale.English) + }; await Content.SpeakAsync(new (string Text, Dependency.TextToSpeechOptions Options)[] { (text, op) }); } @@ -107,8 +109,10 @@ public static async Task SpeakLeftRight() textLeft = string.IsNullOrWhiteSpace(textLeftOr) ? textLeft : textLeftOr; textRight = string.IsNullOrWhiteSpace(textRightOr) ? textRight : textRightOr; option.Locale = TextToSpeechImplementation.GetLocaleFromJavaLocale(locale); - var optionLeft = new TextToSpeechOptions(option); - optionLeft.Pan = -option.Pan; + var optionLeft = new TextToSpeechOptions(option) + { + Pan = -option.Pan + }; if (textLeft.Equals("Left", StringComparison.InvariantCultureIgnoreCase) && (await Content.GetLocalesAsync()).Any(a => a.Language == "English")) goto English; await Content.SpeakAsync(new (string Text, Dependency.TextToSpeechOptions Options)[] { (textLeft, optionLeft), (textRight, option) }); return; @@ -117,8 +121,10 @@ public static async Task SpeakLeftRight() English:; { option.Locale = TextToSpeechImplementation.GetLocaleFromJavaLocale(Java.Util.Locale.English); - var optionLeft = new TextToSpeechOptions(option); - optionLeft.Pan = -option.Pan; + var optionLeft = new TextToSpeechOptions(option) + { + Pan = -option.Pan + }; await Content.SpeakAsync(new (string Text, Dependency.TextToSpeechOptions Options)[] { ("Left", optionLeft), ("Right", option) }); return; } diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/PlayTileService.cs b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/PlayTileService.cs index 663388b..8bb5077 100644 --- a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/PlayTileService.cs +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/PlayTileService.cs @@ -53,9 +53,12 @@ public static IAudioTest AudioTest public override async void OnClick() { base.OnClick(); - Storages.StatusBarManagerStorage.IsTileAdded = true; + await PlayLeftRightSound(); + } + public static async System.Threading.Tasks.Task PlayLeftRightSound() + { if (Storages.ConfigStorage.TileForceBeep.Value) { var audioTest = AudioTest; @@ -80,26 +83,6 @@ await audioTest.Register((sample, actualSampleRate, channel) => amplifications = new[] { 0, Math.Max(Math.Min(1, 1 - (t - duration * 3) / easing), 0) }; return (amplifications[channel] * Math.Sin(2.0 * Math.PI * freqR * (t - duration * 2)), false); } - - //if (sample < actualSampleRate * Math.Floor(duration * freqL * 2) / freqL / 2) - //{ - // amplifications = new[] { 1, 0 }; - // return (amplifications[channel] * Math.Sin(2.0 * Math.PI * freqL * t), false); - //} - //else if (sample < duration * actualSampleRate * 2) - //{ - // return (0, false); - //} - //else if (sample < actualSampleRate * (duration * 2 + Math.Floor(duration * freqR * 2) / freqR / 2)) - //{ - // amplifications = new[] { 0, 1 }; - // return (amplifications[channel] * Math.Sin(2.0 * Math.PI * freqR * (t - duration * 2)), false); - //} - //else - //{ - // var temp = Math.Sin(2.0 * Math.PI * freqR * (t - duration * 2)); - // return (0, false); - //} }, duration * 3 + easing, sample); await System.Threading.Tasks.Task.Run(() => { try { audioTest.Play(); } catch { } }); } diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/custom.aprof b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight.Android/custom.aprof index 23326ca9b6dc1a840b49a6c5ca21d04bf449e1cf..383af768b67e0dc40dad37d96bee95404e3592d2 100644 GIT binary patch delta 135430 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 delta 185849 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 ^DKjxzMrxntHlf%+JTvsAr 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≺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 QL(QmU>G3KFd__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","0.51.0","False","https://licenses.nuget.org/MIT" -"EarphoneLeftAndRight","Xamarin.Essentials","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","1.7.3","False","https://aka.ms/deprecateLicenseUrl" -"EarphoneLeftAndRight","NETStandard.Library","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","2.0.3","False","https://github.com/dotnet/standard/blob/master/LICENSE.TXT" -"EarphoneLeftAndRight","CsvHelper","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","27.2.1","False","https://licenses.nuget.org/MS-PL%20OR%20Apache-2.0" -"EarphoneLeftAndRight","Xamarin.Forms","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","5.0.0.2401","False","https://licenses.nuget.org/MIT" -"EarphoneLeftAndRight.Android","Xamarin.AndroidX.Lifecycle.LiveData","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","2.4.1.1","False","https://licenses.nuget.org/MIT" -"EarphoneLeftAndRight.Android","Xamarin.Forms","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","5.0.0.2401","False","https://licenses.nuget.org/MIT" -"EarphoneLeftAndRight.Android","Xamarin.Essentials","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","1.7.3","False","https://aka.ms/deprecateLicenseUrl" -"EarphoneLeftAndRight.Android","Xamarin.Google.UserMessagingPlatform","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","2.0.0","False","https://licenses.nuget.org/MIT%20AND%20Apache-2.0" -"EarphoneLeftAndRight.Android","Xamarin.GooglePlayServices.Ads","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","120.4.0","False","https://go.microsoft.com/fwlink/?linkid=865373" +"EarphoneLeftAndRight.Android","Xamarin.AndroidX.Lifecycle.LiveData","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","2.6.1.3","False","https://licenses.nuget.org/MIT%20AND%20Apache-2.0" +"EarphoneLeftAndRight.Android","Xamarin.Forms","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","5.0.0.2612","False","https://licenses.nuget.org/MIT" +"EarphoneLeftAndRight.Android","Xamarin.Essentials","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","1.8.0","False","https://aka.ms/deprecateLicenseUrl" +"EarphoneLeftAndRight.Android","Xamarin.Google.UserMessagingPlatform","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","2.0.0.5","False","https://licenses.nuget.org/MIT%20AND%20Apache-2.0" +"EarphoneLeftAndRight.Android","Xamarin.GooglePlayServices.Ads","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","122.1.0.2","False","https://go.microsoft.com/fwlink/?linkid=865373" +"EarphoneLeftAndRight","Xamarin.Essentials","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","1.8.0","False","https://aka.ms/deprecateLicenseUrl" +"EarphoneLeftAndRight","Octokit","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","7.1.0","False","https://licenses.nuget.org/MIT" +"EarphoneLeftAndRight","CsvHelper","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","30.0.1","False","https://licenses.nuget.org/MS-PL%20OR%20Apache-2.0" +"EarphoneLeftAndRight","Xamarin.Forms","System.Linq.Enumerable+d__25`1[NuGet.Versioning.NuGetVersion]","NuGet.Versioning.NuGetVersion[]","5.0.0.2612","False","https://licenses.nuget.org/MIT" diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Licenses/readme.md b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Licenses/readme.md new file mode 100644 index 0000000..c18f80f --- /dev/null +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Licenses/readme.md @@ -0,0 +1,5 @@ +「nugetパッケージマネージャ」→「パッケージマネージャコンソール」 + +```ps +Get-Package | Export-Csv -path nuget.csv +``` diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Storages/AudioStorage.cs b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Storages/AudioStorage.cs index dc0daec..34aa9e1 100644 --- a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Storages/AudioStorage.cs +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Storages/AudioStorage.cs @@ -8,327 +8,327 @@ namespace EarphoneLeftAndRight.Storages; public static class AudioStorage { - private static Dependency.IAudioTest? _AudioTest; - public static Dependency.IAudioTest AudioTest { get => _AudioTest ??= DependencyService.Get(); } + private static Dependency.IAudioTest? _AudioTest; + public static Dependency.IAudioTest AudioTest { get => _AudioTest ??= DependencyService.Get(); } - public static async Task RegisterWave(double frequency, Func generator, double duration, double ampLeft, double ampRight, int sampleRate = 44100) - { - double[] amplifications = new[] { ampLeft, ampRight }; - if (frequency >= sampleRate) - { - //You can not play the audio above the sampleRate - await AudioTest.Register((sample, samplerate, channel) => - { - return (0, false); - }, duration, sampleRate); + public static async Task RegisterWave(double frequency, Func generator, double duration, double ampLeft, double ampRight, int sampleRate = 44100) + { + double[] amplifications = new[] { ampLeft, ampRight }; + if (frequency >= sampleRate) + { + //You can not play the audio above the sampleRate + await AudioTest.Register((sample, samplerate, channel) => + { + return (0, false); + }, duration, sampleRate); - } - else if (frequency >= sampleRate * 5.0 / 12.0) - { - //If frequency is between 1 and 5/12 (middle of 1/2 and 1/3) * sampleRate, we assume it's 1/2 * sampleRate. - await AudioTest.Register((sample, actualSampleRate, channel) => - { - //We have to make sure sampleRate is actually accepted. - if (frequency >= sampleRate) - { - return (0, false); - } - if (frequency >= actualSampleRate * 5.0 / 12.0 && frequency < actualSampleRate) - { - return (amplifications[channel] * (1 - ((sample + 1) % 2) * 2), false); - } - else - { - return generator(sample, actualSampleRate, channel); - } - }, duration, sampleRate); + } + else if (frequency >= sampleRate * 5.0 / 12.0) + { + //If frequency is between 1 and 5/12 (middle of 1/2 and 1/3) * sampleRate, we assume it's 1/2 * sampleRate. + await AudioTest.Register((sample, actualSampleRate, channel) => + { + //We have to make sure sampleRate is actually accepted. + if (frequency >= sampleRate) + { + return (0, false); + } + if (frequency >= actualSampleRate * 5.0 / 12.0 && frequency < actualSampleRate) + { + return (amplifications[channel] * (1 - ((sample + 1) % 2) * 2), false); + } + else + { + return generator(sample, actualSampleRate, channel); + } + }, duration, sampleRate); - } - else - { - await AudioTest.Register(generator, duration, sampleRate); - } + } + else + { + await AudioTest.Register(generator, duration, sampleRate); + } - } + } - public static bool HiDefTested = false; - public static bool HiDefSupported096kHz = false; - public static bool HiDefSupported192kHz = false; + public static bool HiDefTested = false; + public static bool HiDefSupported096kHz = false; + public static bool HiDefSupported192kHz = false; - public static async Task TestSupportHiDef() - { - if (HiDefTested) return; - try - { - await RegisterWave(200, 0.01, 0, 0, WaveKinds.Square, 96000); - HiDefSupported096kHz = AudioTest.ActualSampleRate == 96000; - await RegisterWave(200, 0.01, 0, 0, WaveKinds.Square, 192000); - HiDefSupported192kHz = AudioTest.ActualSampleRate == 192000; - HiDefTested = true; - } - catch - { - HiDefSupported096kHz = false; - HiDefSupported192kHz = false; - } - } + public static async Task TestSupportHiDef() + { + if (HiDefTested) return; + try + { + await RegisterWave(200, 0.01, 0, 0, WaveKinds.Square, 96000); + HiDefSupported096kHz = AudioTest.ActualSampleRate == 96000; + await RegisterWave(200, 0.01, 0, 0, WaveKinds.Square, 192000); + HiDefSupported192kHz = AudioTest.ActualSampleRate == 192000; + HiDefTested = true; + } + catch + { + HiDefSupported096kHz = false; + HiDefSupported192kHz = false; + } + } - public enum SweepChanneldOrder - { - Both, LeftThenRight, RightThenLeft - } + public enum SweepChanneldOrder + { + Both, LeftThenRight, RightThenLeft + } - public static async Task RegisterSweepSemitoneAsync(double freqFrom, double freqTo, bool exp, double duration, double amp = 0.5, SweepChanneldOrder channeldOrder = SweepChanneldOrder.Both, int sampleRate = 44100) - { - //var start = equal ? Helper.FreqConverters.HzToNoteNumberEqualTemperament(freqFrom) : Helper.FreqConverters.HzToOctaveJustIntonation(freqFrom).noteNumber; - //var end = equal ? Helper.FreqConverters.HzToNoteNumberEqualTemperament(freqTo) : Helper.FreqConverters.HzToOctaveJustIntonation(freqTo).noteNumber; - var start = Helper.FreqConverters.HzToNoteNumberEqualTemperament(freqFrom); - var end = Helper.FreqConverters.HzToNoteNumberEqualTemperament(freqTo); + public static async Task RegisterSweepSemitoneAsync(double freqFrom, double freqTo, bool exp, double duration, double amp = 0.5, SweepChanneldOrder channeldOrder = SweepChanneldOrder.Both, int sampleRate = 44100, bool invertRight = false) + { + //var start = equal ? Helper.FreqConverters.HzToNoteNumberEqualTemperament(freqFrom) : Helper.FreqConverters.HzToOctaveJustIntonation(freqFrom).noteNumber; + //var end = equal ? Helper.FreqConverters.HzToNoteNumberEqualTemperament(freqTo) : Helper.FreqConverters.HzToOctaveJustIntonation(freqTo).noteNumber; + var start = Helper.FreqConverters.HzToNoteNumberEqualTemperament(freqFrom); + var end = Helper.FreqConverters.HzToNoteNumberEqualTemperament(freqTo); - if (Math.Floor(start) == Math.Floor(end)) - { - await RegisterWave(Helper.FreqConverters.NoteNumberToHzEqualTemperament(Math.Floor(start)), duration, amp, amp, WaveKinds.Sine, sampleRate); - return; - } - else if (start > end) - { - start = Math.Floor(start); - end = Math.Ceiling(end); - } - else - { - start = Math.Ceiling(start); - end = Math.Floor(end); - } - int noteCounts = (int)Math.Abs(start - end) + 1; - double[] hzTable = new double[noteCounts + 1]; - for (int i = 0; i <= noteCounts; i++) - { - hzTable[i] = Helper.FreqConverters.NoteNumberToHzEqualTemperament(i * Math.Sign(end - start) + start); - } - if (exp) - { - double[] noteVirtualDuration = new double[noteCounts]; - double len = duration / noteCounts; - double currentTimeVirtual = 0; - noteVirtualDuration[0] = 0; - for (int index = 1; index < noteCounts; index++) - { - currentTimeVirtual += len * 2.0 * Math.PI * hzTable[index - 1]; - noteVirtualDuration[index] = currentTimeVirtual; - } - await AudioTest.Register((sample, actualSampleRate, channel) => - { - double tActual = (double)sample / actualSampleRate; - double t = tActual % duration; - double cnt = Math.Floor(t / len); - double nn = cnt * Math.Sign(end - start) + start; - double rem = t - len * cnt; - double ampActual = channeldOrder switch - { - SweepChanneldOrder.LeftThenRight => tActual < duration ^ channel == 1 ? amp : 0, - SweepChanneldOrder.RightThenLeft => tActual < duration ^ channel == 0 ? amp : 0, - _ or SweepChanneldOrder.Both => amp, - }; - return (ampActual * Math.Sin(Math.PI * 2.0 * rem * hzTable[(int)cnt] + noteVirtualDuration[(int)cnt]), false); - }, duration * channeldOrder switch { SweepChanneldOrder.LeftThenRight or SweepChanneldOrder.RightThenLeft => 2, _ => 1 }, sampleRate); - return; - } - else - { - double secPerHz = duration / Math.Abs(hzTable[^1] - hzTable[0]); - double[] noteDuration = new double[noteCounts + 1]; - double[] noteDurationVirtual = new double[noteCounts + 1]; - double currentTime = 0; - double currentTimeVirtual = 0; - noteDuration[0] = 0; - noteDurationVirtual[0] = 0; + if (Math.Floor(start) == Math.Floor(end)) + { + await RegisterWave(Helper.FreqConverters.NoteNumberToHzEqualTemperament(Math.Floor(start)), duration, amp, amp * (invertRight ? -1 : 1), WaveKinds.Sine, sampleRate); + return; + } + else if (start > end) + { + start = Math.Floor(start); + end = Math.Ceiling(end); + } + else + { + start = Math.Ceiling(start); + end = Math.Floor(end); + } + int noteCounts = (int)Math.Abs(start - end) + 1; + double[] hzTable = new double[noteCounts + 1]; + for (int i = 0; i <= noteCounts; i++) + { + hzTable[i] = Helper.FreqConverters.NoteNumberToHzEqualTemperament(i * Math.Sign(end - start) + start); + } + if (exp) + { + double[] noteVirtualDuration = new double[noteCounts]; + double len = duration / noteCounts; + double currentTimeVirtual = 0; + noteVirtualDuration[0] = 0; + for (int index = 1; index < noteCounts; index++) + { + currentTimeVirtual += len * 2.0 * Math.PI * hzTable[index - 1]; + noteVirtualDuration[index] = currentTimeVirtual; + } + await AudioTest.Register((sample, actualSampleRate, channel) => + { + double tActual = (double)sample / actualSampleRate; + double t = tActual % duration; + double cnt = Math.Floor(t / len); + double nn = cnt * Math.Sign(end - start) + start; + double rem = t - len * cnt; + double ampActual = channeldOrder switch + { + SweepChanneldOrder.LeftThenRight => tActual < duration ^ channel == 1 ? amp : 0, + SweepChanneldOrder.RightThenLeft => tActual < duration ^ channel == 0 ? amp : 0, + _ or SweepChanneldOrder.Both => amp, + } * (channel == 1 && invertRight ? -1 : 1); + return (ampActual * Math.Sin(Math.PI * 2.0 * rem * hzTable[(int)cnt] + noteVirtualDuration[(int)cnt]), false); + }, duration * channeldOrder switch { SweepChanneldOrder.LeftThenRight or SweepChanneldOrder.RightThenLeft => 2, _ => 1 }, sampleRate); + return; + } + else + { + double secPerHz = duration / Math.Abs(hzTable[^1] - hzTable[0]); + double[] noteDuration = new double[noteCounts + 1]; + double[] noteDurationVirtual = new double[noteCounts + 1]; + double currentTime = 0; + double currentTimeVirtual = 0; + noteDuration[0] = 0; + noteDurationVirtual[0] = 0; - for (int i = 0; i < noteCounts; i++) - { - var len = Math.Abs(hzTable[i + 1] - hzTable[i]) * secPerHz; - currentTime += len; - noteDuration[i + 1] = currentTime; - currentTimeVirtual += len * 2.0 * Math.PI * hzTable[i]; - noteDurationVirtual[i + 1] = currentTimeVirtual; - } - await AudioTest.Register((sample, actualSampleRate, channel) => - { - double tActual = (double)sample / actualSampleRate; - double t = tActual % duration; - int cnt = 0; - while (cnt < noteCounts) - { - if (noteDuration[cnt + 1] > t) break; - cnt++; - } - double rem = t - noteDuration[cnt]; - double freq = hzTable[cnt]; - double ampActual = channeldOrder switch - { - SweepChanneldOrder.LeftThenRight => tActual < duration ^ channel == 1 ? amp : 0, - SweepChanneldOrder.RightThenLeft => tActual < duration ^ channel == 0 ? amp : 0, - _ or SweepChanneldOrder.Both => amp, - }; - return (ampActual * Math.Sin(Math.PI * 2.0 * rem * hzTable[cnt] + noteDurationVirtual[cnt]), false); - }, duration * channeldOrder switch { SweepChanneldOrder.LeftThenRight or SweepChanneldOrder.RightThenLeft => 2, _ => 1 }, sampleRate); - return; - } - } + for (int i = 0; i < noteCounts; i++) + { + var len = Math.Abs(hzTable[i + 1] - hzTable[i]) * secPerHz; + currentTime += len; + noteDuration[i + 1] = currentTime; + currentTimeVirtual += len * 2.0 * Math.PI * hzTable[i]; + noteDurationVirtual[i + 1] = currentTimeVirtual; + } + await AudioTest.Register((sample, actualSampleRate, channel) => + { + double tActual = (double)sample / actualSampleRate; + double t = tActual % duration; + int cnt = 0; + while (cnt < noteCounts) + { + if (noteDuration[cnt + 1] > t) break; + cnt++; + } + double rem = t - noteDuration[cnt]; + double freq = hzTable[cnt]; + double ampActual = channeldOrder switch + { + SweepChanneldOrder.LeftThenRight => tActual < duration ^ channel == 1 ? amp : 0, + SweepChanneldOrder.RightThenLeft => tActual < duration ^ channel == 0 ? amp : 0, + _ or SweepChanneldOrder.Both => amp, + } * (channel == 1 && invertRight ? -1 : 1); + return (ampActual * Math.Sin(Math.PI * 2.0 * rem * hzTable[cnt] + noteDurationVirtual[cnt]), false); + }, duration * channeldOrder switch { SweepChanneldOrder.LeftThenRight or SweepChanneldOrder.RightThenLeft => 2, _ => 1 }, sampleRate); + return; + } + } - public static async Task RegisterSweepAsync(double freqFrom, double freqTo, bool exp, double duration, double amp = 0.5, SweepChanneldOrder channeldOrder = SweepChanneldOrder.Both, int sampleRate = 44100) - { - switch (channeldOrder) - { - case SweepChanneldOrder.Both: - if (exp) - { - var freqFromLog = Math.Log(freqFrom); - var freqToLog = Math.Log(freqTo); - double freqDifLog = (freqToLog - freqFromLog) / duration; - await AudioTest.Register((sample, actualSampleRate, channel) => - { - double t = (double)(sample) / actualSampleRate; - //Thanks, Wolfram! - //https://www.wolframalpha.com/input?i2d=true&i=Integrate%5B2*pi*exp%5C%2840%29a%2Bbt%5C%2841%29%2C%7Bt%2C0%2Cu%7D%5D - return (amp * Math.Sin(2.0 * Math.PI * Math.Exp(freqFromLog) * (Math.Exp(freqDifLog * t) - 1) / freqDifLog), false); - }, duration, sampleRate); - } - else - { - double freqDif = (freqTo - freqFrom) / duration; - await AudioTest.Register((sample, actualSampleRate, channel) => - { - double t = (double)(sample) / actualSampleRate; - //I can handle basic integral. But just in case... - //https://www.wolframalpha.com/input?i2d=true&i=Integrate[a%2Bbt%2C{t%2C0%2Cu}] - return (amp * Math.Sin(Math.PI * 2 * (freqFrom * t + freqDif * t * t / 2.0)), false); - }, duration, sampleRate); - } - break; - case SweepChanneldOrder.LeftThenRight: - case SweepChanneldOrder.RightThenLeft: - bool leftStart = channeldOrder == SweepChanneldOrder.LeftThenRight; - if (exp) - { - var freqFromLog = Math.Log(freqFrom); - var freqToLog = Math.Log(freqTo); - double freqDifLog = (freqToLog - freqFromLog) / duration; - await AudioTest.Register((sample, actualSampleRate, channel) => - { - double t = (double)(sample) / actualSampleRate; - bool isFirst = t < duration; - t = isFirst ? t : t - duration; - return ((isFirst ^ leftStart ^ (channel == 0) ? amp : 0) * Math.Sin(2.0 * Math.PI * Math.Exp(freqFromLog) * (Math.Exp(freqDifLog * t) - 1) / freqDifLog), false); - }, duration * 2, sampleRate); - } - else - { - double freqDif = (freqTo - freqFrom) / duration; - await AudioTest.Register((sample, actualSampleRate, channel) => - { - double t = (double)(sample) / actualSampleRate; - bool isFirst = t < duration; - t = isFirst ? t : t - duration; - return ((isFirst ^ leftStart ^ (channel == 0) ? amp : 0) * Math.Sin(Math.PI * 2 * (freqFrom * t + freqDif * t * t / 2.0)), false); - }, duration * 2, sampleRate); + public static async Task RegisterSweepAsync(double freqFrom, double freqTo, bool exp, double duration, double amp = 0.5, SweepChanneldOrder channeldOrder = SweepChanneldOrder.Both, int sampleRate = 44100, bool invertRight = false) + { + switch (channeldOrder) + { + case SweepChanneldOrder.Both: + if (exp) + { + var freqFromLog = Math.Log(freqFrom); + var freqToLog = Math.Log(freqTo); + double freqDifLog = (freqToLog - freqFromLog) / duration; + await AudioTest.Register((sample, actualSampleRate, channel) => + { + double t = (double)(sample) / actualSampleRate; + //Thanks, Wolfram! + //https://www.wolframalpha.com/input?i2d=true&i=Integrate%5B2*pi*exp%5C%2840%29a%2Bbt%5C%2841%29%2C%7Bt%2C0%2Cu%7D%5D + return (amp * (channel == 1 && invertRight ? -1 : 1) * Math.Sin(2.0 * Math.PI * Math.Exp(freqFromLog) * (Math.Exp(freqDifLog * t) - 1) / freqDifLog), false); + }, duration, sampleRate); + } + else + { + double freqDif = (freqTo - freqFrom) / duration; + await AudioTest.Register((sample, actualSampleRate, channel) => + { + double t = (double)(sample) / actualSampleRate; + //I can handle basic integral. But just in case... + //https://www.wolframalpha.com/input?i2d=true&i=Integrate[a%2Bbt%2C{t%2C0%2Cu}] + return (amp * (channel == 1 && invertRight ? -1 : 1) * Math.Sin(Math.PI * 2 * (freqFrom * t + freqDif * t * t / 2.0)), false); + }, duration, sampleRate); + } + break; + case SweepChanneldOrder.LeftThenRight: + case SweepChanneldOrder.RightThenLeft: + bool leftStart = channeldOrder == SweepChanneldOrder.LeftThenRight; + if (exp) + { + var freqFromLog = Math.Log(freqFrom); + var freqToLog = Math.Log(freqTo); + double freqDifLog = (freqToLog - freqFromLog) / duration; + await AudioTest.Register((sample, actualSampleRate, channel) => + { + double t = (double)(sample) / actualSampleRate; + bool isFirst = t < duration; + t = isFirst ? t : t - duration; + return ((isFirst ^ leftStart ^ (channel == 0) ? amp : 0) * (channel == 1 && invertRight ? -1 : 1) * Math.Sin(2.0 * Math.PI * Math.Exp(freqFromLog) * (Math.Exp(freqDifLog * t) - 1) / freqDifLog), false); + }, duration * 2, sampleRate); + } + else + { + double freqDif = (freqTo - freqFrom) / duration; + await AudioTest.Register((sample, actualSampleRate, channel) => + { + double t = (double)(sample) / actualSampleRate; + bool isFirst = t < duration; + t = isFirst ? t : t - duration; + return ((isFirst ^ leftStart ^ (channel == 0) ? amp : 0) * (channel == 1 && invertRight ? -1 : 1) * Math.Sin(Math.PI * 2 * (freqFrom * t + freqDif * t * t / 2.0)), false); + }, duration * 2, sampleRate); - } - break; - } - } + } + break; + } + } - public static async Task RegisterWave(double frequency, double duration, double ampLeft, double ampRight, WaveKinds kinds = WaveKinds.Sine, int sampleRate = 44100) - { - double[] amplifications = new[] { ampLeft, ampRight }; - switch (kinds) - { - case WaveKinds.Sine: - default: - await RegisterWave(frequency, (sample, actualSampleRate, channel) => - { - double t = (double)(sample) / actualSampleRate; - return (amplifications[channel] * Math.Sin(2.0 * Math.PI * frequency * t), false); - }, duration, ampLeft, ampRight, sampleRate); - break; - case WaveKinds.Square: - await RegisterWave(frequency, (sample, actualSampleRate, channel) => - { - double p1 = (sample * frequency) % actualSampleRate; - double p2 = p1 / actualSampleRate; - return (amplifications[channel] * (p2 < 0.5 ? 1 : -1), (int)p1 == 0); - }, duration, ampLeft, ampRight, sampleRate); - break; - case WaveKinds.Sawtooth: - await RegisterWave(frequency, (sample, actualSampleRate, channel) => - { - double p1 = (sample * frequency) % actualSampleRate; - double p2 = p1 / actualSampleRate; - return (amplifications[channel] * (-1 + 2 * p2), (int)p1 == 0); - }, duration, ampLeft, ampRight, sampleRate); - break; - case WaveKinds.Ramp: - await RegisterWave(frequency, (sample, actualSampleRate, channel) => - { - double p1 = (sample * frequency) % actualSampleRate; - double p2 = p1 / actualSampleRate; + public static async Task RegisterWave(double frequency, double duration, double ampLeft, double ampRight, WaveKinds kinds = WaveKinds.Sine, int sampleRate = 44100) + { + double[] amplifications = new[] { ampLeft, ampRight }; + switch (kinds) + { + case WaveKinds.Sine: + default: + await RegisterWave(frequency, (sample, actualSampleRate, channel) => + { + double t = (double)(sample) / actualSampleRate; + return (amplifications[channel] * Math.Sin(2.0 * Math.PI * frequency * t), false); + }, duration, ampLeft, ampRight, sampleRate); + break; + case WaveKinds.Square: + await RegisterWave(frequency, (sample, actualSampleRate, channel) => + { + double p1 = (sample * frequency) % actualSampleRate; + double p2 = p1 / actualSampleRate; + return (amplifications[channel] * (p2 < 0.5 ? 1 : -1), (int)p1 == 0); + }, duration, ampLeft, ampRight, sampleRate); + break; + case WaveKinds.Sawtooth: + await RegisterWave(frequency, (sample, actualSampleRate, channel) => + { + double p1 = (sample * frequency) % actualSampleRate; + double p2 = p1 / actualSampleRate; + return (amplifications[channel] * (-1 + 2 * p2), (int)p1 == 0); + }, duration, ampLeft, ampRight, sampleRate); + break; + case WaveKinds.Ramp: + await RegisterWave(frequency, (sample, actualSampleRate, channel) => + { + double p1 = (sample * frequency) % actualSampleRate; + double p2 = p1 / actualSampleRate; - //Sample 0 must be 0 for niceCuttingFrame. - return (amplifications[channel] * (p2 switch - { - < 0.25 => -p2 * 4, - < 0.75 => -2 + p2 * 4, - _ => -p2 * 4 + 4 - }), (int)p1 == 0); - }, duration, ampLeft, ampRight, sampleRate); - break; - } - } + //Sample 0 must be 0 for niceCuttingFrame. + return (amplifications[channel] * (p2 switch + { + < 0.25 => -p2 * 4, + < 0.75 => -2 + p2 * 4, + _ => -p2 * 4 + 4 + }), (int)p1 == 0); + }, duration, ampLeft, ampRight, sampleRate); + break; + } + } - public enum ShiftDirection - { - LeftToRight, RightToLeft - } + public enum ShiftDirection + { + LeftToRight, RightToLeft + } - public enum WaveKinds - { - Sine, Square, Sawtooth, Ramp, - } + public enum WaveKinds + { + Sine, Square, Sawtooth, Ramp, + } - public static async Task RegisterSineWaveStereoShift(double frequency, double duration, ShiftDirection direction, int sampleRate = 44100) - { - if (frequency >= sampleRate) - { - //You can not play the audio above the sampleRate - await AudioTest.Register((sample, samplerate, channel) => - { - return (0, false); - }, duration, sampleRate); + public static async Task RegisterSineWaveStereoShift(double frequency, double duration, ShiftDirection direction, int sampleRate = 44100) + { + if (frequency >= sampleRate) + { + //You can not play the audio above the sampleRate + await AudioTest.Register((sample, samplerate, channel) => + { + return (0, false); + }, duration, sampleRate); - }//We omit 22.05kHz operation here. - else - { - int directionNumber = direction switch - { - ShiftDirection.LeftToRight => 1, - ShiftDirection.RightToLeft => -1, - _ => 0, - }; - await AudioTest.Register((sample, actualSampleRate, channel) => - { - double t = (double)(sample) / actualSampleRate; - double d = Math.Cos(Math.PI * t / duration) / 2; - return (channel switch - { - 0 => 0.5 + d * directionNumber, - 1 => 0.5 - d * directionNumber, - _ => 0, - } * Math.Sin(2.0 * Math.PI * frequency * t), false); - }, duration, sampleRate); - } + }//We omit 22.05kHz operation here. + else + { + int directionNumber = direction switch + { + ShiftDirection.LeftToRight => 1, + ShiftDirection.RightToLeft => -1, + _ => 0, + }; + await AudioTest.Register((sample, actualSampleRate, channel) => + { + double t = (double)(sample) / actualSampleRate; + double d = Math.Cos(Math.PI * t / duration) / 2; + return (channel switch + { + 0 => 0.5 + d * directionNumber, + 1 => 0.5 - d * directionNumber, + _ => 0, + } * Math.Sin(2.0 * Math.PI * frequency * t), false); + }, duration, sampleRate); + } - } + } } diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Storages/StatusBarManagerStorage.cs b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Storages/StatusBarManagerStorage.cs index da777e0..f690acb 100644 --- a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Storages/StatusBarManagerStorage.cs +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Storages/StatusBarManagerStorage.cs @@ -13,7 +13,7 @@ public static class StatusBarManagerStorage //https://learn.microsoft.com/xamarin/community-toolkit/helpers/weakeventmanagert //https://learn.microsoft.com/dotnet/api/system.windows.weakeventmanager //Or just hit F12 on Command. - static readonly WeakEventManager _weakEventManager = new WeakEventManager(); + static readonly WeakEventManager _weakEventManager = new(); public static bool IsTileAdded { diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/ViewModels/BeepSweepViewModel.cs b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/ViewModels/BeepSweepViewModel.cs index 096b850..b8b7fa6 100644 --- a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/ViewModels/BeepSweepViewModel.cs +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/ViewModels/BeepSweepViewModel.cs @@ -10,187 +10,190 @@ namespace EarphoneLeftAndRight.ViewModels; public class BeepSweepViewModel : BaseViewModel { - private double _Duration = 10.0; - public double Duration - { - get => _Duration; set - { - if (value < 0.1) return; - SetProperty(ref _Duration, value); - } - } - - - private double _FrequencyStart = 20.0; - public double FrequencyStart - { - get => _FrequencyStart; set - { - if (value < FrequencyMinimum) return; - if (value > FrequencyMaximum) return; - SetProperty(ref _FrequencyStart, value); - } - } - - - private double _FrequencyEnd = 20000.0; - public double FrequencyEnd - { - get => _FrequencyEnd; set - { - if (value < FrequencyMinimum) return; - if (value > FrequencyMaximum) return; - SetProperty(ref _FrequencyEnd, value); - } - } - - - private double _FrequencyMinimum = 5.0; - public double FrequencyMinimum { get => _FrequencyMinimum; set => SetProperty(ref _FrequencyMinimum, value); } - - - private double _FrequencyMaximum = 96000.0; - public double FrequencyMaximum { get => _FrequencyMaximum; set => SetProperty(ref _FrequencyMaximum, value); } - - - private bool _EachChannel = false; - public bool EachChannel { get => _EachChannel; set => SetProperty(ref _EachChannel, value); } - - - private bool _Exponential = true; - public bool Exponential { get => _Exponential; set => SetProperty(ref _Exponential, value); } - - - private bool _Semitone = false; - - public BeepSweepViewModel() - { - PlayCommand = new Command(async () => - { - await Storages.AudioStorage.TestSupportHiDef(); - if (Semitone) await Storages.AudioStorage.RegisterSweepSemitoneAsync(this.FrequencyStart, FrequencyEnd, this.Exponential, this.Duration, 0.5, EachChannel ? Storages.AudioStorage.SweepChanneldOrder.LeftThenRight : Storages.AudioStorage.SweepChanneldOrder.Both, Storages.AudioStorage.HiDefSupported192kHz ? 192000 : (Storages.AudioStorage.HiDefSupported096kHz ? 96000 : 44100)); - else await Storages.AudioStorage.RegisterSweepAsync(this.FrequencyStart, FrequencyEnd, this.Exponential, this.Duration, 0.5, EachChannel ? Storages.AudioStorage.SweepChanneldOrder.LeftThenRight : Storages.AudioStorage.SweepChanneldOrder.Both, Storages.AudioStorage.HiDefSupported192kHz ? 192000 : (Storages.AudioStorage.HiDefSupported096kHz ? 96000 : 44100)); - await Task.Run(() => Storages.AudioStorage.AudioTest.Play()); - }); - - SetFrequencyCommand = new Command((arg) => - { - var args = arg?.ToString()?.Split(':')?.Select(a => double.Parse(a, System.Globalization.CultureInfo.InvariantCulture)).ToArray(); - if (args is null || args.Length < 2) return; - if (args[0] >= 0) FrequencyStart = args[0]; - if (args[1] >= 0) FrequencyEnd = args[1]; - }); - - SetFrequencyMaxCommand = new Command(() => - { - FrequencyStart = FrequencyMinimum; - FrequencyEnd = (Storages.AudioStorage.HiDefSupported192kHz ? 192000 : (Storages.AudioStorage.HiDefSupported096kHz ? 96000 : 44100)) / 2.0; - }); - - SetFrequencyInvertCommand = new Command(() => - { - (FrequencyEnd, FrequencyStart) = (FrequencyStart, FrequencyEnd); - }); - - DurationAddCommand = new Command((arg) => - { - if (!double.TryParse(arg.ToString(), System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.InvariantCulture, out double t)) return; - this.Duration += t; - }); - } - - public bool Semitone { get => _Semitone; set => SetProperty(ref _Semitone, value); } - - public ICommand PlayCommand { get; } - public ICommand SetFrequencyCommand { get; } - public ICommand SetFrequencyInvertCommand { get; } - public ICommand SetFrequencyMaxCommand { get; } - public ICommand DurationAddCommand { get; } - - public CurrentHzProvider GetCurrentHzProvider() - { - return new CurrentHzProvider() - { - Duration = Duration, - FrequencyEnd = FrequencyEnd, - FrequencyStart = FrequencyStart, - Exponential = Exponential, - EachChannel = EachChannel, - Semitone = Semitone - }; - } - - public class CurrentHzProvider - { - public double Duration { get; set; } - public double FrequencyStart { get; set; } - public double FrequencyEnd { get; set; } - public bool Exponential { get; set; } - public bool EachChannel { get; set; } - public bool Semitone { get; set; } - - public double ActualDuration => EachChannel ? Duration * 2 : Duration; - - public double SecondsToHz(double sec) - { - if ((EachChannel && sec > Duration * 2) || ((!EachChannel) && sec > Duration)) - { - return 0; - } - sec %= Duration; - if (Semitone) - { - var start = Helper.FreqConverters.HzToNoteNumberEqualTemperament(FrequencyStart); - var end = Helper.FreqConverters.HzToNoteNumberEqualTemperament(FrequencyEnd); - - if (Math.Floor(start) == Math.Floor(end)) - { - return Helper.FreqConverters.NoteNumberToHzEqualTemperament(Math.Floor(start)); - } - else if (start > end) - { - start = Math.Floor(start); - end = Math.Ceiling(end); - } - else - { - start = Math.Ceiling(start); - end = Math.Floor(end); - } - - if (Exponential) - { - return Helper.FreqConverters.NoteNumberToHzEqualTemperament(start + Math.Sign(end - start) * Math.Floor(sec / Duration * (Math.Abs(end - start) + 1))); - } - else if (start < end) - { - var hzS = Helper.FreqConverters.NoteNumberToHzEqualTemperament(start); - double hzPerSec = (Helper.FreqConverters.NoteNumberToHzEqualTemperament(end + 1) - hzS) / Duration; - return Helper.FreqConverters.NoteNumberToHzEqualTemperament(Math.Floor(Helper.FreqConverters.HzToNoteNumberEqualTemperament(hzS + hzPerSec * sec))); - } - else - { - if (sec == 0) return Helper.FreqConverters.NoteNumberToHzEqualTemperament(start); - var hzS = Helper.FreqConverters.NoteNumberToHzEqualTemperament(start + 1); - double hzPerSec = (hzS - Helper.FreqConverters.NoteNumberToHzEqualTemperament(end)) / Duration; - return Helper.FreqConverters.NoteNumberToHzEqualTemperament(Math.Floor(Helper.FreqConverters.HzToNoteNumberEqualTemperament(hzS - hzPerSec * sec))); - - } - } - else - { - if (Exponential) - { - double slog = Math.Log(FrequencyStart); - double elog = Math.Log(FrequencyEnd); - double dlog = (elog - slog) / Duration; - return Math.Pow(Math.E, slog + dlog * sec); - } - else - { - return FrequencyStart + (FrequencyEnd - FrequencyStart) * sec / Duration; - } - } - } - } + private double _Duration = 10.0; + public double Duration + { + get => _Duration; set + { + if (value < 0.1) return; + SetProperty(ref _Duration, value); + } + } + + + private double _FrequencyStart = 20.0; + public double FrequencyStart + { + get => _FrequencyStart; set + { + if (value < FrequencyMinimum) return; + if (value > FrequencyMaximum) return; + SetProperty(ref _FrequencyStart, value); + } + } + + + private double _FrequencyEnd = 20000.0; + public double FrequencyEnd + { + get => _FrequencyEnd; set + { + if (value < FrequencyMinimum) return; + if (value > FrequencyMaximum) return; + SetProperty(ref _FrequencyEnd, value); + } + } + + + private double _FrequencyMinimum = 5.0; + public double FrequencyMinimum { get => _FrequencyMinimum; set => SetProperty(ref _FrequencyMinimum, value); } + + + private double _FrequencyMaximum = 96000.0; + public double FrequencyMaximum { get => _FrequencyMaximum; set => SetProperty(ref _FrequencyMaximum, value); } + + + private bool _EachChannel = false; + public bool EachChannel { get => _EachChannel; set => SetProperty(ref _EachChannel, value); } + + + private bool _Exponential = true; + public bool Exponential { get => _Exponential; set => SetProperty(ref _Exponential, value); } + + + private bool _Semitone = false; + + public BeepSweepViewModel() + { + PlayCommand = new Command(async () => + { + await Storages.AudioStorage.TestSupportHiDef(); + if (Semitone) await Storages.AudioStorage.RegisterSweepSemitoneAsync(this.FrequencyStart, FrequencyEnd, this.Exponential, this.Duration, 0.5, EachChannel ? Storages.AudioStorage.SweepChanneldOrder.LeftThenRight : Storages.AudioStorage.SweepChanneldOrder.Both, Storages.AudioStorage.HiDefSupported192kHz ? 192000 : (Storages.AudioStorage.HiDefSupported096kHz ? 96000 : 44100), this.OppositePhase); + else await Storages.AudioStorage.RegisterSweepAsync(this.FrequencyStart, FrequencyEnd, this.Exponential, this.Duration, 0.5, EachChannel ? Storages.AudioStorage.SweepChanneldOrder.LeftThenRight : Storages.AudioStorage.SweepChanneldOrder.Both, Storages.AudioStorage.HiDefSupported192kHz ? 192000 : (Storages.AudioStorage.HiDefSupported096kHz ? 96000 : 44100), this.OppositePhase); + await Task.Run(() => Storages.AudioStorage.AudioTest.Play()); + }); + + SetFrequencyCommand = new Command((arg) => + { + var args = arg?.ToString()?.Split(':')?.Select(a => double.Parse(a, System.Globalization.CultureInfo.InvariantCulture)).ToArray(); + if (args is null || args.Length < 2) return; + if (args[0] >= 0) FrequencyStart = args[0]; + if (args[1] >= 0) FrequencyEnd = args[1]; + }); + + SetFrequencyMaxCommand = new Command(() => + { + FrequencyStart = FrequencyMinimum; + FrequencyEnd = (Storages.AudioStorage.HiDefSupported192kHz ? 192000 : (Storages.AudioStorage.HiDefSupported096kHz ? 96000 : 44100)) / 2.0; + }); + + SetFrequencyInvertCommand = new Command(() => + { + (FrequencyEnd, FrequencyStart) = (FrequencyStart, FrequencyEnd); + }); + + DurationAddCommand = new Command((arg) => + { + if (!double.TryParse(arg.ToString(), System.Globalization.NumberStyles.Number, System.Globalization.CultureInfo.InvariantCulture, out double t)) return; + this.Duration += t; + }); + } + + public bool Semitone { get => _Semitone; set => SetProperty(ref _Semitone, value); } + + private bool _OppositePhase = false; + public bool OppositePhase { get => _OppositePhase; set => SetProperty(ref _OppositePhase, value); } + + public ICommand PlayCommand { get; } + public ICommand SetFrequencyCommand { get; } + public ICommand SetFrequencyInvertCommand { get; } + public ICommand SetFrequencyMaxCommand { get; } + public ICommand DurationAddCommand { get; } + + public CurrentHzProvider GetCurrentHzProvider() + { + return new CurrentHzProvider() + { + Duration = Duration, + FrequencyEnd = FrequencyEnd, + FrequencyStart = FrequencyStart, + Exponential = Exponential, + EachChannel = EachChannel, + Semitone = Semitone + }; + } + + public class CurrentHzProvider + { + public double Duration { get; set; } + public double FrequencyStart { get; set; } + public double FrequencyEnd { get; set; } + public bool Exponential { get; set; } + public bool EachChannel { get; set; } + public bool Semitone { get; set; } + + public double ActualDuration => EachChannel ? Duration * 2 : Duration; + + public double SecondsToHz(double sec) + { + if ((EachChannel && sec > Duration * 2) || ((!EachChannel) && sec > Duration)) + { + return 0; + } + sec %= Duration; + if (Semitone) + { + var start = Helper.FreqConverters.HzToNoteNumberEqualTemperament(FrequencyStart); + var end = Helper.FreqConverters.HzToNoteNumberEqualTemperament(FrequencyEnd); + + if (Math.Floor(start) == Math.Floor(end)) + { + return Helper.FreqConverters.NoteNumberToHzEqualTemperament(Math.Floor(start)); + } + else if (start > end) + { + start = Math.Floor(start); + end = Math.Ceiling(end); + } + else + { + start = Math.Ceiling(start); + end = Math.Floor(end); + } + + if (Exponential) + { + return Helper.FreqConverters.NoteNumberToHzEqualTemperament(start + Math.Sign(end - start) * Math.Floor(sec / Duration * (Math.Abs(end - start) + 1))); + } + else if (start < end) + { + var hzS = Helper.FreqConverters.NoteNumberToHzEqualTemperament(start); + double hzPerSec = (Helper.FreqConverters.NoteNumberToHzEqualTemperament(end + 1) - hzS) / Duration; + return Helper.FreqConverters.NoteNumberToHzEqualTemperament(Math.Floor(Helper.FreqConverters.HzToNoteNumberEqualTemperament(hzS + hzPerSec * sec))); + } + else + { + if (sec == 0) return Helper.FreqConverters.NoteNumberToHzEqualTemperament(start); + var hzS = Helper.FreqConverters.NoteNumberToHzEqualTemperament(start + 1); + double hzPerSec = (hzS - Helper.FreqConverters.NoteNumberToHzEqualTemperament(end)) / Duration; + return Helper.FreqConverters.NoteNumberToHzEqualTemperament(Math.Floor(Helper.FreqConverters.HzToNoteNumberEqualTemperament(hzS - hzPerSec * sec))); + + } + } + else + { + if (Exponential) + { + double slog = Math.Log(FrequencyStart); + double elog = Math.Log(FrequencyEnd); + double dlog = (elog - slog) / Duration; + return Math.Pow(Math.E, slog + dlog * sec); + } + else + { + return FrequencyStart + (FrequencyEnd - FrequencyStart) * sec / Duration; + } + } + } + } } diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/ViewModels/PlayViewModel.cs b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/ViewModels/PlayViewModel.cs index 719f06b..fe531aa 100644 --- a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/ViewModels/PlayViewModel.cs +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/ViewModels/PlayViewModel.cs @@ -56,23 +56,7 @@ public PlayViewModel() _StatusBarManager = DependencyService.Get(); - //{ - // var command = new Command(() => { _StatusBarManager.RequestAddTileService(); OnPropertyChanged(nameof(IsStatusBarManagerSupported)); }, () => IsStatusBarManagerSupported); - // this.PropertyChanged += (_, e) => - // { - // if (e.PropertyName == nameof(IsStatusBarManagerSupported)) command.ChangeCanExecute(); - // }; - // RequestAddTile = command; - //} RequestAddTile = new Command(_StatusBarManager.RequestAddTileService, () => IsStatusBarManagerSupported); - - //外部から参照され続けるとGCで解放されない気がするからWeakReferenceにしたけどこれ合ってる? - //Storages.StatusBarManagerStorage.IsTileAddedChangedをWeakEventManagerで制御するようにしたのでもう心配する必要はない。 - //次回コミットで削除。 - //WeakReference weak = new(() => OnPropertyChanged(nameof(IsStatusBarManagerSupported)), false); - //Storages.StatusBarManagerStorage.IsTileAddedChanged += (_, _) => { try { if (weak.TryGetTarget(out var action)) action?.Invoke(); } catch { } }; - - //Storages.StatusBarManagerStorage.IsTileAddedChanged += (_, _) => OnPropertyChanged(nameof(IsStatusBarManagerSupported)); } public async static void Speak(object a) @@ -135,7 +119,7 @@ public async static void Speak(object a) new SearchService("YouTube","https://www.youtube.com/results?search_query={0}"), new SearchService("GitHub","https://github.com/search?q={0}"), new SearchService("Amazon","https://www.amazon.com/s?k={0}&tag=kuremastereotest-22"), - new SearchService("Twitter","https://twitter.com/search?q={0}"), + new SearchService("Twitter / X","https://twitter.com/search?q={0}"), new SearchService("Google Play","https://play.google.com/store/search?q={0}"), }; @@ -153,9 +137,7 @@ public SearchService(string title, string uri) readonly Dependency.IStatusBarManager _StatusBarManager; - //IsTileAddedが機能してなさそうなので、とりあえずコメントアウト。 public bool IsStatusBarManagerSupported => _StatusBarManager.RequestAddTileServiceIsSupported && !Storages.StatusBarManagerStorage.IsTileAdded; - //public bool IsStatusBarManagerSupported => _StatusBarManager.RequestAddTileServiceIsSupported; } } diff --git a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Views/BeepTabbed.xaml b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Views/BeepTabbed.xaml index ff62f47..3c26a15 100644 --- a/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Views/BeepTabbed.xaml +++ b/Earphone/EarphoneLeftAndRight/EarphoneLeftAndRight/Views/BeepTabbed.xaml @@ -260,6 +260,8 @@