這只是一個窗口程序集,是整個軟件的一部分,算是核心吧
易語言不同于C語言、java,易語言是全中文編寫,說實話,我感覺中文編寫還不如英文編寫順手。我感覺最簡單的還是我當初自己學的Python語言。
下面是易語言的鋼琴軟件代碼:
.版本 2
.支持庫 eMMedia
.程序集 窗口程序集1
.程序集變量 琴鍵, 圖形按鈕, , "0"
.程序集變量 黑鍵, 整數(shù)型, , "0"
.程序集變量 白鍵, 整數(shù)型, , "0"
.程序集變量 上次鍵, 圖形按鈕
.程序集變量 上次鍵黑白, 邏輯型
.程序集變量 舊音符, 字節(jié)型
.程序集變量 音量鈕拖動, 邏輯型
.程序集變量 音量鈕位置, 整數(shù)型
.程序集變量 樂譜組, 文本型, , "0"
.程序集變量 樂譜位, 整數(shù)型
.程序集變量 錄音狀態(tài), 邏輯型
.程序集變量 錄音音長, 文本型, , "255"
.程序集變量 錄音文本, 文本型
.程序集變量 停止, 邏輯型
.程序集變量 設置樂器, 邏輯型
.程序集變量 音波值, 整數(shù)型, , , 模擬音波用
.程序集變量 音波值歷史組, 整數(shù)型, , "0", 模擬音波用
.程序集變量 大鍵碼, 整數(shù)型, , "0"
.程序集變量 音位, 整數(shù)型, , "0"
.程序集變量 重復按鍵, 邏輯型
.程序集變量 白鍵碼, 整數(shù)型, , "0"
.程序集變量 正常音, 文本型
.程序集變量 高一點, 文本型
.程序集變量 高二點, 文本型
.程序集變量 低一點, 文本型
.程序集變量 低二點, 文本型
.程序集變量 按下鍵, 整數(shù)型, , "0"
.程序集變量 存在, 邏輯型
.程序集變量 按鍵組, 整數(shù)型, , "0"
.程序集變量 標記組, 邏輯型, , "0"
.程序集變量 當前彈奏, 整數(shù)型
.程序集變量 已執(zhí)行, 邏輯型
.程序集變量 彈奏碼, 整數(shù)型
.程序集變量 格式, 整數(shù)型
.程序集變量 行結束, 邏輯型
.程序集變量 文件號, 整數(shù)型
.程序集變量 臨時樂譜, 文本型
.程序集變量 系統(tǒng)播放, 邏輯型
.程序集變量 是否暫停, 邏輯型
.子程序 __啟動窗口_創(chuàng)建完畢
.局部變量 黑鍵位置, 整數(shù)型, , "0"
.局部變量 黑鍵標記, 整數(shù)型, , "0"
.局部變量 左聲道, 整數(shù)型
.局部變量 右聲道, 整數(shù)型
.局部變量 標記差, 整數(shù)型
.局部變量 標記值, 整數(shù)型
.局部變量 變量, 整數(shù)型
載入 (啟動畫面, , 假)
置外形圖片 (#底圖資源, #黑色)
' //初始化
白鍵碼 = { 36, 38, 40, 41, 43, 45, 47, 48, 50, 52, 53, 55, 57, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 91, 93, 95 }
大鍵碼 = { 90, 88, 67, 86, 66, 78, 77, 65, 83, 68, 70, 71, 72, 74, 81, 87, 69, 82, 84, 89, 85, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 189, 187, 220, 8, 46, 35, 34, 45, 36, 33, 8, 73, 79, 80, 219, 221, 188, 190, 191, 75, 76, 186, 222 }
音位 = { 36, 38, 40, 41, 43, 45, 47, 48, 50, 52, 53, 55, 57, 59, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 91, 93, 95, 84, 86, 88, 89, 91, 93, 95, 72, 74, 76, 77, 79, 48, 50, 52, 60, 62, 64, 65 }
重定義數(shù)組 (按下鍵, 假, 取數(shù)組成員數(shù) (大鍵碼))
按鍵組 = 大鍵碼
重定義數(shù)組 (標記組, 假, 取數(shù)組成員數(shù) (大鍵碼))
.計次循環(huán)首 (取數(shù)組成員數(shù) (標記組), 變量)
標記組 [變量] = 假
.計次循環(huán)尾 ()
舊音符 = -1
格式 = 2
開始音位 = 0
效果1.選中 = 真
.計次循環(huán)首 (MIDI1.取設備數(shù)量 (), 變量)
設備名組合框.加入項目 (MIDI1.取設備名 (變量 - 1), )
.計次循環(huán)尾 ()
MIDI1.打開 (0)
設備名組合框.現(xiàn)行選中項 = 0
.計次循環(huán)首 (MIDI1.取樂器數(shù)量 (), 變量)
樂器名組合框.加入項目 (MIDI1.取樂器名 (變量), 變量)
.計次循環(huán)尾 ()
樂器名組合框.現(xiàn)行選中項 = 4
MIDI1.置樂器 (4, )
' //取音量:
.如果 (系統(tǒng)音量1.打開 (#音量類型.主音量) = 0)
信息框 (“系統(tǒng)音量打開失敗!,您可能聽不到聲音!”, 48, )
.否則
系統(tǒng)音量1.取音量 (左聲道, 右聲道)
主音量鈕.頂邊 = 116 - 四舍五入 (取整 ((左聲道 + 右聲道) ÷ 2 ÷ 1489.43), 0)
.如果結束
系統(tǒng)音量1.關閉 (2)
.如果 (系統(tǒng)音量1.打開 (#音量類型.軟件合成器) = 0)
信息框 (“軟件合成器打開失敗!,您可能聽不到聲音!”, 48, )
.否則
系統(tǒng)音量1.取音量 (左聲道, 右聲道)
軟件合成器鈕.頂邊 = 116 - 四舍五入 (取整 ((左聲道 + 右聲道) ÷ 2 ÷ 1349.81), 0)
.如果結束
系統(tǒng)音量1.關閉 (2)
' //下面生成琴鍵代碼:
重定義數(shù)組 (琴鍵, 假, 71)
.計次循環(huán)首 (71, 變量)
.如果真 (變量 ≠ 6 且 變量 ≠ 14 且 變量 ≠ 20 且 變量 ≠ 28 且 變量 ≠ 34 且 變量 ≠ 42 且 變量 ≠ 48 且 變量 ≠ 56 且 變量 ≠ 62 且 變量 ≠ 70 且 變量 ≠ 76 且 變量 ≠ 84)
標記差 = 標記差 + 1
復制窗口組件 (琴鍵1, 琴鍵 [變量])
標記值 = 35 + 標記差
.判斷開始 (變量 % 2 = 0)
琴鍵 [變量].寬度 = 12
琴鍵 [變量].寬度 = 70
琴鍵 [變量].頂邊 = 0
琴鍵 [變量].正常圖片 = 琴鍵2.正常圖片
琴鍵 [變量].按下圖片 = 琴鍵2.按下圖片
琴鍵 [變量].透明顏色 = #白色
琴鍵 [變量].調整層次 (#頂層)
琴鍵 [變量].可視 = 真
琴鍵 [變量].標記 = 到文本 (標記值)
加入成員 (黑鍵, 標記值)
琴鍵 [變量].左邊 = 琴鍵2.左邊 + 琴鍵1.寬度 × (絕對取整 (變量 ÷ 2) - 1)
.默認
琴鍵 [變量].可視 = 真
琴鍵 [變量].標記 = 到文本 (標記值)
琴鍵 [變量].左邊 = 琴鍵1.左邊 + 琴鍵1.寬度 × 絕對取整 (變量 ÷ 2)
加入成員 (白鍵, 標記值)
.判斷結束
.如果真結束
.計次循環(huán)尾 ()
.子程序 按鍵發(fā)聲
.參數(shù) 音符, 字節(jié)型
MIDI1.奏 (開始音位 + 音符, )
舊音符 = 開始音位 + 音符
.子程序 _琴鍵1_鼠標左鍵被按下, 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
.局部變量 當前琴鍵, 圖形按鈕
當前琴鍵 = 取事件組件 ()
.如果真 (MIDI1.是否打開 () = 假)
MIDI1.打開 (0)
MIDI1.置樂器 (樂器名組合框.現(xiàn)行選中項, )
.如果真結束
.如果真 (是否已創(chuàng)建 (當前琴鍵))
按鍵發(fā)聲 (到數(shù)值 (當前琴鍵.標記))
.如果真結束
.如果真 (錄音狀態(tài) = 真)
時鐘3.時鐘周期 = 100
錄音文本 = 錄音文本 + 到文本 (到數(shù)值 (當前琴鍵.標記)) + “@”
.如果真結束
當前彈奏 = 到數(shù)值 (當前琴鍵.標記)
.子程序 停奏
.參數(shù) v, 整數(shù)型, 可空
.如果 (是否為空 (v))
MIDI1.停奏 (舊音符, )
.否則
MIDI1.停奏 (舊音符, v)
.如果結束
.子程序 _琴鍵1_鼠標左鍵被放開, 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
停奏 ()
時鐘3.時鐘周期 = 0
.如果真 (錄音狀態(tài) = 真 且 存在 = 真)
.如果真 (彈奏碼 ≤ 0)
返回 ()
.如果真結束
.判斷開始 (到數(shù)值 (錄音音長 [彈奏碼]) ≤ 2)
錄音音長 [彈奏碼] = “8”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) = 3)
錄音音長 [彈奏碼] = “4.”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) = 4)
錄音音長 [彈奏碼] = “4”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) > 4 且 到數(shù)值 (錄音音長 [彈奏碼]) ≤ 6)
錄音音長 [彈奏碼] = “2.”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) > 6 且 到數(shù)值 (錄音音長 [彈奏碼]) ≤ 8)
錄音音長 [彈奏碼] = “2”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) > 10 且 到數(shù)值 (錄音音長 [彈奏碼]) ≤ 12)
錄音音長 [彈奏碼] = “1”
.默認
錄音音長 [彈奏碼] = “1.”
.判斷結束
錄音文本 = 錄音文本 + 錄音音長 [彈奏碼] + “ ”
.如果真結束
_啟動窗口.標記 = “2”
.子程序 _時鐘1_周期事件
.如果 (圖形按鈕1.可視 = 真)
圖形按鈕1.可視 = 假
圖形按鈕2.可視 = 假
.否則
圖形按鈕1.可視 = 真
圖形按鈕2.可視 = 真
.如果結束
.子程序 _打開_被單擊
設置樂器 = 假
通用對話框1.類型 = 0
.如果真 (通用對話框1.打開 ())
錄音文本 = “”
.如果真結束
.判斷開始 (取擴展名 (通用對話框1.文件名) = “MIDI” 或 取擴展名 (通用對話框1.文件名) = “MID”)
格式 = 1
.默認
格式 = 2
.判斷結束
.子程序 _播放_被單擊
.局部變量 文件樂譜, 文本型, , "0"
_啟動窗口.獲取焦點 ()
.如果真 (是否暫停)
媒體播放1.播放 (-1)
時鐘5.時鐘周期 = 50
返回 ()
.如果真結束
.判斷開始 (播放.選中 = 真)
正常音 = “”
高一點 = “”
高二點 = “”
低二點 = “”
低一點 = “”
.判斷開始 (格式 = 0)
.如果真 (錄音文本 ≠ “”)
.如果真 (MIDI1.是否打開 () = 假)
MIDI1.打開 (0)
.如果真結束
播放文件 (錄音文本 + “p@2”)
.如果真結束
.判斷 (格式 = 1)
行結束 = 真
.判斷開始 (音軌數(shù) (通用對話框1.文件名) = 1)
.如果真 (MIDI1.是否打開 () = 假)
MIDI1.打開 (0)
.如果真結束
.如果真 (修復文件 (通用對話框1.文件名))
轉換格式emid (通用對話框1.文件名)
播放文件 (臨時樂譜)
返回 ()
.如果真結束
.默認
.如果真 (信息框 (“本MIDI音樂暫不支持模擬按鍵效果,您確定繼續(xù)播放嗎?”, 64 + 1, ) = #確認鈕)
MIDI1.關閉 ()
媒體播放1.打開 (通用對話框1.文件名)
媒體播放1.播放 (-1)
系統(tǒng)播放 = 真
時鐘1.時鐘周期 = 350
時鐘5.時鐘周期 = 50
.如果真結束
.判斷結束
.判斷 (格式 = 2)
.判斷開始 (通用對話框1.文件名 ≠ “”)
.如果真 (MIDI1.是否打開 () = 假)
MIDI1.打開 (0)
.如果真結束
文件樂譜 = 分割文本 (到文本 (讀入文件 (通用對話框1.文件名)), #換行符, )
.如果真 (文件樂譜 [1] ≠ “emid”)
信息框 (“不是易語言MIDI音樂文本文件!”, 16, )
播放.選中 = 假
返回 ()
.如果真結束
MIDI1.置樂器 (到數(shù)值 (文件樂譜 [2]), )
播放文件 (文件樂譜 [3])
.默認
信息框 (“沒有要播放的曲目!”, 48, )
播放.選中 = 假
返回 ()
.判斷結束
.默認
.判斷結束
音波.選中 = 真
.默認
連續(xù)賦值 (0, 時鐘1.時鐘周期, 時鐘2.時鐘周期, 時鐘4.時鐘周期)
.如果 (系統(tǒng)播放)
媒體播放1.暫停 ()
播放.選中 = 假
系統(tǒng)播放 = 假
是否暫停 = 真
時鐘5.時鐘周期 = 0
.否則
模擬按琴鍵 (舊音符 - 開始音位, 真)
停奏 ()
.如果結束
.判斷結束
.子程序 轉換格式emid
.參數(shù) 文件名, 文本型
.局部變量 變量
.局部變量 臨時, 字節(jié)集
關閉文件 (文件號)
文件號 = 打開文件 (文件名, #讀入, )
移到文件首 (文件號)
臨時樂譜 = “”
移動讀寫位置 (文件號, , 24)
.判斷循環(huán)首 (是否在文件尾 (文件號, ) = 假)
臨時 = 讀入字節(jié)集 (文件號, 6)
.判斷開始 (取字節(jié)集長度 (臨時) < 6)
臨時樂譜 = 臨時樂譜 + “p@2”
.默認
.判斷開始 (臨時 [3] = 3)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (32) + “ ”
.判斷 (臨時 [3] = 6)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (16) + “ ”
.判斷 (臨時 [3] = 12)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (8) + “ ”
.判斷 (臨時 [3] = 18)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (8) + “. ”
.判斷 (臨時 [3] = 24)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (4) + “ ”
.判斷 (臨時 [3] = 36)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (4) + “. ”
.判斷 (臨時 [3] = 48)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (2) + “ ”
.判斷 (臨時 [3] = 64)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (2) + “. ”
.判斷 (臨時 [3] = 72)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (1) + “ ”
.判斷 (臨時 [3] = 96)
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (1) + “. ”
.默認
臨時樂譜 = 臨時樂譜 + 到文本 (臨時 [1]) + “@” + 到文本 (4) + “ ”
.判斷結束
.判斷結束
.判斷循環(huán)尾 ()
寫到文件 (文件名 + “.txt”, 到字節(jié)集 (“emid” + #換行符 + 到文本 (MIDI1.取樂器序號 ()) + #換行符 + 刪尾空 (臨時樂譜)))
' //上行代碼是保存MIDI音樂為易語言文件。
關閉文件 (文件號)
.子程序 修復文件, 邏輯型
.參數(shù) 文件名, 文本型
.局部變量 臨時1, 字節(jié)集, , "8"
.局部變量 臨時2, 字節(jié)集
.局部變量 音軌數(shù), 整數(shù)型
.局部變量 大小, 整數(shù)型
.局部變量 變量, 整數(shù)型
.局部變量 文件號1, 整數(shù)型
.判斷開始 (音軌數(shù) (文件名) = 1)
關閉文件 (文件號)
文件號 = 打開文件 (文件名, #讀入, )
文件號1 = 打開文件 (文件名 + “.bak”, #重寫, )
移到文件首 (文件號)
臨時1 [1] = 讀入字節(jié)集 (文件號, 8)
臨時1 [2] = 讀入字節(jié)集 (文件號, 2)
臨時1 [3] = 讀入字節(jié)集 (文件號, 2)
臨時1 [4] = 讀入字節(jié)集 (文件號, 2)
臨時1 [5] = 讀入字節(jié)集 (文件號, 4)
臨時2 = 讀入字節(jié)集 (文件號, 4)
臨時1 [6] = 讀入字節(jié)集 (文件號, 2)
大小 = 臨時2 [1] × 255 × 255 × 255 + 臨時2 [2] × 255 × 255 + 臨時2 [3] × 255 + 臨時2 [4]
' 移到文件首 (文件號)
寫出字節(jié)集 (文件號1, 取空白字節(jié)集 (24))
.判斷循環(huán)首 (是否在文件尾 (文件號, ) = 假)
臨時2 = 讀入字節(jié)集 (文件號, 1)
.判斷開始 (臨時2 [1] = 129 或 臨時2 [1] = 130 或 臨時2 [1] = 131)
大小 = 大小 - 1
.默認
移到文件尾 (文件號1)
寫出字節(jié)集 (文件號1, 臨時2)
.判斷結束
.判斷循環(huán)尾 ()
移到文件首 (文件號1)
.計次循環(huán)首 (5, 變量)
寫出字節(jié)集 (文件號1, 臨時1 [變量])
.計次循環(huán)尾 ()
臨時2 = 到字節(jié)集 (大小)
.計次循環(huán)首 (4, 變量)
.判斷開始 (臨時2 [4 - 變量 + 1] = 0)
寫出字節(jié)集 (文件號1, { 0 })
.默認
寫出字節(jié)集 (文件號1, 到字節(jié)集 (字符 (臨時2 [4 - 變量 + 1])))
.判斷結束
.計次循環(huán)尾 ()
寫出字節(jié)集 (文件號1, 臨時1 [6])
關閉文件 (文件號1)
關閉文件 (文件號)
.判斷開始 (刪除文件 (文件名))
.判斷開始 (文件更名 (文件名 + “.bak”, 文件名))
返回 (真)
.默認
返回 (假)
.判斷結束
.默認
返回 (假)
.判斷結束
' 信息框 (“修理完畢”, 0, )
.默認
返回 (真)
.判斷結束
.子程序 音軌數(shù), 整數(shù)型
.參數(shù) 文件名, 文本型
.局部變量 臨時, 字節(jié)集
.局部變量 音軌數(shù), 整數(shù)型
關閉文件 (文件號)
文件號 = 打開文件 (文件名, #讀入, )
移到文件首 (文件號)
移動讀寫位置 (文件號, , 10)
臨時 = 讀入字節(jié)集 (文件號, 2)
音軌數(shù) = 臨時 [1] × 255 + 臨時 [2]
返回 (音軌數(shù))
.子程序 _時鐘2_周期事件
.局部變量 當前音, 文本型, , "0"
.局部變量 音符, 圖形按鈕
.局部變量 變量, 整數(shù)型
.局部變量 標識, 整數(shù)型
.如果真 (樂譜位 ≠ 0)
停奏 (舊音符)
.如果真結束
.如果真 (樂譜位 = 取數(shù)組成員數(shù) (樂譜組))
時鐘1.時鐘周期 = 0
時鐘2.時鐘周期 = 0
時鐘4.時鐘周期 = 0
音波畫板.可視 = 假
樂譜位 = 0
' 模擬按琴鍵 (舊音符, 真)
舊音符 = 0
播放.選中 = 假
錄音.禁止 = 假
返回 ()
.如果真結束
樂譜位 = 樂譜位 + 1
.如果真 (樂譜組 [樂譜位] ≠ “|” 且 樂譜組 [樂譜位] ≠ “||”)
當前音 = 分割文本 (樂譜組 [樂譜位], “@”, )
.如果 (當前音 [1] = “p”)
時鐘2.時鐘周期 = 960 \ 到數(shù)值 (當前音 [2])
.否則
.如果真 (取數(shù)組成員數(shù) (當前音) = 2)
MIDI1.奏 (到數(shù)值 (當前音 [1]), )
模擬按琴鍵 (到數(shù)值 (當前音 [1]))
音波值 = 到數(shù)值 (當前音 [1])
舊音符 = 到數(shù)值 (當前音 [1])
.如果 (取文本右邊 (當前音 [2], 1) = “.”)
時鐘2.時鐘周期 = 960 \ 到數(shù)值 (當前音 [2]) + 960 \ 到數(shù)值 (當前音 [2]) ÷ 2
.否則
時鐘2.時鐘周期 = 960 \ 到數(shù)值 (當前音 [2])
.如果結束
.計次循環(huán)首 (取數(shù)組成員數(shù) (白鍵碼), 變量)
.如果真 (白鍵碼 [變量] = 到數(shù)值 (當前音 [1]))
跳出循環(huán) ()
.如果真結束
.計次循環(huán)尾 ()
標識 = 1
.判斷開始 (取文本長度 (正常音) < 22)
.判斷開始 (變量 % 7 = 0)
.判斷開始 (取整 (變量 ÷ 7) ≠ 0)
.判斷開始 (變量 % 7 = 0)
正常音 = 正常音 + “ 7”
.默認
正常音 = 正常音 + “ ” + 到文本 (變量 % 7)
.判斷結束
.判斷 (變量 % 7 = 0)
正常音 = 正常音 + “ 0”
標識 = 0
.默認
正常音 = 正常音 + “ ” + 到文本 (變量 % 7)
.判斷結束
.默認
正常音 = 正常音 + “ ” + 到文本 (變量 % 7)
.判斷結束
.判斷 (變量 % 7 = 0)
.判斷開始 (取整 (變量 ÷ 7) ≠ 0)
.判斷開始 (變量 % 7 = 0)
正常音 = “ 7”
.默認
正常音 = “ ” + 到文本 (變量 % 7)
.判斷結束
.判斷 (變量 % 7 = 0)
正常音 = “ 0”
標識 = 0
.默認
正常音 = “ ” + 到文本 (變量 % 7)
.判斷結束
.默認
正常音 = “ ” + 到文本 (變量 % 7)
.判斷結束
樂譜.標題 = 正常音
低1.標題 = “”
低2.標題 = “”
高2.標題 = “”
高1.標題 = “”
.判斷開始 (取文本長度 (正常音) < 22)
.判斷開始 (到數(shù)值 (當前音 [1]) ≤ 47)
.判斷開始 (標識 = 0)
低二點 = 低二點 + “ ” + “ ”
低一點 = 低一點 + “ ” + “ ”
.默認
低二點 = 低二點 + “ ” + “.”
低一點 = 低一點 + “ ” + “.”
.判斷結束
高一點 = 高一點 + “ ”
高二點 = 高二點 + “ ”
.判斷 (到數(shù)值 (當前音 [1]) > 47 且 到數(shù)值 (當前音 [1]) ≤ 59)
.判斷開始 (標識 = 0)
低一點 = 低一點 + “ ” + “ ”
.默認
低一點 = 低一點 + “ ” + “.”
.判斷結束
低二點 = 低二點 + “ ”
高一點 = 高一點 + “ ”
高二點 = 高二點 + “ ”
.判斷 (到數(shù)值 (當前音 [1]) > 59 且 到數(shù)值 (當前音 [1]) ≤ 71)
低二點 = 低二點 + “ ”
低一點 = 低一點 + “ ”
高一點 = 高一點 + “ ”
高二點 = 高二點 + “ ”
.判斷 (到數(shù)值 (當前音 [1]) > 71 且 到數(shù)值 (當前音 [1]) ≤ 83)
低二點 = 低二點 + “ ”
低一點 = 低一點 + “ ”
.判斷開始 (標識 = 0)
高一點 = 高一點 + “ ” + “ ”
.默認
高一點 = 高一點 + “ ” + “.”
.判斷結束
高二點 = 高二點 + “ ”
.判斷 (到數(shù)值 (當前音 [1]) > 83 且 到數(shù)值 (當前音 [1]) ≤ 95)
低二點 = 低二點 + “ ”
低一點 = 低一點 + “ ”
.判斷開始 (標識 = 0)
高二點 = 高二點 + “ ” + “ ”
高一點 = 高一點 + “ ” + “ ”
.默認
高二點 = 高二點 + “ ” + “.”
高一點 = 高一點 + “ ” + “.”
.判斷結束
.默認
低二點 = 低二點 + “ ”
低一點 = 低一點 + “ ”
高一點 = 高一點 + “ ”
高二點 = 高二點 + “ ”
.判斷結束
.默認
高一點 = “”
低一點 = “”
高二點 = “”
低二點 = “”
.判斷結束
低1.標題 = 低一點
低2.標題 = 低二點
高2.標題 = 高二點
高1.標題 = 高一點
.如果真結束
.如果結束
.如果真結束
.子程序 模擬按琴鍵
.參數(shù) 音符, 字節(jié)型
.參數(shù) 結束, 邏輯型, 可空
.局部變量 當前鍵, 圖形按鈕
.局部變量 當前鍵黑白, 邏輯型
.局部變量 變量, 整數(shù)型
.計次循環(huán)首 (取數(shù)組成員數(shù) (黑鍵), 變量)
.如果真 (黑鍵 [變量] = 音符)
當前鍵黑白 = 真
跳出循環(huán) ()
.如果真結束
.計次循環(huán)尾 ()
.如果真 (是否已創(chuàng)建 (上次鍵))
上次鍵.正常圖片 = 選擇 (上次鍵黑白, #黑正常, #白正常)
.如果真結束
.如果真 (停止)
返回 ()
.如果真結束
.如果真 (音符 ≠ 255 且 音符 ≠ 0)
當前鍵 = 取標記組件 (音符)
.如果真結束
.如果真 (結束 = 真)
返回 ()
.如果真結束
.如果真 (是否已創(chuàng)建 (當前鍵))
當前鍵.正常圖片 = 選擇 (當前鍵黑白, #黑按下, #白按下)
.如果真結束
上次鍵 = 當前鍵
上次鍵黑白 = 當前鍵黑白
.子程序 播放文件
.參數(shù) 內容, 文本型
樂譜組 = 分割文本 (內容, “ ”, )
時鐘2.時鐘周期 = 50
時鐘1.時鐘周期 = 350
時鐘4.時鐘周期 = 150
音波畫板.可視 = 真
.子程序 _錄音_被單擊
.判斷開始 (錄音.選中 = 真)
重定義數(shù)組 (錄音音長, 假, 255)
錄音文本 = “”
時鐘3.時鐘周期 = 100
_啟動窗口.獲取焦點 ()
錄音狀態(tài) = 真
格式 = 0
播放.禁止 = 取反 (播放.禁止)
.默認
時鐘3.時鐘周期 = 0
.如果真 (當前彈奏 = 0)
返回 ()
.如果真結束
.判斷開始 (到數(shù)值 (錄音音長 [當前彈奏]) ≤ 2)
錄音音長 [當前彈奏] = “8”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) = 3)
錄音音長 [當前彈奏] = “4.”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) = 4)
錄音音長 [當前彈奏] = “4”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) > 4 且 到數(shù)值 (錄音音長 [當前彈奏]) ≤ 6)
錄音音長 [當前彈奏] = “2.”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) > 6 且 到數(shù)值 (錄音音長 [當前彈奏]) ≤ 8)
錄音音長 [當前彈奏] = “2”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) > 10 且 到數(shù)值 (錄音音長 [當前彈奏]) ≤ 12)
錄音音長 [當前彈奏] = “1”
.默認
錄音音長 [當前彈奏] = “1.”
.判斷結束
錄音文本 = 錄音文本 + 錄音音長 [當前彈奏] + “ ”
錄音音長 [當前彈奏] = “”
錄音狀態(tài) = 假
錄音狀態(tài) = 取反 (取反 (錄音.選中))
播放.禁止 = 取反 (播放.禁止)
.判斷結束
.子程序 _時鐘3_周期事件
.如果真 (當前彈奏 > 0)
錄音音長 [當前彈奏] = 到文本 (到數(shù)值 (錄音音長 [當前彈奏]) + 1)
.如果真結束
.子程序 _圖形按鈕3_被單擊
載入 (設置窗口, , 真)
.子程序 _停止播放_被單擊
.如果真 (錄音.禁止 = 真)
錄音.禁止 = 假
.如果真結束
MIDI1.關閉 ()
連續(xù)賦值 (假, 播放.選中, 錄音.選中, 音波畫板.可視)
連續(xù)賦值 (0, 時鐘1.時鐘周期, 時鐘2.時鐘周期, 時鐘2.時鐘周期, 時鐘4.時鐘周期)
.如果 (系統(tǒng)播放)
媒體播放1.停止 ()
系統(tǒng)播放 = 假
.否則
模擬按琴鍵 (舊音符, 真)
.如果結束
MIDI1.打開 (0)
MIDI1.置樂器 (樂器名組合框.現(xiàn)行選中項)
樂譜位 = 0
_啟動窗口.獲取焦點 ()
.子程序 _效果1_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
效果1.選中 = 真
樂器名組合框.現(xiàn)行選中項 = 4
MIDI1.置樂器 (4)
.子程序 _效果2_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
樂器名組合框.現(xiàn)行選中項 = 9
MIDI1.置樂器 (9)
效果2.選中 = 真
.子程序 _效果3_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
樂器名組合框.現(xiàn)行選中項 = 10
MIDI1.置樂器 (10)
效果3.選中 = 真
.子程序 _效果4_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
樂器名組合框.現(xiàn)行選中項 = 11
MIDI1.置樂器 (11)
效果4.選中 = 真
.子程序 _效果5_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
樂器名組合框.現(xiàn)行選中項 = 15
MIDI1.置樂器 (15)
效果5.選中 = 真
.子程序 _效果6_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
樂器名組合框.現(xiàn)行選中項 = 117
MIDI1.置樂器 (117)
效果6.選中 = 真
.子程序 _效果7_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
樂器名組合框.現(xiàn)行選中項 = 17
MIDI1.置樂器 (17)
效果7.選中 = 真
.子程序 _效果8_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
MIDI1.置樂器 (19)
樂器名組合框.現(xiàn)行選中項 = 19
效果8.選中 = 真
.子程序 _效果9_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
MIDI1.置樂器 (113)
樂器名組合框.現(xiàn)行選中項 = 113
效果9.選中 = 真
.子程序 _效果10_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
MIDI1.置樂器 (26)
樂器名組合框.現(xiàn)行選中項 = 26
效果10.選中 = 真
.子程序 _效果11_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
MIDI1.置樂器 (39)
樂器名組合框.現(xiàn)行選中項 = 39
效果11.選中 = 真
.子程序 _效果12_被單擊
設置樂器 = 真
連續(xù)賦值 (假, 效果1.選中, 效果2.選中, 效果3.選中, 效果4.選中, 效果5.選中, 效果6.選中, 效果7.選中, 效果8.選中, 效果9.選中, 效果10.選中, 效果11.選中, 效果12.選中)
MIDI1.置樂器 (56)
樂器名組合框.現(xiàn)行選中項 = 56
效果12.選中 = 真
.子程序 _保存_被單擊
.局部變量 樂器名, 字節(jié)型
' 易電子琴格式說明:
' emid ------------------- 是易電子琴文件標記;
' 4 ---------------------- 是樂器號,對應每個樂器的值;
' 48@4 71@4 69@4....p@2 --- 樂譜組,其排列方式是:樂譜值@音長,中間空格分開,以p@2結束。
.如果真 (錄音文本 = “”)
返回 ()
.如果真結束
通用對話框1.類型 = 1
.如果真 (通用對話框1.打開 ())
樂器名 = MIDI1.取樂器序號 ()
.判斷開始 (取擴展名 (通用對話框1.文件名) = “MIDI” 或 取擴展名 (通用對話框1.文件名) = “MID”)
輸出midi (錄音文本 + “p@2”, 通用對話框1.文件名)
.默認
寫到文件 (通用對話框1.文件名, 到字節(jié)集 (“emid” + #換行符 + 到文本 (樂器名) + #換行符 + 刪尾空 (錄音文本)))
.判斷結束
信息框 (“保存文件成功”, #信息圖標, )
.如果真結束
.子程序 輸出midi, 邏輯型
.參數(shù) 音源, 文本型
.參數(shù) 文件名, 文本型
.局部變量 文本組, 文本型, , "0"
.局部變量 計次變量, 整數(shù)型
.局部變量 當前音, 文本型, , "0"
.局部變量 文件號1, 整數(shù)型
.局部變量 長度, 整數(shù)型
.局部變量 變量, 整數(shù)型
.局部變量 臨時, 字節(jié)集
.局部變量 當前值, 整數(shù)型
文件號1 = 打開文件 (文件名, #重寫, )
文本組 = 分割文本 (音源, “ ”, )
.計次循環(huán)首 (取數(shù)組成員數(shù) (文本組), 計次變量)
當前音 = 分割文本 (文本組 [計次變量], “@”, )
.如果真 (當前音 [1] ≠ “p”)
.如果真 (取數(shù)組成員數(shù) (當前音) = 2)
變量 = 變量 + 1
.如果真結束
.如果真結束
處理事件 ()
.計次循環(huán)尾 ()
長度 = 變量 × 6 + 5
寫出字節(jié)集 (文件號1, { 77, 84, 104, 100, 0, 0, 0, 6, 0, 1, 0, 1, 0, 48, 77, 84, 114, 107 })
臨時 = 到字節(jié)集 (長度)
.計次循環(huán)首 (4, 變量)
.判斷開始 (臨時 [4 - 變量 + 1] = 0)
寫出字節(jié)集 (文件號1, { 0 })
.默認
寫出字節(jié)集 (文件號1, 到字節(jié)集 (字符 (臨時 [4 - 變量 + 1])))
.判斷結束
.計次循環(huán)尾 ()
寫出字節(jié)集 (文件號1, { 0, 144 })
.計次循環(huán)首 (取數(shù)組成員數(shù) (文本組), 計次變量)
當前音 = 分割文本 (文本組 [計次變量], “@”, )
.如果真 (取數(shù)組成員數(shù) (當前音) = 2 且 當前音 [1] ≠ “p”)
寫出字節(jié)集 (文件號1, 到字節(jié)集 (字符 (到數(shù)值 (當前音 [1]))))
.判斷開始 (當前音 [2] = “1.”)
當前值 = 96
.判斷 (當前音 [2] = “1”)
當前值 = 72
.判斷 (當前音 [2] = “2.”)
當前值 = 64
.判斷 (當前音 [2] = “2”)
當前值 = 48
.判斷 (當前音 [2] = “4.”)
當前值 = 36
.判斷 (當前音 [2] = “4”)
當前值 = 24
.判斷 (當前音 [2] = “8.”)
當前值 = 18
.判斷 (當前音 [2] = “8”)
當前值 = 12
.判斷 (當前音 [2] = “16”)
當前值 = 6
.判斷 (當前音 [2] = “32”)
當前值 = 3
.默認
.判斷結束
寫出字節(jié)集 (文件號1, { 64 })
寫出字節(jié)集 (文件號1, 到字節(jié)集 (字符 (當前值)))
寫出字節(jié)集 (文件號1, 到字節(jié)集 (字符 (到數(shù)值 (當前音 [1]))))
寫出字節(jié)集 (文件號1, { 0, 0 })
.如果真結束
處理事件 ()
.計次循環(huán)尾 ()
寫出字節(jié)集 (文件號1, { 255, 47, 0 })
關閉文件 (文件號1)
返回 (真)
.子程序 取擴展名, 文本型
.參數(shù) 文件, 文本型
返回 (到大寫 (取文本右邊 (文件, 取文本長度 (文件) - 倒找文本 (文件, “.”, , 假))))
.子程序 _關于_被單擊
載入 (關于窗口, , 真)
.子程序 _圖形按鈕4_被單擊
載入 (設置窗口, , 真)
.子程序 _主音量鈕_鼠標左鍵被按下, 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
音量鈕位置 = 縱向位置
音量鈕拖動 = 真
捕獲鼠標 (主音量鈕.取窗口句柄 ())
.子程序 _主音量鈕_鼠標左鍵被放開, 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
音量鈕拖動 = 假
釋放鼠標 ()
.子程序 _主音量鈕_鼠標位置被移動, 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
.如果真 (音量鈕拖動)
.如果真 (縱向位置 ≥ 主音量鈕.高度 且 縱向位置 ≤ 65535)
返回 ()
.如果真結束
.判斷開始 (縱向位置 < 音量鈕位置 且 主音量鈕.頂邊 > 72)
主音量鈕.頂邊 = 主音量鈕.頂邊 - 1
.判斷 (縱向位置 > 音量鈕位置 且 主音量鈕.頂邊 < 116)
主音量鈕.頂邊 = 主音量鈕.頂邊 + 1
.默認
.判斷結束
.如果 (系統(tǒng)音量1.打開 (#音量類型.主音量) = 0)
信息框 (“系統(tǒng)音量打開失敗!,您可能聽不到聲音!”, 48, )
.否則
系統(tǒng)音量1.置音量 (四舍五入 ((116 - 主音量鈕.頂邊) × 1489.43, 0), 四舍五入 ((116 - 主音量鈕.頂邊) × 1489.43, 0))
系統(tǒng)音量1.關閉 (2)
.如果結束
.如果真結束
.子程序 _軟件合成器鈕_鼠標左鍵被按下, 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
音量鈕位置 = 縱向位置
音量鈕拖動 = 真
捕獲鼠標 (軟件合成器鈕.取窗口句柄 ())
.子程序 _軟件合成器鈕_鼠標左鍵被放開, 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
音量鈕拖動 = 假
釋放鼠標 ()
.子程序 _軟件合成器鈕_鼠標位置被移動, 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
.如果真 (音量鈕拖動)
.如果真 (縱向位置 ≥ 軟件合成器鈕.高度 且 縱向位置 ≤ 65535)
返回 ()
.如果真結束
.判斷開始 (縱向位置 < 音量鈕位置 且 軟件合成器鈕.頂邊 > 72)
軟件合成器鈕.頂邊 = 軟件合成器鈕.頂邊 - 1
.判斷 (縱向位置 > 音量鈕位置 且 軟件合成器鈕.頂邊 < 116)
軟件合成器鈕.頂邊 = 軟件合成器鈕.頂邊 + 1
.默認
.判斷結束
.如果 (系統(tǒng)音量1.打開 (#音量類型.軟件合成器) = 0)
信息框 (“系統(tǒng)音量打開失敗!,您可能聽不到聲音!”, 48, )
.否則
系統(tǒng)音量1.置音量 (四舍五入 ((116 - 軟件合成器鈕.頂邊) × 1349.81, 0), 四舍五入 ((116 - 軟件合成器鈕.頂邊) × 1349.81, 0))
系統(tǒng)音量1.關閉 (2)
.如果結束
.如果真結束
.子程序 _退出_被單擊
結束 ()
.子程序 _最小化_被單擊
位置 = 2
.子程序 音波模擬
.參數(shù) 值, 整數(shù)型
.參數(shù) 目的畫板, 畫板
.局部變量 變量
音波畫板.清除 (, , , )
置隨機數(shù)種子 ()
.如果真 (取數(shù)組成員數(shù) (音波值歷史組) ≥ 16)
刪除成員 (音波值歷史組, 17, 取數(shù)組成員數(shù) (音波值歷史組) - 16)
.如果真結束
.計次循環(huán)首 (取數(shù)組成員數(shù) (音波值歷史組), 變量)
目的畫板.填充矩形 (變量 × 10, 音波值歷史組 [變量], 變量 × 10 - 8, 目的畫板.高度)
.計次循環(huán)尾 ()
插入成員 (音波值歷史組, 1, 值)
.子程序 _時鐘4_周期事件
音波模擬 (音波值 ÷ 2 - 10, 音波畫板)
.子程序 __啟動窗口_按下某鍵, 邏輯型
.參數(shù) 鍵代碼, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
.局部變量 變量1, 整數(shù)型
.局部變量 變量2, 整數(shù)型
存在 = 假
.計次循環(huán)首 (取數(shù)組成員數(shù) (按鍵組), 變量2)
.如果真 (按鍵組 [變量2] = 鍵代碼)
存在 = 真
停奏 ()
.判斷開始 (標記組 [變量2] = 真)
重復按鍵 = 真
跳出循環(huán) ()
.默認
標記組 [變量2] = 真
.判斷結束
.如果真結束
.計次循環(huán)尾 ()
.如果真 (重復按鍵 = 假 且 存在 = 真)
變量1 = 0
.計次循環(huán)首 (取數(shù)組成員數(shù) (大鍵碼), 變量1)
.如果真 (大鍵碼 [變量1] = 鍵代碼)
彈奏碼 = 音位 [變量1]
跳出循環(huán) ()
.如果真結束
.計次循環(huán)尾 ()
.如果真 (重復按鍵 = 假)
模擬按琴鍵 (彈奏碼)
按鍵發(fā)聲 (彈奏碼)
時鐘3.時鐘周期 = 0
.如果真 (錄音狀態(tài) = 真)
.判斷開始 (當前彈奏 > 0)
.判斷開始 (到數(shù)值 (錄音音長 [當前彈奏]) ≤ 2)
錄音音長 [當前彈奏] = “8”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) = 3)
錄音音長 [當前彈奏] = “4.”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) = 4)
錄音音長 [當前彈奏] = “4”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) > 4 且 到數(shù)值 (錄音音長 [當前彈奏]) ≤ 6)
錄音音長 [當前彈奏] = “2.”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) > 6 且 到數(shù)值 (錄音音長 [當前彈奏]) ≤ 8)
錄音音長 [當前彈奏] = “2”
.判斷 (到數(shù)值 (錄音音長 [當前彈奏]) > 10 且 到數(shù)值 (錄音音長 [當前彈奏]) ≤ 12)
錄音音長 [當前彈奏] = “1”
.默認
錄音音長 [當前彈奏] = “1.”
.判斷結束
錄音文本 = 錄音文本 + 錄音音長 [當前彈奏] + “ ”
錄音音長 [當前彈奏] = “”
已執(zhí)行 = 真
.默認
.判斷結束
當前彈奏 = 彈奏碼
時鐘3.時鐘周期 = 100
錄音文本 = 錄音文本 + 到文本 (彈奏碼) + “@”
.如果真結束
返回 ()
.如果真結束
.如果真結束
.子程序 __啟動窗口_放開某鍵, 邏輯型
.參數(shù) 鍵代碼, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
.局部變量 變量, 整數(shù)型
存在 = 假
.計次循環(huán)首 (取數(shù)組成員數(shù) (按鍵組), 變量)
.如果真 (按鍵組 [變量] = 鍵代碼 且 標記組 [變量] = 真)
重復按鍵 = 假
存在 = 真
標記組 [變量] = 假
跳出循環(huán) ()
.如果真結束
.計次循環(huán)尾 ()
.計次循環(huán)首 (取數(shù)組成員數(shù) (大鍵碼), 變量)
.如果真 (大鍵碼 [變量] = 鍵代碼)
彈奏碼 = 音位 [變量]
跳出循環(huán) ()
.如果真結束
.計次循環(huán)尾 ()
停奏 ()
.如果真 (是否已創(chuàng)建 (上次鍵))
上次鍵.正常圖片 = 選擇 (上次鍵黑白, #黑正常, #白正常)
.如果真結束
彈奏碼 = 當前彈奏
.如果真 (錄音狀態(tài) = 真 且 存在 = 真)
.如果真 (彈奏碼 > 0 且 已執(zhí)行 = 假)
.判斷開始 (到數(shù)值 (錄音音長 [彈奏碼]) ≤ 2)
錄音音長 [彈奏碼] = “8”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) = 3)
錄音音長 [彈奏碼] = “4.”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) = 4)
錄音音長 [彈奏碼] = “4”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) > 4 且 到數(shù)值 (錄音音長 [彈奏碼]) ≤ 6)
錄音音長 [彈奏碼] = “2.”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) > 6 且 到數(shù)值 (錄音音長 [彈奏碼]) ≤ 8)
錄音音長 [彈奏碼] = “2”
.判斷 (到數(shù)值 (錄音音長 [彈奏碼]) > 10 且 到數(shù)值 (錄音音長 [彈奏碼]) ≤ 12)
錄音音長 [彈奏碼] = “1”
.默認
錄音音長 [彈奏碼] = “1.”
.判斷結束
錄音文本 = 錄音文本 + 錄音音長 [彈奏碼] + “ ”
已執(zhí)行 = 真
.如果真結束
.如果真結束
已執(zhí)行 = 假
.子程序 _音波_被單擊
音值畫板.可視 = 假
音波畫板.可視 = 真
.子程序 _音值_被單擊
音值畫板.可視 = 真
音波畫板.可視 = 假
.子程序 _時鐘5_周期事件
.如果真 (媒體播放1.取位置 () = 媒體播放1.取長度 ())
時鐘1.時鐘周期 = 0
時鐘5.時鐘周期 = 0
媒體播放1.關閉 ()
播放.選中 = 假
是否暫停 = 假
.如果真結束
|