【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net (430レス)
【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1482549747/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
112: デフォルトの名無しさん [] 2017/03/12(日) 18:13:41.20 ID:a1qa7agM 以前書いた、BEEP系の内容の続き。 Win系関係ルーチンで発見できたものを記載する。 'declare 文は、C:\tool\FreeBASIC 内 *.BIファイルを検索してくれ。 大域宣言 #Include Once "win/mmsystem.bi" Dim Shared MSerrorCodeMM as MMRESULT : 'MS音声処理関係処理のリターンコード 'declare function Beep_ alias "Beep"(byval dwFreq as DWORD, byval dwDuration as DWORD) as WINBOOL MSReturnCode = Beep_(Frequency, BeepTime) : '命令語 'https://msdn.microsoft.com/ja-jp/library/cc428923.aspx 'https://msdn.microsoft.com/ja-jp/library/cc429002.aspx 'Declare function MessageBeep(byval uType as UINT) as WINBOOL MSReturnCode = MessageBeep(-1) MSReturnCode =MessageBeep(MB_ICONASTERISK) MSReturnCode = MessageBeep(MB_ICONEXCLAMATION) MSReturnCode= MessageBeep(MB_ICONHAND) MSReturnCode = MessageBeep(MB_ICONQUESTION) MSReturnCode =MessageBeep(MB_OK) http://mevius.5ch.net/test/read.cgi/tech/1482549747/112
113: デフォルトの名無しさん [] 2017/03/12(日) 18:17:37.48 ID:a1qa7agM 'http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200707/07070177.txt にあったMIDI利用 BEEP は何とか成功した。 Dim lngmidHndVal As HMIDIOUT__ Dim lngmidHndPtr As HMIDIOUT Dim lngmidHndPtrPtr As LPHMIDIOUT で宣言して、 'declare function midiOutOpen(byval phmo as LPHMIDIOUT, byval uDeviceID as UINT, byval dwCallback as DWORD_PTR, byval dwInstance as DWORD_PTR, byval fdwOpen as DWORD) as MMRESULT MSerrorCodeMM = midiOutOpen(@lngmidHndPtr, MIDI_MAPPER, 0, 0, CALLBACK_NULL) If (MSerrorCodeMM = MMSYSERR_NOERROR) Then BeepMidiOut (lngmidHndPtr, MdiMsg) Sleep mTime midiOutClose (lngmidHndPtr) とならす。 Private Function BeepMidiOut(lngmidHndPtr As HMIDIOUT, DataString As String) As Wata Dim MLMsg() As Byte Dim As Long IAA, IBB Dim lpMidiOutHdr As MIDIHDR と、宣言して、 ReDim MLMsg(0& To Len(DataString) \ 2& - 1&) For IAA = 1& To Len(DataString) Step 2& MLMsg((IAA - 1&) \ 2&) = Val("&H" & Mid(DataString, IAA, 2&)) Next lpMidiOutHdr.lpData = VarPtr(MLMsg(0)) lpMidiOutHdr.dwBufferLength = UBound(MLMsg) + 1& lpMidiOutHdr.dwFlags = 0& 'declare function midiOutPrepareHeader(byval hmo as HMIDIOUT, byval pmh as LPMIDIHDR, byval cbmh as UINT) as MMRESULT MSerrorCodeMM = midiOutPrepareHeader (lngmidHndPtr, @lpMidiOutHdr, Len(lpMidiOutHdr)) 'declare function midiOutLongMsg(byval hmo as HMIDIOUT, byval pmh as LPMIDIHDR, byval cbmh as UINT) as MMRESULT MSerrorCodeMM = midiOutLongMsg (lngmidHndPtr, @lpMidiOutHdr, Len(lpMidiOutHdr)) と鳴らす。 http://mevius.5ch.net/test/read.cgi/tech/1482549747/113
114: デフォルトの名無しさん [] 2017/03/12(日) 18:21:32.40 ID:a1qa7agM 音が聞こえなかったのは、Sleep mTime の解釈が原因だと思う。 BeepMidi("02", "60", 2000) 'BeepMidi("57", "60", 2000) 'C7:2093Hz のように、演奏時間を2000としたら、何秒か聞こえた。 遅延が、2-3秒ぐらいあり、その期間無答となるので、ゲームサウンドには使えない。 http://mevius.5ch.net/test/read.cgi/tech/1482549747/114
115: デフォルトの名無しさん [] 2017/03/12(日) 19:21:01.74 ID:a1qa7agM さっぱりわからんけど https://blogs.windows.com/buildingapps/2016/09/21/midi-enhancements-in-windows-10/#HWygA7trSYw9sboJ.97 なんてものを見つけた。 Windows 10でMIDIを強化するというが、2秒ぐらいの遅延が発生していることからみれば 対応を取らなければ、MIDI関係ルーチンが使い物にならないわけで 主要用途である、ゲームのバックグラウンドサウンドにうまく適応で切るような、低負荷ルーチンの存在が必要となってくる。 Win 10では、1/4を超えるCPU占有をTSSで他のタスクに割り振るために認めていない。 より負荷を軽くすることが要求される。 しかし、負荷を軽くする内容については記載がない。 http://mevius.5ch.net/test/read.cgi/tech/1482549747/115
116: デフォルトの名無しさん [] 2017/03/12(日) 19:38:38.32 ID:a1qa7agM いくらやっても見つからないと思ったらば、こんなの見つけた。 https://www.slideshare.net/garicchi/windows10api 37. バックグラウンドタスク 38. BackgroundTask • UWPは基本的にアプリを閉じるとタスクを実行できなくなる • BackgroundTaskに登録しておくとTriggerが発動したときに別 のプロセスとして処理を実行できる App System System Trigger BackgroundTask 別プロセス BackgroundTask登録 39. Background Task Triggerの例 • Time Trigger • 一定時間でTaskを実行 • 最短15分間隔 • System Trigger • システムのあらゆるイベント時にTask実行 • 例 Internet Available , Power State Changed • Push Notification Trigger • プッシュ通知が来た時にTask実行 MIDI 再生専用のタスクを作って、何かしかの指示を送って実行、 という処理が必要なのかな?。 http://mevius.5ch.net/test/read.cgi/tech/1482549747/116
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.478s*