Files
fur-elise-csharp/README.md
T

1.5 KiB
Raw Blame History

FurElise C#

用 C# 控制台程序在 Windows 上演奏贝多芬《致爱丽丝》(Für Elise)。

原理

  • 使用 Windows 内核 API kernel32!Beep(frequency, duration) 发声
  • 乐谱数据用 (音名, 时值) 数组描述,R 表示休止
  • 音名映射到平均律频率(如 A4=440E5=659Ds5=622

运行

方式 A:已编译程序

dotnet FurElise.dll
# 或
.\FurElise.exe

方式 B:源码直接编译(.NET 10 csc

$refDir = "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.12\ref\net10.0"
$refs = (Get-ChildItem "$refDir\*.dll" | ForEach-Object { "-r:`"$($_.FullName)`"" }) -join ' '
dotnet exec "C:\Program Files\dotnet\sdk\10.0.401\Roslyn\bincore\csc.dll" `
  -nologo -t:exe -out:FurElise.dll $refs Program.cs
# 复制 runtimeconfig.json 后
dotnet FurElise.dll

方式 Cdotnet run(需可用的 SDK/NuGet

dotnet run --project FurElise.csproj

参数

参数 说明 默认
--dry-run 只打印音符与频率,不发声
--bpm <n> 速度(四分音符 BPM 72
--loops <n> 重复次数 1
--help 帮助

示例:

.\FurElise.exe --dry-run
.\FurElise.exe --bpm 90 --loops 2

说明

  • 仅 Windows(依赖 Beep API);无声卡驱动策略时部分环境可能无声音
  • 旋律为主题段落的简化编配,适合教学演示
  • 请勿在文章/仓库中提交站点账号密码

License

MIT