.NET API для музыкального программирования?
Короче говоря, я ищу.NET перевод JFugue.
Обновить
Я понимаю, что реальной альтернативы.NET для JFugue не существует, посты ниже всегда хороши как руководство для тех, кто хочет разработать его самостоятельно.
Спасибо всем вам.
Примечание: я хочу подчеркнуть, что мой поиск относится к транскрипционной части, а не к игровой части, другими словами, я ищу движок.NET, который имеет классы MIDI-отображения и т. Д.
NAudio, кажется, самая горячая альтернатива до сих пор.
6 ответов
Checkout NAudio от Mark Heath, отличной музыкальной библиотеки.NET, я бы сказал, что она должна содержаться в BCL.
http://code.google.com/p/midi-dot-net/logo?cct=1259803335 midi-dot-net
Еще один замечательный C# проект Тома Локовича.
Карл Франклин, ведущий скалы дотнет, проделал некоторую работу с этим, если вы посмотрите на его примеры кода, это может помочь: http://www.franklins.net/dotnet.aspx.
Он также снял скриншот на роутерах Midi.
Надеюсь это поможет
Я использовал Midi Toolkit прежде в качестве отправной точки, возможно, вы найдете его полезным.
Кстати, JFugue - это не только библиотека, но и синтаксис. Я работаю над портированием его на Ruby, и было бы неплохо, если бы кто-то (возможно, вы?) Перенес его на.NET =)
Не знаю, поможет ли это или нет: http://www.c-sharpcorner.com/UploadFile/mgold/SheetMusicRecorder09242005060541AM/SheetMusicRecorder.aspx
это музыкальная клавиатура, но вы должны иметь возможность перепроектировать исходный код и адаптировать его под то, что вы пытаетесь сделать.
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(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.
Он имеет аудио контроль и плагины. Надеюсь, поможет.