forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Проигрывание MIDI (http://forum.boolean.name/showthread.php?t=19533)

Кирпи4 24.11.2014 01:00

Проигрывание MIDI
 
Сап булка, пишу тут кое-что, но столкнулся с тем, что нужно проиграть MID-файл из памяти. По либам тихо, все предлагают только воспроизведение нот, мол, на, сам пиши секвенсор. Есть вариант играть через winmm.dll, но это костыли. Буду очень признателен.

mr.DIMAS 25.11.2014 23:25

Ответ: Проигрывание MIDI
 
загуглил c# midi play from memory

Нашел это, играется через winmm

Код:

        using (var midiStream = new MemoryStream(Resources.myMidi))
        {
            var data = midiStream.ToArray();
            try
            {
                using (var fs = new FileStream("midi.mid", FileMode.CreateNew, FileAccess.Write))
                {
                    fs.Write(data, 0, data.Length);
                }
            }
            catch(IOException)
            {}
            string sCommand = "open \"" + Application.StartupPath + "/midi.mid" + "\" alias " + "MIDIapp";
            mciSendString(sCommand, null, 0, IntPtr.Zero);
            sCommand = "play " + "MIDIapp";
            mciSendString(sCommand, null, 0, IntPtr.Zero);
        }

здесь

там же есть ссылка на первоисточник кода

чел пишет что все работает

ps. сам не проверял

еще вроде как FMOD умеет миди из памяти играть

trq 25.11.2014 23:48

Ответ: Проигрывание MIDI
 
Цитата:

Сообщение от Кирпи4 (Сообщение 289629)
все предлагают только воспроизведение нот

А тебе что надо? МИДИ-файл и есть набор инструкций, в основном нот.
http://www.bass.radio42.com/help/htm...ee71259c09.htm - попробуй это, проигрывает миди с помощью саундфонтов (библиотеки сэмплов).


Часовой пояс GMT +4, время: 17:50.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot