Как проиграть половинную ноту ля первой октавы? Пока имеется такой код: Код (Text): .486 .model flat, stdcall option casemap: none include windows.inc include kernel32.inc include winmm.inc includelib kernel32.lib includelib winmm.lib .data hms dd ? one dd 0 mhdr MIDIHDR <offset mididata, 48, 48, 0, 0, 0, 0, 0, <0, 0, 0, 0>> mptd MIDIPROPTIMEDIV <sizeof mptd, 48> mididata dd 0, 0, (MEVT_TEMPO shl 24) or 500000 dd 0, 0, 904590h dd 960, 0, 004580h hevt dd ? .code @: invoke CreateEvent, 0, 0, 0, 0 mov hevt, eax invoke midiStreamOpen, offset hms, offset one, 1, hevt, 0, CALLBACK_EVENT invoke midiStreamProperty, hms, offset mptd, MIDIPROP_SET or MIDIPROP_TIMEDIV invoke midiOutPrepareHeader, hms, offset mhdr, sizeof mhdr invoke midiStreamOut, hms, offset mhdr, sizeof mhdr invoke midiStreamRestart, hms .while 1 test mhdr.dwFlags, MHDR_DONE .break .if !zero? invoke WaitForSingleObject, hevt, 1000 .endw invoke midiOutUnprepareHeader, hms, offset mhdr, sizeof mhdr invoke midiStreamClose, hms invoke ExitProcess, 0 end @ Уже работает. Просто невнимательность