.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.

Он имеет аудио контроль и плагины. Надеюсь, поможет.

Другие вопросы по тегам