简而言之,我正在寻找JFugue的 .NET 翻译。
更新
我意识到 JFugue 没有真正的 .NET 替代品,下面的帖子对于想要自己开发它的人来说总是很好的指导方针。
谢谢大家。
注意:我想强调我的搜索是在转录部分,而不是演奏部分,换句话说,我正在寻找一个具有 MIDI 映射类等的 .NET 引擎。
NAudio似乎是迄今为止最热门的替代品。
签出Mark Heath的NAudio,一个很棒的 .NET 音乐库,我想说它应该包含在 BCL 中。
(来源:google.com)
midi-dot-net
Tom Lokovic 的另一个出色的 C# 项目。
dotnet Rocks 的主持人 Carl Franklin 对此做了一些工作,如果您查看他的代码示例可能会有所帮助:http ://www.franklins.net/dotnet.aspx 。
希望这可以帮助
它是一个音乐键盘,但您应该能够对源代码进行逆向工程并对其进行调整以适应您想要做的事情。
我以前使用过Midi Toolkit作为起点,也许你觉得它很有用。
顺便说一句,JFugue 不仅是一个库,还是一个语法。我正在努力将它移植到 Ruby,如果有人(你,也许?)将它移植到 .NET =)
DryWetMIDI具有基于 MIDI 的音乐编程功能。那里没有声音生成,只有编写允许创建 MIDI 文件的 API。一个简单的例子:
Pattern pattern = new PatternBuilder()
// Insert a pause of 5 seconds
.StepForward(new MetricTimeSpan(0, 0, 5))
// Insert an eighth C# note of the 4th octave
.Note(Octave.Get(4).CSharp, MusicalTimeSpan.Eighth)
// Set default note length to triplet eighth and default octave to 5
.SetNoteLength(MusicalTimeSpan.Eighth.Triplet())
.SetOctave(5)
// Now we can add triplet eighth notes of the 5th octave in a simple way
.Note(NoteName.A)
.Note(NoteName.B)
.Note(NoteName.GSharp)
// Get pattern
.Build();
// Now we can export pattern to MIDI file
MidiFile midiFile = pattern.ToFile(TempoMap.Default);
midiFile.Write("My Great Song.mid");
正如你所看到的,它现在不是 JFugue 的替代品,因为这里没有特殊的语法,只有 .NET API。
嗯,不只是像 JFugue,而且我已经使用了 BASS 库用于 .Net。您可以在un4seen 网络上找到图书馆
它具有音频控制和 MIDI 直通插件。希望能帮助到你。