.NET API for music programming? [closed]
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this questionIn short words I am looking for a .NET translation of JFugue.
Update
I realize that there is no real .NET alternative for JFugue, the posts bellow are always great as a guideline for one who wants to develop it by his own. Thanks for all of you.Note: I want to emphsize that my search is on the transcription part, not the playing part, in other words, I am looking for a .NET engine that has MIDI-mapping classes etc.
NAudio seems to be the hottest alterna开发者_如何学编程tive so far.
Checkout NAudio by Mark Heath, a great .NET music library I would say it should be contained in the BCL.
(source: google.com)
midi-dot-net
Another great C# project by Tom Lokovic.
Carl Franklin the host of dotnet rocks has done some work with this, if you look at his code samples it may help: http://www.franklins.net/dotnet.aspx.
He also did a screen cast on Midi routers.
Hope this helps
Don't know if this will help or not: http://www.c-sharpcorner.com/UploadFile/mgold/SheetMusicRecorder09242005060541AM/SheetMusicRecorder.aspx
its a musical keyboard, but you should be able to reverse engineer the source code and adapt it to suit what you are trying to do.
I've used Midi Toolkit before as a starting point, perhaps you find it useful.
BTW, JFugue is not only a library, but also a syntax. I'm working on porting it to Ruby, and it'd be nice if someone (you, maybe?) port it to .NET =)
DryWetMIDI has MIDI based music programming capabilities. There is no sound generation there, only composing API allowing to create MIDI files. A quick example:
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");
As you can see it is not a replacement of JFugue at now since there is no special syntax here, just .NET API.
Well, not just like JFugue but I've used the BASS library for .Net. You can find the library at the un4seen web
It has audio control and midi thru plugins. Hope it helps.
精彩评论