2010-07-06 112 views
8

簡而言之,我正在尋找一個.NET的翻譯JFugue用於音樂編程的.NET API?

更新
我認識到,沒有對JFugue沒有真正的.NET替代,崗位波紋管總是偉大的,因爲對於一個指導誰願意由他自己去發展它。
謝謝大家。

注:我想emphsize,我的搜索是在轉錄一部分,而不是播放部分,換句話說,我要尋找有MIDI映射類等一個.NET引擎

NAudio似乎成爲目前最熱門的選擇。

+0

我不知道JFugue的.NET實現(作爲JFugue的作者,我對此非常瞭解)。讓我知道你是否希望我的建議創造新的東西! – 2010-07-15 20:36:53

+1

@David只要我看到JFugue的StackOverflow廣告,我就開始尋找NFugue :-) – 2010-07-29 17:15:26

+0

@Ben,一旦你有了sn'消息,一定要彈出... – Shimmy 2010-07-29 21:47:37

回答

1

卡爾富蘭克林dotnet岩石的主機已經做了一些這方面的工作,如果你看他的代碼示例,它可能會幫助:http://www.franklins.net/dotnet.aspx

他也做了screen cast on Midi routers

希望這有助於

+0

它遠遠超出了JFuge,但是感謝發佈。如果您發現額外的問題,我會感激您的意見。 – Shimmy 2010-07-06 13:04:05

0

那麼,不只是像JFugue,但我已經使用BASS庫.Net。你可以找到圖書館在the un4seen web

它具有音頻控制和midi插件。希望能幫助到你。

+0

我專注於音樂轉錄部分,BASS根本沒有提供。 – Shimmy 2010-07-06 21:04:22

1

我以前用過Midi Toolkit作爲起點,也許你覺得它有用。

順便說一下,JFugue不僅是一個庫,也是一個語法。我正在把它移植到Ruby上,如果有人(你,或許?)將它移植到.NET上,它會很好。=)

+0

的確,我正在談論語法!這就是爲什麼我提到「像賦格」 – Shimmy 2010-07-08 09:59:41

1

DryWetMIDI具有基於MIDI的音樂編程功能。這裏沒有聲音產生,只有組成API可以創建MIDI文件。一個簡單的例子:

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(OctaveDefinition.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。

+0

我現在還沒有進入這個領域,但聽起來不錯! – Shimmy 2017-08-24 23:33:13