简而言之,我正在寻找JFugue。
的.NET翻译 更新
我意识到JFugue没有真正的.NET替代方案,对于想要自己开发它的人来说,下面的帖子总是很棒。
谢谢你们所有人。
注意:我想强调我的搜索是在转录部分而不是播放部分,换句话说,我正在寻找具有MIDI映射类等的.NET引擎。
到目前为止,{p> NAudio似乎是最热门的选择。答案 0 :(得分:2)
NAudio结帐Mark Heath,这是一个很棒的.NET音乐库我会说它应该包含在BCL中。
logo http://code.google.com/p/midi-dot-net/logo?cct=1259803335 midi-dot-net
Tom Lokovic的另一个伟大的C#项目。
答案 1 :(得分:1)
dotnet rock的主持人Carl Franklin已经做了一些工作,如果你查看他的代码示例,它可能会有所帮助:http://www.franklins.net/dotnet.aspx。
他也做了screen cast on Midi routers。
希望这有帮助
答案 2 :(得分:1)
它是一个音乐键盘,但您应该能够对源代码进行反向工程并使其适应您想要做的事情。
答案 3 :(得分:1)
之前我曾使用Midi Toolkit作为起点,也许你觉得它很有用。
BTW,JFugue不仅是一个库,也是一种语法。我正在努力将它移植到Ruby,如果有人(你,也许?)将它移植到.NET =)答案 4 :(得分:1)
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。
答案 5 :(得分:0)
好吧,不仅仅是像JFugue,而是我使用了.Net的BASS库。您可以在the un4seen web
找到该库它具有音频控制和midi thru插件。希望它有所帮助。