main
FurElise C#
用 C# 控制台程序在 Windows 上演奏贝多芬《致爱丽丝》(Für Elise)。
原理
- 使用 Windows 内核 API
kernel32!Beep(frequency, duration)发声 - 乐谱数据用
(音名, 时值)数组描述,R表示休止 - 音名映射到平均律频率(如
A4=440、E5=659、Ds5=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
方式 C:dotnet 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(依赖
BeepAPI);无声卡驱动策略时部分环境可能无声音 - 旋律为主题段落的简化编配,适合教学演示
- 请勿在文章/仓库中提交站点账号密码
License
MIT
Languages
C#
100%