<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=3615667</guid>
        <pubDate>Wed, 29 Jul 2015 20:14:00 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=3615667</link>
        <description><![CDATA[SeregaZ: у меня вопрос по midi - а внешний файл нельзя подключать в качестве инструмента? я так понимаю всего 127 этих инструментов... вот можно как-то использовать внешний файл?]]></description>
        <author>SeregaZ</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=1134914</guid>
        <pubDate>Mon, 12 Jun 2006 17:59:55 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=1134914</link>
        <description><![CDATA[Ash: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Но у нас принято исходниками делиться.</div></div><br>
<br>
Да мне не жалко, вот держите.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Кстати, .ехе я обработал утилитой strip и она сбросила вес файла до 473 кб вместо предыдущих 1.8 Мб. Чувствуешь разницу?А если ужать ещё UPX&#33;, то вообще небольшая по размеру будет...</div></div><br>
<br>
Круто...&#33;&#33;&#33; Что это раньше я не воспользовался этим]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=1134119</guid>
        <pubDate>Sun, 11 Jun 2006 22:16:45 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=1134119</link>
        <description><![CDATA[Romtek: Музредактор вполне зачётный получился.  :yes:  Но у нас принято исходниками делиться. Как тебе помогли, так и ты можешь помочь этими исходниками.<br><br>Кстати, .ехе я обработал утилитой strip и она сбросила вес файла до 473 кб вместо предыдущих 1.8 Мб. Чувствуешь разницу?<br>А если ужать ещё UPX&#33;, то вообще небольшая по размеру будет...]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=1134104</guid>
        <pubDate>Sun, 11 Jun 2006 21:44:40 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=1134104</link>
        <description><![CDATA[Ash: я вот годик назад курсовую написал, всё никак выложить не хватало время. А всё благодаря этой теме :)<br>Вот помотрите кому не лень. курсовая не много массивная получилась, но ни чё зато на пять.<br><br>вот ссылочка, если не лень зацените: http://rapidshare.de/files/22820516/kurs.rar.html]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=741980</guid>
        <pubDate>Tue, 07 Jun 2005 15:50:08 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=741980</link>
        <description><![CDATA[Romtek: Вот более-менее оформленный код. Все низкоуровневые функции находятся в модуле MIDIDeviceUnit.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">program Midi_Gamma;</div><div class="code_line">&nbsp;</div><div class="code_line">uses CRT, Windows, MMSystem, MIDIDeviceUnit;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Массив нот</div><div class="code_line">&nbsp;&nbsp; &nbsp;noteseq: array[1..7] of integer = (</div><div class="code_line">&nbsp;&nbsp; &nbsp; , , , , , A, C</div><div class="code_line">&nbsp;&nbsp; &nbsp;);</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; &nbsp;MidiOut: TMIDIDevice;</div><div class="code_line">&nbsp;&nbsp; &nbsp;devID,</div><div class="code_line">&nbsp;&nbsp; &nbsp;CurrentNote: integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch : char;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; MidiOut := TMIDIDevice.Create;</div><div class="code_line">&nbsp;&nbsp; &nbsp; devID := 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; { номер миди-устройства, или MIDI_MAPPER - использует MIDI по умолчанию }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MidiOut.OpenMidi (devID);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;writeln (&#39;Press space for playing piano...&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MidiOut.MIDIProgramChange (0, 0); // установка инструмента</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ch := readkey;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ch = &#39; &#39; then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; with MidiOut do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for CurrentNote := 1 to 7 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MIDINoteOn (0, NoteSeq[CurrentNote], ); // включение ноты</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sleep (300); // 300 msec задержка</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MIDINoteOff (0, NoteSeq[CurrentNote], ); // выключение ноты</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;until ch = #27;</div><div class="code_line">&nbsp;&nbsp; &nbsp; finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; // освобождать класс, даже при ошибках.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; MidiOut.Destroy;</div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735722</guid>
        <pubDate>Wed, 01 Jun 2005 21:36:47 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735722</link>
        <description><![CDATA[Romtek: А вот какой-то миди-модуль с польскими именами, надеюсь, поможет. :rolleyes: <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">unit MIDIDeviceUnit;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">Uses Windows, Messages, Classes, MMsystem;</div><div class="code_line">&nbsp;</div><div class="code_line">type TTablicaBrzmien = array [0..127] of string;</div><div class="code_line">&nbsp;&nbsp; &nbsp; TTablicaDzwiekow = array [0..11] of string[2];</div><div class="code_line">&nbsp;</div><div class="code_line">TMIDIDevice = class(TObject)</div><div class="code_line">private</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;hMidiOut : PHMIDIOUT;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MidiOutMessage(iStatus:integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;iChannel:integer; iData1:integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;iData2:integer):Word;</div><div class="code_line">&nbsp;public</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;constructor Create;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;destructor Destroy;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function ProgramName(ProgramValue:byte):string;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function NoteName(Note:byte):string;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDINoteOff</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; KeyNumber:byte; Velocity:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDINoteOn</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; KeyNumber:byte; Velocity:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIPolyphonicAfterTouch</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; KeyNumber:byte; AfterTouch:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIControlChange</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; Controler:byte; Value:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIChannelModeLocalControl</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; zalacz:boolean):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIAllNotesOff(Channel:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIOmniModeOff(Channel:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIOmniModeOn(Channel:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIMonoModeOn(Channel:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIPolyModeOn(Channel:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIChannelAfterTouch(Channel:byte;AfterTouch:byte):boolean;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIProgramChange</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; ProgramValue:byte):boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function MIDIPitchWheelChange</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; LowValue:byte; HighValue:byte):boolean;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;</div><div class="code_line">implementation</div><div class="code_line">const TablicaBrzmien : TTablicaBrzmien =</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;(&#39;Piano&#39;,&#39;Brite Piano&#39;,&#39;Hammer Piano&#39;,&#39;Honkey Tonk&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;New Tines&#39;,&#39;Digi Pioano&#39;,&#39;Harpsicord&#39;,&#39;Clav&#39;,&#39;Celesta&#39;,&#39;Glocken&#39;,&#39;Music Box&#39;,&#39;Vibes&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Marimba&#39;,&#39;Xylophon&#39;,&#39;Tabular&#39;,&#39;Santur&#39;,&#39;Full Organ&#39;,&#39;Perc Organ&#39;,&#39;BX-3 Organ&#39;,&#39;ChurchPipe&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Positive&#39;,&#39;Musette&#39;,&#39;Harmonica&#39;,&#39;Tango&#39;,&#39;Clscic Guitar&#39;,&#39;Acoustic Guitar&#39;,&#39;Jazz guitar&#39;,&#39;Clean Guitar&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Mute Guitar&#39;,&#39;Over Drive&#39;,&#39;Dist Guitar&#39;,&#39;Rock Monics&#39;,&#39;Jazz Bass&#39;,&#39;Deep Bass&#39;,&#39;Pick Bass&#39;,&#39;Fretless&#39;,&#39;Slap Bass 1&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Slap Bass 2&#39;,&#39;Synth Bass 1&#39;,&#39;Synth Bass 2&#39;,&#39;Violin&#39;,&#39;Viola&#39;,&#39;Cello&#39;,&#39;ContraBass&#39;,&#39;Termolo Strings&#39;,&#39;Pizzicato&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Harp&#39;,&#39;Timpani&#39;,&#39;Marcato&#39;,&#39;Slow String&#39;,&#39;AnalogPad&#39;,&#39;String Pad&#39;,&#39;Choir&#39;,&#39;Doo Voice&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Voices&#39;,&#39;Orch Hit&#39;,&#39;Trumpet&#39;,&#39;Trombone&#39;,&#39;Tuba&#39;,&#39;Muted Trumpet&#39;,&#39;French Horn&#39;,&#39;Brass&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;SynBrass 1&#39;,&#39;SynBrass 2&#39;,&#39;Soprano Sax&#39;,&#39;Alto Sax&#39;,&#39;Tenor Sax&#39;,&#39;Bari Sax&#39;,&#39;Sweet Oboe&#39;,&#39;English Horn&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Basoon Oboe&#39;,&#39;Clarinet&#39;,&#39;Piccolo&#39;,&#39;Flute&#39;,&#39;Recorder&#39;,&#39;Pan Flute&#39;,&#39;Bottle&#39;,&#39;Shakuhachi&#39;,&#39;Whistle&#39;,&#39;Ocaiona&#39;,&#39;Square Wave&#39;,&#39;Saw Wave&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Syn Caliope&#39;,&#39;Syn Choff&#39;,&#39;Charang&#39;,&#39;Air Chorus&#39;,&#39;Rezzo4th&#39;,&#39;Bass&amp;Lead&#39;,&#39;Fantasia&#39;,&#39;Warm Pad&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Poly Pad&#39;,&#39;Ghost Pad&#39;,&#39;Bowed Glass&#39;,&#39;Metal Pad&#39;,&#39;Halo Pad&#39;,&#39;Sweep&#39;,&#39;Ice Rain&#39;,&#39;Sound Track&#39;,&#39;Crystal&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Atmosphere&#39;,&#39;Brightness&#39;,&#39;Goblin&#39;,&#39;Echp Drop&#39;,&#39;Star Theme&#39;,&#39;Sitar&#39;,&#39;Banjo&#39;,&#39;Shamisen&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Koto&#39;,&#39;Kalimba&#39;,&#39;Scotland&#39;,&#39;Fiddle&#39;,&#39;Shanai&#39;,&#39;Metal Bell&#39;,&#39;Agogo&#39;,&#39;Steel Drums&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Woodblock&#39;,&#39;Taiko&#39;,&#39;Tom&#39;,&#39;Synth Tom&#39;,&#39;Rev Cymbal&#39;,&#39;Fret Noise&#39;,&#39;Noise Chiff&#39;,&#39;Seashore&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &#39;Birds&#39;,&#39;Telephone&#39;,&#39;Helicopter&#39;,&#39;Stadium!!&#39;,&#39;Gun Shot&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; TablicaDzwiekow : TTablicaDzwiekow =</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; (&#39;c&#39;,&#39;c#&#39;,&#39;d&#39;,&#39;d#&#39;,&#39;e&#39;,&#39;f&#39;,&#39;f#&#39;,&#39;g&#39;,&#39;g#&#39;,&#39;a&#39;,&#39;a#&#39;,&#39;h&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">constructor TMIDIDevice.Create;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;new(hMidiOut);</div><div class="code_line">&nbsp;&nbsp;if MidiOutOpen(hMidiOut, MIDI_MAPPER, 0, 0, 0)&#60;&#62;0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;hMidiOut:=NIL;</div><div class="code_line">&nbsp;&nbsp;inherited Create;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">destructor TMIDIDevice.Destroy;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;dispose(hMidiOut);</div><div class="code_line">&nbsp;&nbsp;inherited Destroy;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDINoteOff</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; KeyNumber:byte; Velocity:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage(, Channel, KeyNumber, Velocity);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDINoteOn</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; KeyNumber:byte; Velocity:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage(, Channel, KeyNumber, Velocity);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIPolyphonicAfterTouch</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; KeyNumber:byte; AfterTouch:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage($A00, Channel, KeyNumber, AfterTouch);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIControlChange</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; Controler:byte; Value:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage($B0, Channel, Controler, Value);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIChannelModeLocalControl</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; zalacz:boolean):boolean;</div><div class="code_line">var wartosc: byte;</div><div class="code_line">begin</div><div class="code_line">if zalacz = true then wartosc:=127 else wartosc:=0;</div><div class="code_line">MidiOutMessage($B0, Channel, A, wartosc);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIAllNotesOff(Channel:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage($B0, Channel, B, 00);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIOmniModeOff(Channel:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage($B0, Channel, C, 00);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIOmniModeOn(Channel:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage($B0, Channel, D, 00);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIMonoModeOn(Channel:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage($B0, Channel, E, 1);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIPolyModeOn(Channel:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage($B0, Channel,F, 01);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIProgramChange</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; ProgramValue:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; MidiOutMessage($C0, Channel, ProgramValue, 0);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIPitchWheelChange</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (Channel:byte; LowValue:byte; HighValue:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; MidiOutMessage($E0, Channel, LowValue, HighValue);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MidiOutMessage(iStatus:integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;iChannel:integer; iData1:integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;iData2:integer):Word;</div><div class="code_line">var dwMessage : LongInt;</div><div class="code_line">begin</div><div class="code_line">dwMessage:=(iStatus) or (iChannel) or (iData1 shl 8) or (iData2 shl 16);</div><div class="code_line">result:=midiOutShortMsg(hMidiOut^,dwMessage);</div><div class="code_line">end;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.MIDIChannelAfterTouch(Channel:byte;AfterTouch:byte):boolean;</div><div class="code_line">begin</div><div class="code_line">MidiOutMessage($D0, Channel, AfterTouch, 00);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">//------------------------------------------------------------------------------</div><div class="code_line">function TMIDIDevice.ProgramName(ProgramValue:byte):string;</div><div class="code_line">begin</div><div class="code_line">result:=TablicaBrzmien[ProgramValue];</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function TMIDIDevice.NoteName(Note:byte):string;</div><div class="code_line">begin</div><div class="code_line">result:=TablicaDzwiekow[Note-((Note div 12)*12)]+&#39;, octave: &#39; + IntToStr(Note div 12);</div><div class="code_line">if Note = 60 then result := &#39;* &#39; + result;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Сообщения были разделены в тему &quot;<a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=97703' target='_blank'>FPC, Error while linking</a>&quot;</span></span>]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735715</guid>
        <pubDate>Wed, 01 Jun 2005 21:20:48 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735715</link>
        <description><![CDATA[Romtek: Ладно, успокоил.  :) <br>
Если что появится интересное, выкладывай.  :yes: <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-06-01T21:31:20+00:00">01.06.05, 21:31</time></span></span><br>
Вот ещё одну программу наклёпал, играет мелодию &quot;Baked Tostadas in Z Minor&quot;<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">program Midi_Tostadas; </div><div class="code_line">&nbsp;</div><div class="code_line">uses CRT, Windows, MMSystem;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp;noteseq: array[0..59] of integer = (</div><div class="code_line">&nbsp;&nbsp; &nbsp;110, 69, 81, 110, 67, 79, 990, &nbsp;69, 81, 220, -1, -1,</div><div class="code_line">&nbsp;&nbsp; &nbsp;110, 67, 79, 110, 65, 77, 110, &nbsp;64, 76, 110, 62, 74,</div><div class="code_line">&nbsp;&nbsp; &nbsp;220, 61, 73, 440, 62, 74, 1980, -1, -1, 110, 57, 69,</div><div class="code_line">&nbsp;&nbsp; &nbsp;110, 55, 67, 990, 57, 69, 220, &nbsp;-1, -1, 220, 52, 64,</div><div class="code_line">&nbsp;&nbsp; &nbsp;220, 53, 65, 220, 49, 61, 440, &nbsp;50, 62, 1980, -1, -1 );</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; &nbsp;midimsg: DWORD;</div><div class="code_line">&nbsp;&nbsp; &nbsp;hmidi_out: HMIDIOUT;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CurrentNote,</div><div class="code_line">&nbsp;&nbsp; &nbsp;devID,</div><div class="code_line">&nbsp;&nbsp; &nbsp;err_cd: integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch : char;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">function MidiOutMessage(hMidi:HMIDIOUT; iStatus, iChannel, iData1, iData2: integer): DWORD;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;dwMessage:DWORD;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;dwMessage:= iStatus or iChannel or (iData1 shl 8) or (longint( iData2 shl 16)) ;</div><div class="code_line">&nbsp;&nbsp;result:= midiOutShortMsg (hMidi, dwMessage) ;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; devID:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; //открытие миди выхода</div><div class="code_line">&nbsp;&nbsp; &nbsp; err_cd:=midioutopen(@hmidi_out,devID,0,0,CALLBACK_NULL);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; writeln (&#39;Нажмите пробел для воспроизведения звука или Esc для выхода.&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; writeln (&#39;Baked Tostadas in Z Minor&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ch := readkey;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ch = &#39; &#39; then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MidiOutMessage (hmidi_out, $C0, 0, 19, 0) ;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MidiOutMessage (hmidi_out, $C0, 12, 19, 0) ;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for CurrentNote := 0 to 59 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //  - MIDI Note On</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //  - MIDI Note Off</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MidiOutMessage (hmidi_out, , 0, NoteSeq[CurrentNote], 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MidiOutMessage (hmidi_out, , 12, NoteSeq[CurrentNote], 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MidiOutMessage (hmidi_out, , 0, NoteSeq[CurrentNote], 127);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MidiOutMessage (hmidi_out, , 12, NoteSeq[CurrentNote], 127);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sleep (100);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; until ch = #27;</div><div class="code_line">&nbsp;&nbsp; &nbsp; err_cd:=midioutclose(hmidi_out);</div><div class="code_line">end.</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-06-01T21:32:12+00:00">01.06.05, 21:32</time></span></span><br>
Частично содрана с другого исходника (Дельфи).]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735708</guid>
        <pubDate>Wed, 01 Jun 2005 21:12:41 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735708</link>
        <description><![CDATA[Ash: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Но у меня слёзы наворячиваются при виде такого кода</div></div><br>
<br>
Да что ты не плачь. Эт я на скоряк, скопировал вставил.:whistle: Просто спать уж скоро, а время на обдумки кода тратить не хотелось, вот и всё.<br>
Больше так не буду.  :no:]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735686</guid>
        <pubDate>Wed, 01 Jun 2005 20:50:20 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735686</link>
        <description><![CDATA[Romtek: Играет и моя 1-я и твоя гамма...<br>
Но у меня слёзы наворячиваются при виде такого кода :&#39;( <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-06-01T20:53:40+00:00">01.06.05, 20:53</time></span></span><br>
Почему не можешь значения в массив загнать и проходить по ним циклом?]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735684</guid>
        <pubDate>Wed, 01 Jun 2005 20:46:49 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735684</link>
        <description><![CDATA[Ash: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ch := readkey;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ch = &#39; &#39; then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:={text}23c0; // установка инструмента</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3190; // до вкл.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delay(1000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3180; // до выкл.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3390; // ре</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delay(1000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3380; // </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3590; // ми</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delay(1000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3580; // </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3690; // фа</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delay(1000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3680; // </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3890; // соль</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delay(1000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3880; // </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=4090; // ля</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delay(1000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=4080; // </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=4290; // си</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delay(1000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=4280; // </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; until ch = #27;</div></ol></div></div></div></div><br>
<br>
До-мажор гамма :rolleyes: <br>
<br>
На счёт нот точно неуверен, может не те, но гамма на слух слышится.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>У меня к примеру не издаёт звуков твой пример</div></div><br>
А твоя программка которую ты здесь за постил играет?]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735671</guid>
        <pubDate>Wed, 01 Jun 2005 20:21:13 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735671</link>
        <description><![CDATA[Romtek: У меня к примеру не издаёт звуков твой пример. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-06-01T20:24:55+00:00">01.06.05, 20:24</time></span></span><br>
<span class='tag-u'>Задание:</span><br>
Составить пример для проигрывания нот любой октавы.<br>
<br>
Можешь написать? <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-06-01T20:39:18+00:00">01.06.05, 20:39</time></span></span><br>
Вот нашёл интересную функцию:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function MidiOutMessage(hMidi:HMIDIOUT; iStatus, iChannel, iData1, iData2: integer): DWORD;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;dwMessage:DWORD;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;dwMessage:= iStatus or iChannel or (iData1 shl 8) or (longint( iData2 shl 16)) ;</div><div class="code_line">&nbsp;&nbsp;result:= midiOutShortMsg (hMidi, dwMessage) ;</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735670</guid>
        <pubDate>Wed, 01 Jun 2005 20:19:11 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735670</link>
        <description><![CDATA[Ash: Да нее... Всё понятно, а чё не понятного?]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735663</guid>
        <pubDate>Wed, 01 Jun 2005 20:12:48 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735663</link>
        <description><![CDATA[Romtek: Ты наверно с константами плохо разобрался. Надо копать дальше. ;)]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735657</guid>
        <pubDate>Wed, 01 Jun 2005 19:55:58 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735657</link>
        <description><![CDATA[Ash: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">uses CRT, Windows, MMSystem;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; &nbsp;midimsg: DWORD;</div><div class="code_line">&nbsp;&nbsp; &nbsp;hmidi_out: HMIDIOUT;</div><div class="code_line">&nbsp;&nbsp; &nbsp;hmidi_in: &nbsp;HMIDIIN;</div><div class="code_line">&nbsp;&nbsp; &nbsp;err_cd: integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Down:boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch : char;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; //открытие миди выхода</div><div class="code_line">&nbsp;&nbsp; &nbsp; clrscr;</div><div class="code_line">&nbsp;&nbsp; &nbsp; err_cd:=midioutopen(@hmidi_out,0,0,0,0);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; writeln (&#39;Нажмите пробел для произведения звука или Esc для выхода.&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ch := readkey;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ch = &#39; &#39; then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:={text}23c0; // $с - установка инструмента(=35 - Fretless Bass) channel=0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3090; //  - проигрывание ноты (пока точно не знаю какая нота) channel=0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delay(1000);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=3080; //  - выключение ноты channel=0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg); </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; until ch = #27;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
 :no:]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735643</guid>
        <pubDate>Wed, 01 Jun 2005 19:23:30 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735643</link>
        <description><![CDATA[Romtek: Покажи пример, мне тоже интересно  ;)]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735633</guid>
        <pubDate>Wed, 01 Jun 2005 19:12:47 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735633</link>
        <description><![CDATA[Ash: Всё, разобрался.:P Спасибо за помощь. :rolleyes:<br><br>Если кому интересно:<br>http://www-camil.music.uiuc.edu/Classes/199E/MIDI/midimessages.html]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735605</guid>
        <pubDate>Wed, 01 Jun 2005 18:22:44 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735605</link>
        <description><![CDATA[Romtek: Ну так поиск для чего создан?<br>Гугл тебе в помощь, MSDN, ...]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735603</guid>
        <pubDate>Wed, 01 Jun 2005 18:18:32 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735603</link>
        <description><![CDATA[Ash: Ноту меняю, громкость тоже, однако как инструмент менять не погимаю.]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735546</guid>
        <pubDate>Wed, 01 Jun 2005 17:03:12 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735546</link>
        <description><![CDATA[Ash: Перезапускаю, всё равно ошибка. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-06-01T17:30:32+00:00">01.06.05, 17:30</time></span></span><br>
А, всё. В опциях&#092;линкер другие установочки зделал, всё пошло]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735508</guid>
        <pubDate>Wed, 01 Jun 2005 16:16:57 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735508</link>
        <description><![CDATA[Romtek: Бывает такое. Пробуй перезапустить IDE.]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735475</guid>
        <pubDate>Wed, 01 Jun 2005 15:45:31 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735475</link>
        <description><![CDATA[Ash: FPC 2.0.0<br>Пишет Error while linking<br>Указатель на последнем end&#39;е.<br>Чё ему надо?]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735400</guid>
        <pubDate>Wed, 01 Jun 2005 14:37:21 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=735400</link>
        <description><![CDATA[Romtek: Вот написал маленький пример для озвучивания MIDI:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">uses CRT, Windows, MMSystem;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; &nbsp;midimsg: DWORD;</div><div class="code_line">&nbsp;&nbsp; &nbsp;hmidi_out: HMIDIOUT;</div><div class="code_line">&nbsp;&nbsp; &nbsp;hmidi_in: &nbsp;HMIDIIN;</div><div class="code_line">&nbsp;&nbsp; &nbsp;err_cd: integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Down:boolean;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch : char; </div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; //открытие миди выхода</div><div class="code_line">&nbsp;&nbsp; &nbsp; err_cd:=midioutopen(@hmidi_out,1,0,0,0);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; writeln (&#39;Нажмите пробел для произведения звука или Esc для выхода.&#39;); </div><div class="code_line">&nbsp;&nbsp; &nbsp; repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ch := readkey;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ch = &#39; &#39; then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midimsg:=f3a90; // поменять константу для других инструментов </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; midioutshortmsg(hmidi_out,midimsg);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; until ch = #27;</div><div class="code_line">end.</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-06-01T14:39:19+00:00">01.06.05, 14:39</time></span></span><br>
Программа написана на для Free Pascal и тестирована в версии 2.0.0<br>
Должна работать в любых 32-битных компиляторах Паскаля.]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=734229</guid>
        <pubDate>Tue, 31 May 2005 12:48:03 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=734229</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96130&view=findpost&p=734101'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ash &#064; <time class="tag-quote__quoted-time" datetime="2005-05-31T10:55:53+00:00">31.05.05, 10:55</time></span><div class='quote '>А как можно сыграть определённую миди ноту, определённым инструментом?</div></div>Этот вопрос лучше задать в разделе <a class='tag-url' href='http://forum.sources.ru/index.php?showforum=108' target='_blank'>Программирование звука</a>]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=734101</guid>
        <pubDate>Tue, 31 May 2005 10:55:53 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=734101</link>
        <description><![CDATA[Ash: А как можно сыграть определённую миди ноту, определённым инструментом?]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=734082</guid>
        <pubDate>Tue, 31 May 2005 10:27:52 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=734082</link>
        <description><![CDATA[Romtek: Самое простое - это с применением WinAPI: <em class='tag-i'>mcisendstring</em> (для WAV, MIDI).<br>
<br>
Какой звук ты хочешь издавать ? <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-05-31T10:37:44+00:00">31.05.05, 10:37</time></span></span><br>
<a class='tag-url' href='http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&section=798' target='_blank'>Графика и мультимедиа-&gt;Работа со звуком</a> <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-05-31T10:52:14+00:00">31.05.05, 10:52</time></span></span><br>
Windows.Beep(Freq,Duration); для w2k, XP<br>
Freq - частота<br>
Duration - длительность <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-05-31T10:52:32+00:00">31.05.05, 10:52</time></span></span><br>
<a class='tag-url' href='http://forum.sources.ru/index.php?showforum=89' target='_blank'>Delphi: Multimedia</a> <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-05-31T10:53:36+00:00">31.05.05, 10:53</time></span></span><br>
Всё, что можно в Дельфи, можно сделать и в FPC.]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=733932</guid>
        <pubDate>Tue, 31 May 2005 08:16:29 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=733932</link>
        <description><![CDATA[Ash: Оказалось, что можно и FPC использовать, кто что посоветует. Нужно звук издать при нажатии на клавишу.]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=732469</guid>
        <pubDate>Sun, 29 May 2005 18:20:05 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=732469</link>
        <description><![CDATA[Romtek: Копай инфу в сторону MMsystem (в стандартной поставке Borland Pascal 7.0) и процедуры <em class='tag-i'>mciSendCommand, mciSendString</em><br>
<br>
Вот пример для Дельфи (мною не проверялся):<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">uses &nbsp;</div><div class="code_line">&nbsp;&nbsp;MMSystem; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">// Play Midi &nbsp;</div><div class="code_line">procedure Play; &nbsp;</div><div class="code_line">const &nbsp;</div><div class="code_line">&nbsp;&nbsp;FileName = &#39;C:\YourFile.mid&#39;; &nbsp;</div><div class="code_line">begin &nbsp;</div><div class="code_line">&nbsp;&nbsp;MCISendString(PChar(&#39;play &#39; + FileName), nil, 0, 0); &nbsp;</div><div class="code_line">end; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">// Stop Midi &nbsp;</div><div class="code_line">procedure Stop; &nbsp;</div><div class="code_line">const &nbsp;</div><div class="code_line">&nbsp;&nbsp;FileName = &#39;C:\YourFile.mid&#39;; &nbsp;</div><div class="code_line">begin &nbsp;</div><div class="code_line">&nbsp;&nbsp;MCISendString(PChar(&#39;stop &#39; + FileName), nil, 0, 0); &nbsp;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
Вот ещё:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.PlayClick(Sender: TObject);</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp;midi=&#39;D:\MUSIC\Midi\tp.mid&#39;;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; mcisendstring(PChar(&#39;open &#39;+midi+&#39; type sequencer alias MIDIDemo&#39;),0,0,Handle);</div><div class="code_line">&nbsp;&nbsp; &nbsp; mcisendstring(&#39;play MidiDemo FROM 0&#39;,0,0,Handle);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.StopClick(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; mcisendstring(&#39;stop MidiDemo&#39;,0,0,0);</div><div class="code_line">end;</div></ol></div></div></div></div><br>
С WinAPI, по идее, не должно быть проблем. Даже с Борланд Паскалем.]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=732457</guid>
        <pubDate>Sun, 29 May 2005 18:00:45 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=732457</link>
        <description><![CDATA[Ash: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96130&view=findpost&p=732440'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Romtek &#064; <time class="tag-quote__quoted-time" datetime="2005-05-29T17:34:22+00:00">29.05.05, 17:34</time></span><div class='quote '>Неужели такие дикие ограничения в компиляторах? Free Pascal не подойдёт?</div></div><br>
В том то и дело что ограничения дикие. Всё надо сделать в BP/TP.<br>
<br>
Так кто нибудь подскажет как, звуки midi под винду спеть? Пожайлусто, очень надо.]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=732440</guid>
        <pubDate>Sun, 29 May 2005 17:34:22 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=732440</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96130&view=findpost&p=732426'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ash &#064; <time class="tag-quote__quoted-time" datetime="2005-05-29T16:56:10+00:00">29.05.05, 16:56</time></span><div class='quote '>Под вин на TP? </div></div>Нет, можно только в BP7.<br>
Неужели такие дикие ограничения в компиляторах? Free Pascal не подойдёт?]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=732426</guid>
        <pubDate>Sun, 29 May 2005 16:56:10 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=732426</link>
        <description><![CDATA[Ash: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96130&view=findpost&p=731618'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>hot_icer &#064; <time class="tag-quote__quoted-time" datetime="2005-05-28T09:17:32+00:00">28.05.05, 09:17</time></span><div class='quote '>Вобщем либо звуковуху ставь... либо под Win пиши...</div></div><br>
Под вин на TP?]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=731618</guid>
        <pubDate>Sat, 28 May 2005 09:17:32 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=731618</link>
        <description><![CDATA[hot_icer: <strong class='tag-b'>Ash</strong> MIDI (или FM) у тебя программный под Win, т.е. в DOS через порты<br>
тебе не дотянутся...<br>
<br>
Вобщем либо звуковуху ставь... либо под Win пиши...]]></description>
        <author>hot_icer</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=731388</guid>
        <pubDate>Fri, 27 May 2005 18:23:57 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=731388</link>
        <description><![CDATA[Ash: А с midi чё?]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730807</guid>
        <pubDate>Fri, 27 May 2005 08:29:21 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730807</link>
        <description><![CDATA[hot_icer: <strong class='tag-b'>Ash</strong> с FM в TP/BP у тебя не получится(или звуковуху надыбай SB/Adlib совместимую)...<br>
Раз у тебя прога находит базовый порт, то есть подозрения, что wav проиграть из паскаля<br>
можно... Тогда делаешь несколько файлов с записями инструментов и принажатии клавиш<br>
в реалтайм микшируешь и выводишь на звуковуху(чистый гемор)<br>
<br>
Совет достань звуковуху...]]></description>
        <author>hot_icer</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730540</guid>
        <pubDate>Fri, 27 May 2005 04:25:02 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730540</link>
        <description><![CDATA[@Hgpeu: Несвижский В. - Программирование аппаратных средств в Windows <br>Издательство BHV<br>Отдельная глава посвящена программированию звуковых карт.<br>Вчера видел эту книгу в БиблиоГлобусе. 465 руб. Вроде не плохая книжка.]]></description>
        <author>@Hgpeu</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730438</guid>
        <pubDate>Thu, 26 May 2005 20:48:25 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730438</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96130&view=findpost&p=730374'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ash &#064; <time class="tag-quote__quoted-time" datetime="2005-05-26T19:42:07+00:00">26.05.05, 19:42</time></span><div class='quote '>У меня курсовая, виртуальное пианино надо сделать.</div></div><br>
Универсальных модулей, рассчитаных на разные звуковые карты, нет. Используй Sound() и забудь о всяких FM.]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730374</guid>
        <pubDate>Thu, 26 May 2005 19:42:07 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730374</link>
        <description><![CDATA[Ash: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Одноканальный... эт когда играет одна нота в еденицу времени</div></div><br>
Это то я понял.<br>
Я не понял чё за орган. Эт ты про PC-Speaker, чтоли. Нее..<br>
<br>
Так чё с миди, чё он молчит, не знаешь.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Тебе сильно позарез надо? Если не секрет, то куда?</div></div><br>
У меня курсовая, виртуальное пианино надо сделать.]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730278</guid>
        <pubDate>Thu, 26 May 2005 17:05:53 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730278</link>
        <description><![CDATA[hot_icer: <strong class='tag-b'>Ash</strong> <br>
Значит FM только Виновозе... в DOS облом...<br>
<br>
Одноканальный... эт когда играет одна нота в еденицу времени<br>
(или проще: нельзя взять аккорд), т.е. прога очень проста...<br>
На спикере проиграть несколько нот одновременно ну... немного проблематично<br>
(хотя если выпендрится вполне возможно)<br>
Тебе сильно позарез надо? Если не секрет, то куда?]]></description>
        <author>hot_icer</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730254</guid>
        <pubDate>Thu, 26 May 2005 16:24:29 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=730254</link>
        <description><![CDATA[Ash: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Ash звук интегрированный?</div></div><br>
Да.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Посмотри в виновозе настройку громкости FM, если там написано<br>
типа &quot;SW Syns&quot; значит пи...пиликала гармошка.</div></div><br>
<br>
Там написано програмнный синтезатор.<br>
А FM(OPL2/OPL3) звукавуха не поддерживает.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Тебе одноканальный орган на спикер пойдет?</div></div><br>
Эт какой такой?]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=729347</guid>
        <pubDate>Thu, 26 May 2005 01:53:42 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=729347</link>
        <description><![CDATA[hot_icer: <strong class='tag-b'>Ash</strong> звук интегрированный? Попробуй старую Dos игруху с FM ... вероятно из DOSа<br>
тебе до FM не добратся... Посмотри в виновозе настройку громкости FM, если там написано<br>
типа &quot;SW Syns&quot; значит пи...пиликала гармошка. Тебе одноканальный орган на спикер пойдет?]]></description>
        <author>hot_icer</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=729319</guid>
        <pubDate>Wed, 25 May 2005 21:26:20 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=729319</link>
        <description><![CDATA[Ash: В свойствах системы диапазон: E400 - E4FF;<br><br>Программа говорит: Base Port: 544;<br><br>В ассемблеровском коде сделал изменения, всё равно молчит. :(]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=729147</guid>
        <pubDate>Wed, 25 May 2005 06:14:07 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=729147</link>
        <description><![CDATA[hot_icer: <strong class='tag-b'>Ash</strong> твоя прога может определить порт, после<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">If not DetectSBBase then WriteLn(&#39;Error detecting SB base port!&#39;)</div><div class="code_line">&nbsp;&nbsp; else WriteLn(&#39;You have &#39;+sbNamePrefix, GetSBName);</div></ol></div></div></div></div><br>
вставь строку<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp;WriteLn(&#39;Base port: &#39;,sbBase);</div></ol></div></div></div></div><br>
В модуле midi.pas есть косяки (хотя у меня пахало) <br>
асмеры меня с потрохами должны со жрать :)<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp;mov cx,6</div><div class="code_line">&nbsp;&nbsp;rep in al,dx</div><div class="code_line">&nbsp;&nbsp;...........</div><div class="code_line">&nbsp;&nbsp;mov cx,28</div><div class="code_line">&nbsp;&nbsp;rep in al,dx</div></ol></div></div></div></div><br>
это не есть правильно&#33; Замени на :<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;mov cx,6</div><div class="code_line">@ops: in &nbsp; al,dx</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;loop @ops</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;...........</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;mov cx,28</div><div class="code_line">@ops1: in &nbsp; al,dx</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;loop @ops1</div></ol></div></div></div></div><br>
В prehistoric&#39;e были &quot;in al,dx&quot; в длинный столбик&#33;]]></description>
        <author>hot_icer</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=728913</guid>
        <pubDate>Tue, 24 May 2005 20:56:19 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=728913</link>
        <description><![CDATA[@Hgpeu: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Где можно посмотреть базовый порт?</div></div><br>
Свойства системы/Оборудование/Диспетчер устройств/Звуковуха/Ресурсы <br>
Там диапазон ввода-вывода<br>
Или что?]]></description>
        <author>@Hgpeu</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=728852</guid>
        <pubDate>Tue, 24 May 2005 19:25:13 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=728852</link>
        <description><![CDATA[Ash: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96130&view=findpost&p=727933'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>hot_icer &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T07:50:26+00:00">24.05.05, 07:50</time></span><div class='quote '><strong class='tag-b'>Ash</strong> Ось DOS/WIN9X? Звукавуха sb совместимая? Базовый порт 220h?<br>
Твой старый проигрыватель работает?</div></div><br>
Вот эта программа говорит: You have Sound Blaster Pro2<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{$S-}</div><div class="code_line">uses crt;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Const</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; sbNamePrefix = &#39;Sound Blaster &#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; { Префикс имени модели для функции GetSBName }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Const</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; svSB1 &nbsp; &nbsp; &nbsp; = 0; &nbsp;{ Sound Blaster 1.0/1.5 } &nbsp; &nbsp;{ 1.05??? }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; svSB2 &nbsp; &nbsp; &nbsp; = 0; &nbsp;{ Sound Blaster 2.0 } &nbsp; &nbsp; &nbsp; &nbsp;{ 2.01 }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; svSBPro &nbsp; &nbsp; = 0; &nbsp;{ Sound Blaster Pro } &nbsp; &nbsp; &nbsp; &nbsp;{ ??? }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; svSBPro2 &nbsp; &nbsp;= 1; &nbsp;{ Sound Blaster Pro2 } &nbsp; &nbsp; &nbsp; { 3.01, 3.02 }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; svSB16 &nbsp; &nbsp; &nbsp;= 0; &nbsp;{ Sound Blaster 16 } &nbsp; &nbsp; &nbsp; &nbsp; { 4.04, 4.05 }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; svSB16SCSI2 = B; &nbsp;{ Sound Blaster 16 SCSI-2 } &nbsp;{ 4.11 }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; svSBAWE32 &nbsp; = C; &nbsp;{ Sound Blaster AWE32 } &nbsp; &nbsp; &nbsp;{ 4.12 }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; { Модели Sound Blaster&#39;а, соответствующие версиям DSP (см. DSPVersion) }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Var sbBase &nbsp; &nbsp; : Word; &nbsp;{ Базовый порт }</div><div class="code_line">&nbsp;</div><div class="code_line">Var sbIRQ &nbsp; &nbsp; &nbsp;: Byte; &nbsp;{ IRQ }</div><div class="code_line">&nbsp;</div><div class="code_line">Var sbLDMA &nbsp; &nbsp; : Byte; &nbsp;{ 8-битный канал DMA }</div><div class="code_line">&nbsp;</div><div class="code_line">Var sbHDMA &nbsp; &nbsp; : Byte; &nbsp;{ 16-битный канал DMA }</div><div class="code_line">&nbsp;</div><div class="code_line">Var sbBaseMIDI : Word; &nbsp;{ Базовый порт MIDI }</div><div class="code_line">&nbsp;</div><div class="code_line">Var sbModel &nbsp; &nbsp;: Word; &nbsp;{ Модель Sound Blaster&#39;а (см. константы smXXXX) }</div><div class="code_line">&nbsp;</div><div class="code_line">Var DSPVersion : Word; &nbsp;{ Версия DSP Sound Blaster&#39;а (см. константы svXXXX) }</div><div class="code_line">&nbsp;</div><div class="code_line">{ Параметры Sound Blaster&#39;а }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Procedure WriteToSB(N: Byte); assembler;</div><div class="code_line">&nbsp;</div><div class="code_line">{ Записывает в порт Sound Blaster&#39;а байт N (команду или данные) }</div><div class="code_line">&nbsp;</div><div class="code_line">Asm</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov dx,sbBase</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; add dl,0Ch</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;@:in al,dx</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; or al,al</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; js @</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov al,N</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; out dx,al</div><div class="code_line">&nbsp;</div><div class="code_line">End;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Function ReadFromSB: Byte; assembler;</div><div class="code_line">&nbsp;</div><div class="code_line">{ Читает байт из порта Sound Blaster&#39;а }</div><div class="code_line">&nbsp;</div><div class="code_line">Asm</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov dx,sbBase</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; add dl,0Eh</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;@:in al,dx</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; or al,al</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; jns @</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; sub dl,(0Eh-0Ah)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; in al,dx</div><div class="code_line">&nbsp;</div><div class="code_line">End;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Function ResetDSP: Boolean; assembler;</div><div class="code_line">&nbsp;</div><div class="code_line">{ Выполняет сброс процессора DSP и записывает номер версии в DSPVersion. }</div><div class="code_line">&nbsp;</div><div class="code_line">{ Если &nbsp;при &nbsp;инициализации возникает ошибка (например, Sound Blaster уже }</div><div class="code_line">&nbsp;</div><div class="code_line">{ используется &nbsp;другой &nbsp;программой и неверно указан номер базового порта }</div><div class="code_line">&nbsp;</div><div class="code_line">{ sbBase), функция возвращает значение FALSE. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">Asm</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov dx,sbBase</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; add dl,6</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov al,1</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; out dx,al</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov cx,1000h</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; push cx</div><div class="code_line">&nbsp;</div><div class="code_line">@1:loop @1</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; dec ax</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; out dx,al</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; pop cx</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; add dl,(0Eh-06h)</div><div class="code_line">&nbsp;</div><div class="code_line">@2:in al,dx</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; test al,80h</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; loopz @2</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; sub dl,(0Eh-0Ah)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; in al,dx</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; cmp al,0AAh</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov al,0</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; jne @Error</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov al,0E1h</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; push ax</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; call WriteToSB</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; call ReadFromSB</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov byte ptr DSPVersion[1],al</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; call ReadFromSB</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov byte ptr DSPVersion[0],al</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov al,1</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;@Error:</div><div class="code_line">&nbsp;</div><div class="code_line">End;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Function DetectSBBase: Boolean; assembler;</div><div class="code_line">&nbsp;</div><div class="code_line">{ Определяет &nbsp;базовый &nbsp;порт Sound Blaster&#39;а. В случае неудачи возвращает }</div><div class="code_line">&nbsp;</div><div class="code_line">{ значение &nbsp;FALSE &nbsp;и присваивает переменной sbBase значение $FFFF. &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">{ !!! Вызывает функцию ResetDSP. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">Asm</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov bx,210h</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;@Test:</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov sbBase,bx</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; call ResetDSP</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; or al,al</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; jnz @Ok</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;@:add bl,10h</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; cmp bl,70h</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; je @</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; cmp bl,80h</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; jbe @Test</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; mov sbBase,0FFFFh</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;@Ok:</div><div class="code_line">&nbsp;</div><div class="code_line">End;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Function GetSBName: String;</div><div class="code_line">&nbsp;</div><div class="code_line">{ Получить имя Sound Blaster&#39;а (&#39;1.x&#39;, &#39;2.0&#39;, &#39;Pro&#39; и т.д) по версии DSP }</div><div class="code_line">&nbsp;</div><div class="code_line">Begin</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; If DSPVersion &#62;= svSBAWE32 then GetSBName := &#39;AWE32 or better&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; else If DSPVersion &#62;= svSB16SCSI2 then GetSBName := &#39;16 SCSI-2&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; else If DSPVersion &#62;= svSB16 then GetSBName := &#39;16&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; else If DSPVersion &#62;= svSBPro2 then GetSBName := &#39;Pro2&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; else If DSPVersion &#62;= svSBPro then GetSBName := &#39;Pro&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; else If DSPVersion &#62;= svSB2 then GetSBName := &#39;2.0&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; else If DSPVersion &#62;= svSB1 then GetSBName := &#39;1.x&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; else GetSBName := &#39;Unknown&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">End;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Begin</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;If not DetectSBBase then WriteLn(&#39;Error detecting SB base port!&#39;)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;else WriteLn(&#39;You have &#39;+sbNamePrefix, GetSBName);</div><div class="code_line">&nbsp;&nbsp;Repeat until keypressed;</div><div class="code_line">&nbsp;</div><div class="code_line">End.</div></ol></div></div></div></div><br>
<br>
Где можно посмотреть базовый порт?<br>
<br>
Проигрыватель Wernera в ХР играет, в Win98 нет. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>-юсртыхэю <time class="tag-mergetime" datetime="2005-05-24T19:30:33+00:00">24.05.05, 19:30</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96130&view=findpost&p=728553'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>@Hgpeu &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T14:05:49+00:00">24.05.05, 14:05</time></span><div class='quote '>Если звуковуха старая, можно попробовать программирование fm синтезатора.</div></div><br>
В том то и дело что была у меня звукавуха старая, начал делать с помощью FM, а потом мать обновил, а там такого счастья нет, так вот теперь нужно как-нибудь звук то издать.]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=728661</guid>
        <pubDate>Tue, 24 May 2005 15:35:00 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=728661</link>
        <description><![CDATA[@Hgpeu: Сорри, вроде не всё закачал.<br>Дубль 2:<br><br>ps Хорошо, Romtek. И документация тоже в zip]]></description>
        <author>@Hgpeu</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=728553</guid>
        <pubDate>Tue, 24 May 2005 14:05:49 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=728553</link>
        <description><![CDATA[@Hgpeu: Если звуковуха старая, можно попробовать программирование fm синтезатора.<br>
<br>
<strong class='tag-b'>[Модератор: Есть также теория по портам звуковой карты - в аттаче вместе с программой.]</strong><br>
<br>
ps 1,5 года назад я тоже хотел написать муз редактор для миди. Получилось только для ФМ. И то не доделано и не доведено до ума. Но надеюсь что возможно поможет.]]></description>
        <author>@Hgpeu</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=727933</guid>
        <pubDate>Tue, 24 May 2005 07:50:26 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=727933</link>
        <description><![CDATA[hot_icer: <strong class='tag-b'>Ash</strong> Ось DOS/WIN9X? Звукавуха sb совместимая? Базовый порт 220h?<br>
Твой старый проигрыватель работает? <br>
<br>
Пиши мне на мыло, <span class="tag-color tag-color-named" data-value="red" style="color: red">[удалено модератором]</span>.<br>
<br>
<strong class='tag-b'>Можно обсуждать детали, но не в форме личной переписки&#33;</strong>]]></description>
        <author>hot_icer</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=727436</guid>
        <pubDate>Mon, 23 May 2005 18:42:20 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=727436</link>
        <description><![CDATA[Ash: А чёто он у меня молчит ни чё не издаёт? :(]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=727385</guid>
        <pubDate>Mon, 23 May 2005 17:50:44 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=727385</link>
        <description><![CDATA[hot_icer: <strong class='tag-b'>Ash</strong> покешь мыло... закину...<br>
Конеш прога не фонтан...<br>
Когда-то выдрал демку из PREHISTORIC2... писал методом тыка...<br>
Работает на SB совместимых (пробовал dos/win98)]]></description>
        <author>hot_icer</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=727348</guid>
        <pubDate>Mon, 23 May 2005 17:10:30 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=727348</link>
        <description><![CDATA[Ash: Нужно позарез в TP/BP.]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=726332</guid>
        <pubDate>Sun, 22 May 2005 20:04:11 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=726332</link>
        <description><![CDATA[Romtek: В DOS&#39;е возможности звука и графики.. ну ОЧЕНЬ ограничены... Пробуй для Windows. Можно в Борланд Паскале 7.0 (16-битные приложения), хотя лучше взглянуть на Free Pascal (раздел <a class='tag-url' href='http://forum.sources.ru/index.php?showforum=129' target='_blank'>32-битные компиляторы</a>). В особенности предлагаю библиотеку BASS.DLL. Полагаю, с ней легче разобраться, чем с ассемблером.  :whistle:<br>
К тому же вывод звука с помощью DirectX. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-05-22T20:33:44+00:00">22.05.05, 20:33</time></span></span><br>
Вот код с применением библиотеки BASS:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">program fpctest;</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp; Crt,</div><div class="code_line">&nbsp;&nbsp; Windows,</div><div class="code_line">&nbsp;&nbsp; BassFPC;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; Stream &nbsp; &nbsp; &nbsp;: &nbsp;HStream;</div><div class="code_line">&nbsp;&nbsp; totallength : &nbsp;integer;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp; // Enter the name &amp; path of an MP3 or other streamed music file here!</div><div class="code_line">&nbsp;&nbsp; MUSIC_FILE &nbsp;= &nbsp;&#39;D:\MUSIC\test.mp3&#39;;</div><div class="code_line">&nbsp;&nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">function &nbsp; &nbsp;seconds_to_minutes (v: integer): string;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; temp1,temp2 &nbsp;: &nbsp;string;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; str(v div 60,temp1);</div><div class="code_line">&nbsp;&nbsp; str(v mod 60,temp2);</div><div class="code_line">&nbsp;&nbsp; if length(temp2) = 1 then temp2 := &#39;0&#39; + temp2;</div><div class="code_line">&nbsp;&nbsp; result := temp1 + &#39;:&#39; + temp2; &nbsp; </div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure &nbsp; error(msg: string);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; writeln(msg + &#39; &nbsp;(Error code: &#39;,BASS_ErrorGetCode,&#39;)&#39;);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure &nbsp; init_stuff;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; stream := 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; // Ensure BASS 2.0 was loaded</div><div class="code_line">&nbsp;&nbsp; if BASS_GetVersion() &#60;&#62; MAKELONG(2,1) then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; Error(&#39;BASS version 2.1 was not loaded!&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Halt;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; // Initialize audio - default device, 44100hz, stereo, 16 bits</div><div class="code_line">&nbsp;&nbsp; if not BASS_Init(1, 44100, 0, 0, nil) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; Error(&#39;Error initializing audio!&#39;);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure &nbsp; done_stuff;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; // Free the stream</div><div class="code_line">&nbsp;&nbsp; if (stream &#60;&#62; 0) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;BASS_StreamFree(stream);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; // Close BASS</div><div class="code_line">&nbsp;&nbsp; BASS_Free();</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure &nbsp; load_song;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp; p &nbsp;: &nbsp;PChar;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; p := PChar(MUSIC_FILE);</div><div class="code_line">&nbsp;&nbsp; // Load the stream straight from a file.</div><div class="code_line">&nbsp;&nbsp; stream := BASS_StreamCreateFile(FALSE,p,0,0,0);</div><div class="code_line">&nbsp;&nbsp; if (stream = 0) then error(&#39;Error loading stream!&#39;);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure &nbsp; play_song;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; // Play stream.</div><div class="code_line">&nbsp;&nbsp; if not BASS_ChannelPlay(stream, FALSE) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; Error(&#39;Can&#39;&#39;t play stream&#39;);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure &nbsp; stop_song;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; BASS_ChannelStop(stream);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; clrscr;</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;Welcome to the FPS BASS Test - by Paradice Software.&#39;);</div><div class="code_line">&nbsp;&nbsp; init_stuff;</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;BASS Initialised successfully. &#39;);</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;Press any key to load file: &#39; + MUSIC_FILE);</div><div class="code_line">&nbsp;&nbsp; readkey;</div><div class="code_line">&nbsp;&nbsp; load_song;</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;Song loaded successfully. press any key to play&#39;);</div><div class="code_line">&nbsp;&nbsp; readkey;</div><div class="code_line">&nbsp;&nbsp; totallength := round(BASS_ChannelBytes2Seconds(stream,BASS_StreamGetLength(stream)));</div><div class="code_line">&nbsp;&nbsp; play_song;</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;Playing... press any key to stop!&#39;);</div><div class="code_line">&nbsp;&nbsp; repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;gotoxy(1,10);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;writeln(&#39;Playing: &#39; + seconds_to_minutes(round(BASS_ChannelBytes2Seconds(stream,BASS_ChannelGetPosition(stream)))) + &#39; of &#39; + seconds_to_minutes(totallength));</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;// Bass plays in a separate thread, so we can sleep here to yield CPU.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sleep(100);</div><div class="code_line">&nbsp;&nbsp; until keypressed;</div><div class="code_line">&nbsp;&nbsp; readkey;</div><div class="code_line">&nbsp;&nbsp; stop_song;</div><div class="code_line">&nbsp;&nbsp; clrscr;</div><div class="code_line">&nbsp;&nbsp; done_stuff;</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;Done... exit&#39;);</div><div class="code_line">end.</div></ol></div></div></div></div><br>
По-моему всё довольно наглядно и просто.]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=726264</guid>
        <pubDate>Sun, 22 May 2005 18:10:21 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=726264</link>
        <description><![CDATA[Ash: Кто чем может помогите. Нужно звук нормальный идать(PC-speaker не канает, fm тоже).]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=725573</guid>
        <pubDate>Sat, 21 May 2005 19:22:12 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=725573</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96130&view=findpost&p=724755'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ash &#064; <time class="tag-quote__quoted-time" datetime="2005-05-20T18:10:07+00:00">20.05.05, 18:10</time></span><div class='quote '>Мне вобще нужно что бы при нажатии на клавишу воспроизводился звук определённой ноты и инструмента. Как установить для миди звук и инстр.</div></div>Модуль тут совсем ни причём. Муз.редактором собираешь MIDI файл, а этот модуль должен его проиграть.<br>
А если тебе нужно именно по нажатию клавиши, то это уже гораздо сложнее. Я не имею представления как это делать. В модуле сосем не имеет смысла разбираться, т.к.<ol class="tag-list" type="a"><li>работает только под ДОС</li><li>не на всех звуковухах</li><li>комментарии на немецком и документации нет</li></ol>Если тебе необязательно звучание инструмента, а просто пищание PC-speaker, то вполне сойдёт Sound()]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=724908</guid>
        <pubDate>Fri, 20 May 2005 21:30:13 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=724908</link>
        <description><![CDATA[Ash: Вот]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=724892</guid>
        <pubDate>Fri, 20 May 2005 21:18:27 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=724892</link>
        <description><![CDATA[Romtek: Откуда взят код? Дай ссылку или прикрепи модуль.]]></description>
        <author>Romtek</author>
        <category>32-битные компиляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=724755</guid>
        <pubDate>Fri, 20 May 2005 18:10:07 +0000</pubDate>
        <title>Синтез Midi инструментов</title>
        <link>https://forum.sources.ru/index.php?showtopic=96130&amp;view=findpost&amp;p=724755</link>
        <description><![CDATA[Ash: В программе Rene Werner&#39;а для проигрыванмя миди есть такой код<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">asm</div><div class="code_line">&nbsp;&nbsp;mov dx,StatusPort</div><div class="code_line">&nbsp;&nbsp;@1:</div><div class="code_line">&nbsp;&nbsp;in &nbsp;al,dx</div><div class="code_line">&nbsp;&nbsp;and al,DRR</div><div class="code_line">&nbsp;&nbsp;jnz @1</div><div class="code_line">&nbsp;&nbsp;mov al,[b]</div><div class="code_line">&nbsp;&nbsp;dec dx &nbsp; &nbsp;{DataPort = StatusPort - 1}</div><div class="code_line">&nbsp;&nbsp;out dx,al</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">if il&#62;=2 then begin {Event mit 2 oder 3 Bytes}</div><div class="code_line">b:=bp^; { Byte holen }</div><div class="code_line">&nbsp;</div><div class="code_line">(*</div><div class="code_line">&nbsp;&nbsp;while port[StatusPort] and DRR &#60;&#62; 0 do;</div><div class="code_line">&nbsp;&nbsp;port[Dataport] := bp^;</div><div class="code_line">*)</div><div class="code_line">&nbsp;</div><div class="code_line">asm</div><div class="code_line">&nbsp;&nbsp;mov dx,StatusPort</div><div class="code_line">&nbsp;&nbsp;@2:</div><div class="code_line">&nbsp;&nbsp;in &nbsp;al,dx</div><div class="code_line">&nbsp;&nbsp;and al,DRR</div><div class="code_line">&nbsp;&nbsp;jnz @2</div><div class="code_line">&nbsp;&nbsp;mov al,[b]</div><div class="code_line">&nbsp;&nbsp;dec dx</div><div class="code_line">&nbsp;&nbsp;out dx,al</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">inc(bp);</div><div class="code_line">if il=3 then begin { 3. Byte ?? }</div><div class="code_line">b:=bp^; { Byte holen }</div><div class="code_line">&nbsp;</div><div class="code_line">(*</div><div class="code_line">&nbsp;&nbsp;while port[StatusPort] and DRR&#60;&#62;0 do;</div><div class="code_line">&nbsp;&nbsp;port[Dataport] := bp^;</div><div class="code_line">*)</div><div class="code_line">&nbsp;</div><div class="code_line">asm</div><div class="code_line">&nbsp;&nbsp;mov dx,StatusPort</div><div class="code_line">&nbsp;&nbsp;@2:</div><div class="code_line">&nbsp;&nbsp;in &nbsp;al,dx</div><div class="code_line">&nbsp;&nbsp;and al,DRR</div><div class="code_line">&nbsp;&nbsp;jnz @2</div><div class="code_line">&nbsp;&nbsp;mov al,[b]</div><div class="code_line">&nbsp;&nbsp;dec dx</div><div class="code_line">&nbsp;&nbsp;out dx,al</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">inc(bp);</div></ol></div></div></div></div><br>
я так полагаю что воспроизведение осущевстляется именно здесь, но как оно осущевстляется я понять не могу, может кто поможет. Мне вобще нужно что бы при нажатии на клавишу воспроизводился звук определённой ноты и инструмента. Как установить для миди звук и инстр.<br>
Из всех модулей для миди работает только этот, поэтому за него и ухватился.]]></description>
        <author>Ash</author>
        <category>32-битные компиляторы</category>
      </item>
	
      </channel>
      </rss>
	