freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

樂譜繪制系統(tǒng)的方法研究與實(shí)現(xiàn)畢業(yè)論文(參考版)

2025-07-01 17:10本頁面
  

【正文】 而作為一款實(shí)用軟件,為了便于未來的業(yè)務(wù)拓展增強(qiáng)日后的維護(hù)性,系統(tǒng)還在Mus。前期工作主要選取比較常用的幾款記譜軟件,對其功能以及用戶體驗(yàn)感進(jìn)行相關(guān)對比,最后制定出一套完整的需求方案和功能設(shè)計(jì)。表53 播放、導(dǎo)入導(dǎo)出測試用例用例用戶輸入操作步驟期待結(jié)果結(jié)果開始播放無點(diǎn)擊播放按鈕樂譜播放,發(fā)出聲音通過導(dǎo)出MusicXML文件名1) 選中菜單,點(diǎn)擊導(dǎo)出2) 選擇導(dǎo)出地址,輸入文件名該地址出現(xiàn)以該文件名命名的XML文件通過導(dǎo)入MusicXML無1) 選中菜單,點(diǎn)擊導(dǎo)入2) 選擇導(dǎo)入地址,確定后輸入文件名讀入剛才導(dǎo)入的樂譜文件通過 33 總結(jié)本文針對現(xiàn)在市場上對記譜軟件的具體需求,實(shí)現(xiàn)了一個(gè)功能強(qiáng)大,簡便實(shí)用的在線音樂記譜系統(tǒng)。表51 樂譜基本功能測試表用例用戶輸入操作步驟期待結(jié)果結(jié)果新建樂譜無1) 選擇菜單:新建樂譜2) 點(diǎn)擊確認(rèn)畫板上出現(xiàn)一個(gè)默認(rèn)樂譜通過改變拍號無1) 選擇第一個(gè)小節(jié)2) 點(diǎn)擊拍號,選擇2/4樂譜兩個(gè)聲部的第一小節(jié)均變成2/4拍通過添加音符無1) 點(diǎn)擊面板上的八分符2) 在第一個(gè)小節(jié)內(nèi)點(diǎn)擊按鈕,生成 8 分音符3) 點(diǎn)擊符號面板上 16 分音符4) 在第一個(gè)小節(jié)內(nèi) 8 分音符之后的休止符上點(diǎn)擊,成 16分休止符 樂譜上的第一個(gè)小節(jié)變成了四個(gè)音符,其中一個(gè)8分音符,兩個(gè)16 分音符,一個(gè) 4 分休止符通過添加小節(jié)小節(jié)數(shù)目:“2”1) 選中最后一個(gè)小節(jié)2) 點(diǎn)擊符號面板“小節(jié)”選項(xiàng)卡中的添加小節(jié)3) 修改小節(jié)數(shù)量,設(shè)置為 24) 點(diǎn)擊確定畫板上的小節(jié)組數(shù)量變?yōu)?6通過修改標(biāo)題作者標(biāo)題:“test”作者:“jj”1) 雙擊標(biāo)題,標(biāo)題框處于編輯狀態(tài)2) 在標(biāo)題框中輸入 test3) 雙擊作者,作者框處于編輯狀態(tài)4) 在作者框中輸入 jj標(biāo)題和作者分別變成了test和jj通過以下對音符編輯方面作專門測試。 功能測試 功能測試涉及到系統(tǒng)的方方面面,所以在細(xì)節(jié)上的描述需要做到盡可能更加詳盡,具體來說就是通過用戶體驗(yàn)來進(jìn)行詳細(xì)記錄。由于本系統(tǒng)面向的對象主要是網(wǎng)頁端,所以對運(yùn)行環(huán)境有基本的要求。下面對動(dòng)態(tài)測試中的功能測試的詳細(xì)結(jié)果,進(jìn)行展示分析。靜態(tài)測試主要指開發(fā)過程中的非代碼性測試,比如文檔檢查等;而動(dòng)態(tài)測試則主要針對系統(tǒng)的代碼、功能等進(jìn)行測試。它是 系統(tǒng)可以正常運(yùn)行的保障,同時(shí)也是提高代碼健壯性、系統(tǒng)穩(wěn)定性的重要手段。在播放時(shí),每播放完一個(gè)時(shí)間戳,就產(chǎn)生一個(gè)監(jiān)聽事件,播放器收到通知后就會(huì)自動(dòng)調(diào)用畫板將畫板上的進(jìn)度指針向后移動(dòng)一個(gè)時(shí)間戳,達(dá)到同步效果。 其實(shí)在實(shí)現(xiàn)播放功能中,還需要將播放進(jìn)度指針和播放的音符移動(dòng)保持一致。處在相同Y坐標(biāo)的音符都是在同一時(shí)刻發(fā)生的,所以樂理播放規(guī)則和本系統(tǒng)的排列算法在想要達(dá)到的效果上不謀而合。3. 調(diào)用方法播放該mini事件。本系統(tǒng)是通過調(diào)用MINI接口實(shí)現(xiàn)播放功能的,實(shí)現(xiàn)過程如下:1. 將音符中符號對象按照時(shí)間戳進(jìn)行排列。 播放管理 播放模塊是記譜軟件必不可少的功能模塊,它負(fù)責(zé)對繪制成功樂譜文件的播放。這兩部分相互關(guān)聯(lián),刪除一部分另一部分也會(huì)被消除。當(dāng)線條關(guān)聯(lián)的幾個(gè)音符符號處于不同的行中,那么符號會(huì)根據(jù)策略換行。 標(biāo)注面板打開與關(guān)閉的 UI 示意圖 在繪制過程中,音符符號和小節(jié)符號的形狀大都是不可變動(dòng)的。 符號管理 現(xiàn)在在音樂領(lǐng)域中涉及到的音符表現(xiàn)形式,基本上對小節(jié)時(shí)長不會(huì)有什么影響,而是主要依賴于小節(jié)對象等存在[18]。 標(biāo)注面板打開與關(guān)閉UI示意圖 圖上p1為圖標(biāo)面板,p2為文字編輯區(qū)。圖標(biāo)面板上繪制圖標(biāo),文字編輯區(qū)編輯文字。默認(rèn)是關(guān)閉狀態(tài),只顯示標(biāo)注的圖標(biāo);當(dāng)用戶點(diǎn)擊圖標(biāo)想進(jìn)行標(biāo)注時(shí),文本就會(huì)顯示出來,標(biāo)記圖標(biāo)則關(guān)閉。當(dāng)用戶需要某對象高亮?xí)r,該對象就會(huì)自己注冊一個(gè)鼠標(biāo)監(jiān)聽事件,那么自然的,為了達(dá)到這種效果,最好的做法是為其創(chuàng)建一個(gè)接口,所有想要此監(jiān)聽功能的對象都可實(shí)現(xiàn)該接口。這方式使用起來資源消耗太大并不適合該系統(tǒng)。分散式不需要管理者本身創(chuàng)建新的對象,當(dāng)被選擇的對象監(jiān)聽到鼠標(biāo)的點(diǎn)擊事件時(shí),就會(huì)自動(dòng)高亮或取消高亮狀態(tài)。本系統(tǒng)所支持的選擇對象處了一些基本符號之外,主要還是小節(jié)音符。當(dāng)選中對象時(shí),該對象會(huì)有高亮,再次選中時(shí),則上一次被選中的對象高亮消失,轉(zhuǎn)移到當(dāng)前對象;而當(dāng)用戶直接點(diǎn)擊畫板時(shí),所有對象的高亮狀態(tài)消失。 選擇管理選擇管理在在線記譜軟件中也是較為常見的功能。按次序判斷完每個(gè)小節(jié)后,就進(jìn)去下一個(gè)時(shí)間戳。 然后每隔一段時(shí)間,就挑出各小節(jié)中累積時(shí)長的最小值,然后判斷每小節(jié)當(dāng)前的累積時(shí)長是否等于它。 音符時(shí)序排列示意圖 那么該算法的設(shè)計(jì)思路基本如下:為每個(gè)小節(jié)記錄當(dāng)前的音符累積時(shí)長,其初始值都為0。由于頁上小節(jié)給用戶最直觀的是橫向小節(jié),所以小節(jié)組內(nèi)并行包含多個(gè)小節(jié)。 繪制策略類圖 排列算法 在樂譜的繪制中,音符排列方式必須按照樂理規(guī)則進(jìn)行組合,而不是混亂的[16]。算法中的繪制對象都是相對最小單位的繪制。 而在繪制的時(shí)候我們也需要這樣一個(gè)類,它應(yīng)該包含繪制某一行所需要的關(guān)鍵參數(shù)。在計(jì)算小節(jié)被壓縮時(shí),算法會(huì)調(diào)用redrawMeasurePart()這個(gè)方法,即重繪小節(jié)內(nèi)容。但在實(shí)際操作中,小節(jié)內(nèi)的對象其實(shí)遠(yuǎn)遠(yuǎn)不止這兩個(gè),還包括其他的符號,而且這些符號其中很多也會(huì)對音符的疏密和寬度造成影響,并不好把握。但是這樣一來,很可能上一小節(jié)的內(nèi)容會(huì)延伸到下一節(jié),使得樂譜的可觀性不強(qiáng),所以在判斷每一行的小節(jié)總寬度時(shí),如果超出該長度就將折中處理,將該行的空隙部分減小。 音符繪制示意圖當(dāng)進(jìn)行UI繪制樂譜時(shí),每一小節(jié)內(nèi)讀取的音符對象個(gè)數(shù)是可以確定的,而我們會(huì)給每個(gè)音符對象的寬度設(shè)置固定數(shù)值,這樣每個(gè)小節(jié)的長度就能確定下來,根據(jù)這種思路,依次將每個(gè)小節(jié)按照從左到右的順序橫向排列,直到當(dāng)前行的小節(jié)寬度之和超過行寬,這個(gè)時(shí)候,系統(tǒng)就自動(dòng)把最后一個(gè)小節(jié)放到下一列的首節(jié)位置。那么想要達(dá)到這種效果,就必須為樂譜的每行寬度和小節(jié)長度作出限定。那么接下來該小節(jié)就會(huì)針對繪制模塊的四個(gè)核心功能作出詳細(xì)講述:繪制策略、排列算法、選擇管理、標(biāo)注管理。第四章 音樂記譜系統(tǒng)的實(shí)現(xiàn)與測試 繪制模塊主要負(fù)責(zé)系統(tǒng)的繪制部分,包括樂譜對象的繪制、樂譜顯示等。1) 音符編輯控制:當(dāng)用戶編輯樂譜,添加新的音符或修改音符之后,系統(tǒng)就會(huì)自動(dòng)判斷小節(jié)內(nèi)的剩余時(shí)長,并為樂譜添加休止符,一旦剩余時(shí)長不足以添加新的符時(shí),系統(tǒng)就不允許用戶進(jìn)行添加了。 邏輯控制模塊邏輯控制模塊負(fù)責(zé)整個(gè)系統(tǒng)的業(yè)務(wù)邏輯處理,包括繪制時(shí)所必須的繪制策略、音符排列時(shí)所依據(jù)的排列算法以及UI層中的邏輯關(guān)系等。在該模式下,用戶只能體驗(yàn)播放功能,不能進(jìn)行其他比如樂譜編輯、刪除等操作。本模塊中最核心的內(nèi)容是XML解析器,它控制著MusicXML文件的生成和讀取。由于前面提到MusicXML格式在音樂領(lǐng)域?qū)儆诒容^通用的文件格式,也就是說絕大部分音樂記譜軟件都支持其數(shù)據(jù)交換,所以本軟件在未來的發(fā)展也將不會(huì)僅僅止步于本系統(tǒng),它可以將第三方軟件保留的數(shù)據(jù)導(dǎo)入并繪制成五線譜。具體體現(xiàn)就是,當(dāng)刪除掉其中某一部分時(shí),另一頁的那部分也會(huì)自動(dòng)被刪除掉。2) 線條符號:線條符號通常不依賴于特定的某個(gè)音符對象存在,它具有一定的時(shí)間跨度,而且起始和結(jié)束也有相關(guān)標(biāo)識(shí)。而符號主要包括有音符符號、線條符號等。 符號管理模塊符號管理模塊負(fù)責(zé)所有與符號對象相關(guān)的多有操作。4) 文本管理:文本管理針對畫板上所有的文本信息,包括樂譜的作者、標(biāo)題、歌詞、標(biāo)注等。本標(biāo)注不僅針對小節(jié)可以標(biāo)注,對單個(gè)音符同樣支持標(biāo)注功能。這就好比讀者閱讀時(shí),書本專門為讀者設(shè)立一片可作為注解的獨(dú)立空間,等下次再閱讀時(shí)效果會(huì)相當(dāng)顯著。所以繪制管理模塊也需要一個(gè)排列算法進(jìn)行邏輯判斷。2) 排列算法:當(dāng)繪制樂譜時(shí),制作者常常會(huì)遇到同一時(shí)刻多音符排列的問題。但是由于每行包括多個(gè)小節(jié),每個(gè)小節(jié)內(nèi)音符個(gè)數(shù)也不一樣,導(dǎo)致小節(jié)的寬度也不應(yīng)該是靜態(tài)的,而是根據(jù)某種良好的繪制策略,既可以保持行中小節(jié)的長度不變,也要使小節(jié)不顯得太寬松或太擁擠。 繪制管理模塊 繪制管理模塊控制著關(guān)于樂譜繪制相關(guān)的一切邏輯和行為,它的實(shí)質(zhì)是將樂譜數(shù)據(jù)結(jié)構(gòu)當(dāng)中的有關(guān)UI對象按照樂理規(guī)則排列組合在一起,顯示到畫板上,而最直觀的說法就是將樂譜內(nèi)容呈現(xiàn)給用戶。系統(tǒng)按照從簡到繁,由上到下的設(shè)計(jì)理念,將功能模塊設(shè)計(jì)順序安排如下:繪制管理模塊、符號管理模塊、數(shù)據(jù)I/O模塊、播放管理模塊、邏輯控制模塊和用戶行為管理模塊。那么具體到細(xì)微的執(zhí)行操作上,UI層會(huì)調(diào)用Swing相關(guān)組件中的移除方法將對象從所屬的頁面刪除掉。系統(tǒng)內(nèi)的絕大部分音符符號對象都處于UI層和邏輯模型層之中,所以一般來說,這兩個(gè)層應(yīng)該保持相對獨(dú)立,這樣在處理對象操作時(shí)才不會(huì)混亂邏輯關(guān)系,以至發(fā)生誤刪或新增的行為。如果以C音為do音,那么它所形成的音列就叫C大調(diào)音列。那么什么是拍號呢?舉例來說,2|4,在數(shù)學(xué)中表示的四分之二,在音樂中則表示以四分音符為一拍,每小節(jié)有兩拍。在某種程度上,和弦音和組成它的單音符其實(shí)是非常類似的。時(shí)長是由振動(dòng)的時(shí)間決定的,振動(dòng)時(shí)間越長,則音越長;音高則由音的頻率決定的,振動(dòng)頻率越高,則音越高,相反則越低。在畫板上,我們通常用橢圓形作為音符符頭,然后再加上符桿和符尾就構(gòu)成了最基本的符號。 樂譜數(shù)據(jù)結(jié)構(gòu)示意圖 由圖可看出,樂譜作為整體存在于樹狀結(jié)構(gòu)的根節(jié)點(diǎn),表示為score,score包含一頁或多頁,每頁又包含多行,每行之中有多個(gè)小節(jié)組,每個(gè)小節(jié)組內(nèi)包含多個(gè)小節(jié),每個(gè)小節(jié)又有兩個(gè)音部,最后每個(gè)音部之中又包含多個(gè)音符。 樂譜數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 樂譜數(shù)據(jù)對象包含了幾乎所有繪制樂譜所需要的音樂符號以及上下層間的基本關(guān)系。系統(tǒng)通過邏輯控制器將需求反饋給畫板,然后畫板通過樂譜繪制器調(diào)用相關(guān)負(fù)責(zé)的組件開始繪制工作;而需要導(dǎo)入或?qū)С鑫募r(shí),直接讓畫板調(diào)用XML解析器進(jìn)行解析即可。 :邏輯控制模塊的主要控制器,負(fù)責(zé)處理系統(tǒng)的業(yè)務(wù)邏輯,具體來說就是對用戶執(zhí)行的對樂譜的操作進(jìn)行信息接收并做出事件響應(yīng)。 3. MINI播放器:負(fù)責(zé)樂譜的播放。 系統(tǒng)結(jié)構(gòu)示意圖 :用于繪制樂譜,是繪制模塊的主要控制器。而實(shí)際上畫板在響應(yīng)系統(tǒng)行為時(shí)不是直接處理的,而是交給相對應(yīng)的組件處理,此時(shí)畫板就相當(dāng)于一個(gè)第三方的中央控制器,它會(huì)委托功能組件進(jìn)行管理。一方面畫板容納了幾乎所有的音樂對象的集合,所有和圖形符號相關(guān)的對象都必須在畫板上排列組合顯示;另一方面,畫板在繪制時(shí)承擔(dān)著顯示的角色,它作為系統(tǒng)和用戶交互的橋梁發(fā)揮著至關(guān)重要的作用。 經(jīng)過以上對比后,本系統(tǒng)最終選擇了UI數(shù)據(jù)與邏輯數(shù)據(jù)相結(jié)合的形式。但是在實(shí)際的實(shí)施過程中,我們就會(huì)發(fā)現(xiàn),其實(shí)要實(shí)現(xiàn)局部刷新的話,那么就需要對刷新的范圍有相當(dāng)精準(zhǔn)的定位,還要考慮如何保證刷新后局部信息的浮動(dòng)范圍,這樣做程序的復(fù)雜度也是變高了,不容易操作。而事實(shí)是,我們完全沒有必要僅僅為了達(dá)到刷新效果而浪費(fèi)大量的資源。但是如果根據(jù)前面的方法來不斷刷新顯示的話,對于系統(tǒng)來說,其工作量肯定是是相當(dāng)龐大的,因?yàn)槊看嗡⑿?,之前在畫板上繪制好的圖形就會(huì)被洗掉,然后還必須根據(jù)數(shù)據(jù)邏輯再重新生成。MVC模式是將表示層和邏輯層完全分離開,讓其相互間自然解耦。這里在設(shè)計(jì)時(shí)可以有兩種選擇方式,UI數(shù)據(jù)和邏輯數(shù)據(jù)相結(jié)合、UI數(shù)據(jù)和邏輯數(shù)據(jù)相分離。這就是前后臺(tái)數(shù)據(jù)交換的大致流程了。當(dāng)然UI數(shù)據(jù)是不能直接就存在的,必須人為的創(chuàng)建,那么這種最底層的數(shù)據(jù)就是所謂的邏輯數(shù)據(jù)了。所以對于不同的音樂元素需要定義成不同的對象表示,而樂譜的最終形態(tài)就是由不同的UI對象排列拼合而成的。 核心架構(gòu)設(shè)計(jì) 本系統(tǒng)采用的是Java的Swing實(shí)現(xiàn)的。MusicXML格式文件是存在于目前市場上所有音樂記譜軟件所支持的對樂譜信息進(jìn)行交換的標(biāo)準(zhǔn)格式文件,而尤其值得注意的是,為了加上本系統(tǒng)所持有的特殊屬性信息,本項(xiàng)目開發(fā)小組對MusicXML文件在原有基礎(chǔ)上加以擴(kuò)展,延伸了一些新的特性。那么顯而易見的,交織在本系統(tǒng)和第三方軟件,系統(tǒng)和用戶及系統(tǒng)內(nèi)部與插件之間樂譜信息的識(shí)別和交換的媒介核心就是MusicXML文件。另一方面,當(dāng)用戶本身有已經(jīng)編輯保存好的MusicXML格式文件時(shí),可以選擇自行導(dǎo)入到本系統(tǒng)中識(shí)別,其中該MusicXML格式文件包括以文本方式和照片形式存在的文件。而作為音樂數(shù)據(jù)交換和存儲(chǔ)格式標(biāo)準(zhǔn)的MusicXML技術(shù),在本系統(tǒng)之中也應(yīng)該作為核心存在展開的。接下來本次小節(jié)將會(huì)圍繞三個(gè)方面進(jìn)行詳細(xì)介紹:總體框架設(shè)計(jì)、核心架構(gòu)設(shè)計(jì)以及具體的樂譜數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。 3) 可播放樂譜文件,暫停、快進(jìn)也支持。 2) 對樂譜做出相關(guān)文本標(biāo)注和注釋。 6) 在最后的試圖模式之下,用戶可以對在系統(tǒng)生成之外的對音符、小節(jié)等對象添各種自定義符號,既然可添加,刪除修改等操作也是必不可少的。 4) 用戶可以增加、刪除或修改譜表。 2) 音符在支持單附點(diǎn)的同時(shí),還必須支持多附點(diǎn)以及多種連音符,為了保證樂譜的完整性還需對變調(diào)等加以支持。不但能允許社會(huì)音樂教育系統(tǒng)的各方面需求,同時(shí)也能滿足大部分音樂愛好者對記譜的要求。對于一個(gè)好的軟件來說,不僅能滿足相關(guān)專業(yè)領(lǐng)域中專業(yè)人士的大部分需求,還應(yīng)該能做到至少讓普通的用戶可以簡單操作,即做到普遍性。每當(dāng)用戶在固定的位置點(diǎn)擊鼠標(biāo)時(shí),通過系統(tǒng)內(nèi)部算法就會(huì)在該位置按照樂理規(guī)則生成相應(yīng)音符;而在視圖模式下,用戶可以根據(jù)需求選擇各種音樂符號對象,然后進(jìn)行一系列的人性化操作,比如簡單的拖拽等。為了提高研究
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1