亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        模擬電子琴鍵盤輸入的樂譜生成軟件設(shè)計(jì)與實(shí)現(xiàn)

        2017-06-30 13:17:43李社蕾
        科技視界 2017年5期
        關(guān)鍵詞:電子琴琴鍵控件

        李社蕾

        【摘 要】論文的關(guān)鍵就是要實(shí)現(xiàn)輸出4個(gè)高八度以上的音域范圍,并有相應(yīng)的伴音輸出。具體要實(shí)現(xiàn)三個(gè)要求:(1)按對(duì)應(yīng)的鍵,輸出該鍵對(duì)應(yīng)的音;(2)按下即發(fā)聲,松開聲音即停止,按鍵多長(zhǎng)時(shí)間,發(fā)出多長(zhǎng)時(shí)間的聲音;(3)根據(jù)輸入,顯示音符簡(jiǎn)譜以及對(duì)時(shí)值的附加顯示。實(shí)現(xiàn)多音色,可調(diào)節(jié)音量,鍵盤及鼠標(biāo)輸入并發(fā)聲的電子琴(鋼琴)制譜軟件。

        【關(guān)鍵詞】模塊功能;模塊處理

        0 引言

        隨著計(jì)算機(jī)技術(shù)的發(fā)展進(jìn)步,人性化軟件逐漸成為我們生活中很重要的一部分,我們都會(huì)應(yīng)用大量的人性化軟件來滿足人們?nèi)找嬖鲩L(zhǎng)的精神文化需求。制譜軟件是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是新時(shí)代的催生物。它在現(xiàn)代音樂扮演著重要的角色,C#語言因?yàn)槠浔旧愍?dú)特的衍生方式,而具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)融入現(xiàn)代人們的生活中成為人類計(jì)算機(jī)應(yīng)用中不可替代的一部分。越來越多的人工智能產(chǎn)品都是由C#語言編寫程序控制的, C#語言簡(jiǎn)單易懂,而且也較易于對(duì)硬件進(jìn)行操作,所以它成了編寫人工智能產(chǎn)品程序的首選。論文關(guān)鍵就是應(yīng)用C#語言的Winmm庫(kù)來實(shí)現(xiàn)多音色,可調(diào)節(jié)音量,鍵盤及鼠標(biāo)輸入并發(fā)聲的電子琴(鋼琴)制譜軟件。

        1 模塊功能介紹及其設(shè)計(jì)

        1.1 輸入部分

        輸入情況設(shè)計(jì)為以下3種:(1)鍵盤輸入,通過對(duì)鍵盤輸入的監(jiān)聽,完成對(duì)按鍵狀態(tài)的記錄儲(chǔ)存,并發(fā)聲,同時(shí)將按鍵對(duì)應(yīng)的音頻音符(簡(jiǎn)譜)輸出顯示;(2)鼠標(biāo)輸入,通過對(duì)鼠標(biāo)位置,鼠標(biāo)左鍵狀態(tài)的同步監(jiān)聽,完成對(duì)鼠標(biāo)操作相關(guān)的音頻文件的發(fā)聲,以及音頻音符(簡(jiǎn)譜)輸出顯示;(3)Windows窗體中其他控件的鼠標(biāo)操作[14]。

        1.2 琴鍵定義部分

        (1)通過定義琴鍵類,將所有可能發(fā)生的琴鍵操作全部在這個(gè)類中表示出來,包括鍵名,熱鍵,琴鍵狀態(tài);

        (2)琴鍵面板類,通過開發(fā)環(huán)境中提供的畫板控件的相關(guān)操作,省去通過圖片建立模擬琴鍵的方式,直接將模擬琴鍵以圖畫的形式生動(dòng)地繪畫出來,包括面板中琴鍵對(duì)應(yīng)的音符(簡(jiǎn)譜),黑鍵(伴音)的音符(國(guó)際標(biāo)準(zhǔn)),通過構(gòu)造函數(shù)(初始化)的方式,定義并完善琴鍵畫板類所要實(shí)現(xiàn)的各種事件監(jiān)聽及響應(yīng)功能;

        (3)功能類,定義一個(gè)聲音集合,用于實(shí)現(xiàn)多種樂器音色模擬。在這三者中琴鍵面板類將作為本次設(shè)計(jì)的核心,該類將直接作用于用戶體驗(yàn)。見圖1琴鍵的分布以及圖2音符分布圖。

        論文選用的4組高八度音階,是winmm庫(kù)中對(duì)人類聽覺舒適度最適中的國(guó)際標(biāo)準(zhǔn)音階,在琴鍵位置的設(shè)計(jì)上,為了滿足4個(gè)八度,以及可能出現(xiàn)的多重和弦特別將1',2',1'',2'',3''增加一個(gè),這樣不僅能有效緩解和弦問題,同時(shí)提高了鍵盤模擬電子琴演奏的舒適度,本設(shè)計(jì)并沒有將黑鍵(伴音)添加鍵盤輸入,僅僅設(shè)置了鼠標(biāo)輸入的方式,根本原因有兩個(gè):(1)開發(fā)是所用電腦鍵盤大小有限,不便于實(shí)現(xiàn)雙排4階的八度按鍵排列方式;(2)在實(shí)際演奏中黑鍵的使用頻率遠(yuǎn)低于白鍵,所以沒有納入鍵盤排列。

        1.3 輸出顯示部分

        輸出結(jié)果是琴鍵對(duì)應(yīng)的標(biāo)準(zhǔn)音符音高的簡(jiǎn)譜既琴鍵標(biāo)示名內(nèi)容中的簡(jiǎn)譜,通過對(duì)窗體模塊的編程,添加文本空間,獲取按鍵對(duì)應(yīng)的簡(jiǎn)譜信息以及按鍵持續(xù)的時(shí)值,以文本形式輸出,在相應(yīng)模塊給出相應(yīng)的顯示,并且通過在窗體界面上添加控件的方式,對(duì)不同控件進(jìn)行編輯,以實(shí)現(xiàn)多種附加功能。

        詳見圖3窗體設(shè)計(jì)圖

        2 各模塊處理流程

        (1)鍵盤定義部分:就是定義好所用到的計(jì)算機(jī)鍵盤按鍵,模擬48鍵電子琴(鋼琴)的MIDI琴鍵,其中包括MIDI琴鍵類,琴鍵面板類兩大部分,通過對(duì)這兩部分的設(shè)計(jì),完成了課題主體的架構(gòu)設(shè)計(jì)。琴鍵面板類如圖4所示。

        其實(shí)鍵盤定義就是簡(jiǎn)單的在電腦鍵盤上找出4組合適的按鍵,以滿足課題中要求的4組高八度的音符,定義好每個(gè)按鍵對(duì)應(yīng)的發(fā)聲音符,這種定義要盡量滿足實(shí)際的鍵盤分布。然后,每個(gè)音符對(duì)應(yīng)的鍵盤熱鍵也要定義好。以上流程就是鍵盤定義的工作流程。其中省略了部分按鍵的重復(fù)定義部分。

        (2)輸入部分:實(shí)際上就是彈奏的時(shí)候,判斷被按下的是哪個(gè)按鍵,接收原理其實(shí)是每個(gè)按鍵都對(duì)應(yīng)一個(gè)鍵盤值,如果哪個(gè)按鍵被按下,該鍵的值就會(huì)送入相應(yīng)的程序處理模塊,對(duì)掃描碼進(jìn)行響應(yīng)的處理,致使發(fā)聲。輸入部分流程圖如圖3.7所示。

        首先定義每個(gè)按鍵所對(duì)應(yīng)的熱鍵,然后循環(huán)不斷的監(jiān)控接收被按下鍵的值;接收到一個(gè)按鍵的值,先判斷按鍵狀態(tài),進(jìn)一步做后續(xù)處理,包括發(fā)出聲音和在屏幕上顯示音符的字符樣式。

        (3)發(fā)聲部分:C#語言的WinMM庫(kù)中提供的函數(shù)已經(jīng)把對(duì)該硬件電路部分的操作封裝好,編程人員可以直接調(diào)用,只是要根據(jù)需要的不同而有所不同,發(fā)聲部分的難點(diǎn)在于多音色的定義,調(diào)用WinMM庫(kù)實(shí)現(xiàn)連續(xù)發(fā)生這兩點(diǎn)。

        (4)顯示部分:論文最終不僅要實(shí)現(xiàn)音符聲音的輸出,為了聲文并茂,還要在計(jì)算機(jī)屏幕上顯示出按下的鍵對(duì)應(yīng)的聲音來。比如按下“Z”鍵,它所對(duì)應(yīng)的聲音是低音的Do(.1),在發(fā)聲的時(shí)候同時(shí)在屏幕上顯示“.1”這樣的字符,同時(shí),通過對(duì)按鍵狀態(tài)的監(jiān)聽獲取到KeyDown到KeyUp過程所經(jīng)過的時(shí)間。這兩項(xiàng)就是需要輸出顯示的內(nèi)容。輸出顯示部分流程圖如圖3.3.5輸出顯示部分流程圖。首先程序要循環(huán)掃描計(jì)算機(jī)鍵盤是否有鍵被按下,如果有則開始計(jì)時(shí),截至到按鍵彈起,計(jì)時(shí)結(jié)束,輸出按鍵對(duì)應(yīng)音符(簡(jiǎn)樸)以及發(fā)聲時(shí)值,同時(shí)發(fā)出連續(xù)聲音。輸出部分的不容易掌握的部分集中在按鍵長(zhǎng)按狀態(tài)的單次字符輸出,為了解決這一問題,本文采用了調(diào)用System.Diagnostics.Stopwatch sw的方法,在按鍵按下式開始計(jì)時(shí),在按鍵抬起時(shí)結(jié)束計(jì)時(shí),同時(shí)將字符輸出的時(shí)間點(diǎn)延后在按鍵抬起時(shí),這樣的設(shè)計(jì)不僅解決的連續(xù)發(fā)生的問題,也將單次輸出按鍵音符(簡(jiǎn)譜)的目的輕松完成,同時(shí)還實(shí)現(xiàn)了對(duì)發(fā)生時(shí)值的計(jì)便于將其直接輸出在窗體中文本控件中。

        3 程序?qū)崿F(xiàn)

        3.1 總程序流程

        (1)做好鍵盤定義部分,即電腦按鍵和音節(jié)的對(duì)應(yīng)關(guān)系。

        (2)編寫程序接收鍵盤輸入,先判斷被按下的按鍵是否是琴鍵定義中的部分,如果是,獲取按鍵值監(jiān)聽按鍵狀態(tài)。對(duì)琴鍵定義部分中的相關(guān)按鍵,做相應(yīng)處理,發(fā)出對(duì)應(yīng)的聲音。例如按下的“Z”鍵,則調(diào)用發(fā)聲函數(shù),MidiKeys[m].isDown = true;發(fā)出“Z”鍵對(duì)應(yīng)的標(biāo)準(zhǔn)音。

        (3)輸出顯示,就是在電腦屏幕上顯示按下的鍵對(duì)應(yīng)的音符的字符樣式以及發(fā)音時(shí)值。

        最后,是完善程序的用戶體驗(yàn),既所謂的附加功能模塊,用于窗體中其他控件的可操作性編輯,包括:音色選擇,音量選擇,Richtextbox中的內(nèi)容存儲(chǔ)文本(.txt格式),打開文本(.txt格式)的附加功能等。

        3.2 程序運(yùn)行主要界面如圖5所示。

        至此,模擬電子琴鍵盤輸入的樂譜生成軟件設(shè)計(jì)與實(shí)現(xiàn)已經(jīng)基本完成。通過運(yùn)行,該設(shè)計(jì)可以順利實(shí)現(xiàn)4組標(biāo)準(zhǔn)音的輸出(低音、中音、次高音、高音的7個(gè)標(biāo)準(zhǔn)音),持續(xù)發(fā)音也得到了很好的解決,聲音不但可以很連續(xù)的輸出,而且還實(shí)現(xiàn)了多重音色選擇,音量控制,樂譜文本保存,打開演奏幫助文本的功能。

        【參考文獻(xiàn)】

        [1]陳愛萍,李聰.基于FPGA的樂器數(shù)字接口音樂FM合成器[J].電聲技術(shù),2008.

        [2]黃靜.MIDI系統(tǒng)在幼兒園音樂教學(xué)中的運(yùn)用[J].小學(xué)科學(xué):教師,2012.

        [3]董景.數(shù)字錄音的發(fā)展[J].音響技術(shù),2001,01.

        [4]王春明.MIDI技術(shù)的發(fā)展及其存在問題的解決[J].電聲技術(shù),2004.

        [5]曹玉娟.音樂噴泉交互設(shè)計(jì)平臺(tái)[D].浙江大學(xué),2007.

        [責(zé)任編輯:朱麗娜]

        猜你喜歡
        電子琴琴鍵控件
        基于AT89C51單片機(jī)的電子琴設(shè)計(jì)
        電子制作(2019年13期)2020-01-14 03:15:30
        給你的信
        名家名作(2019年4期)2019-08-27 05:37:25
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        琴鍵上的暢想
        電子琴
        黑白琴鍵上的愛
        就這樣玩會(huì)VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        自然醒
        樂在其中
        琴童(2006年7期)2006-07-18 09:39:58
        電子琴的自白
        琴童(2006年1期)2006-02-10 09:04:16
        美女露出奶头扒开内裤的视频| 国产一毛片| 99精品国产自产在线观看| 婷婷久久亚洲中文字幕| 欧洲美女黑人粗性暴交视频| 黄色a级国产免费大片| 精品一区二区av天堂| 日本老熟女一区二区三区| 亚洲国产精品一区二区成人片国内 | 真多人做人爱视频高清免费| 中文毛片无遮挡高潮| 蜜臀久久久精品国产亚洲av| 91九色免费视频网站| 国产成人精品电影在线观看| 国产乱人视频在线播放| 亚洲欧洲日产国产AV无码| 日韩女优在线一区二区| 国产精品无码一区二区三级| 成人综合网亚洲伊人| 国产自精品在线| 国产精品大片一区二区三区四区| 亚洲精品久久久www小说| 三上悠亚精品一区二区久久| 在线视频一区二区三区中文字幕| 视频在线观看一区二区三区| 四虎国产精品免费久久| 国产免费人成视频在线播放播| 国产影院一区二区在线 | 日韩精品免费av一区二区三区| 中文字幕乱码高清完整版| 亚洲丁香五月天缴情综合| 69av在线视频| 全国一区二区三区女厕偷拍| 国精产品一区一区三区有限在线 | 一本无码中文字幕在线观| 精品一区二区久久久久久久网站| 素人激情福利视频| 黄片小视频免费观看完整版| 野外少妇愉情中文字幕| 亚洲色图视频在线观看网站| 麻豆视频av在线观看|