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

正文內(nèi)容

樂譜繪制系統(tǒng)的方法研究與實(shí)現(xiàn)畢業(yè)論文-資料下載頁

2025-06-28 17:10本頁面
  

【正文】 空間,等下次再閱讀時效果會相當(dāng)顯著。本系統(tǒng)開發(fā)的標(biāo)注管理也功能是如此。本標(biāo)注不僅針對小節(jié)可以標(biāo)注,對單個音符同樣支持標(biāo)注功能。標(biāo)注具有一個特定圖標(biāo)的標(biāo)志,點(diǎn)擊圖標(biāo)時,標(biāo)注被選中,其對應(yīng)的標(biāo)注對象會被高亮。4) 文本管理:文本管理針對畫板上所有的文本信息,包括樂譜的作者、標(biāo)題、歌詞、標(biāo)注等。該文本允許用戶自由編輯,對文本的樣式同樣可做修改,比如文字的顏色、大小、粗細(xì)等。 符號管理模塊符號管理模塊負(fù)責(zé)所有與符號對象相關(guān)的多有操作。事實(shí)上,絕大部分符號在畫板上的存在形式都是依靠最常見也是最基本的音符、小節(jié)等存在的。而符號主要包括有音符符號、線條符號等。 1) 音符符號:依附于或者屬于音符的符號,比如說顫音、修飾音等,它們在圖形界面顯示上依附于基本音符存在。2) 線條符號:線條符號通常不依賴于特定的某個音符對象存在,它具有一定的時間跨度,而且起始和結(jié)束也有相關(guān)標(biāo)識。比如說常見的連音符號,一般情況下,線條符號所關(guān)聯(lián)的音符都會在同一行或同一頁,但特殊情況從不少見,有時會出現(xiàn)線條關(guān)聯(lián)的幾個音符存在于兩個頁面中,這時就需要將其換行進(jìn)行切割顯示,但是彼此之間必須是相互關(guān)聯(lián)的。具體體現(xiàn)就是,當(dāng)刪除掉其中某一部分時,另一頁的那部分也會自動被刪除掉。 數(shù)據(jù)I/O模塊數(shù)據(jù)I/O模塊負(fù)責(zé)所有的數(shù)據(jù)交換操作,包括MusicXML格式文件的信息讀取和保存、打印服務(wù)等。由于前面提到MusicXML格式在音樂領(lǐng)域?qū)儆诒容^通用的文件格式,也就是說絕大部分音樂記譜軟件都支持其數(shù)據(jù)交換,所以本軟件在未來的發(fā)展也將不會僅僅止步于本系統(tǒng),它可以將第三方軟件保留的數(shù)據(jù)導(dǎo)入并繪制成五線譜。打印機(jī)就是通過程序調(diào)用本地系統(tǒng)的打印設(shè)備進(jìn)行打印。本模塊中最核心的內(nèi)容是XML解析器,它控制著MusicXML文件的生成和讀取。 播放管理模塊播放管理模塊負(fù)責(zé)系統(tǒng)中樂譜的播放功能。在該模式下,用戶只能體驗(yàn)播放功能,不能進(jìn)行其他比如樂譜編輯、刪除等操作。用戶可根據(jù)喜好選擇任意位置開始播放,任意位置包括小節(jié)或單個音符;播放時,界面會顯示一個進(jìn)度條顯示播放進(jìn)度,當(dāng)用戶點(diǎn)擊暫停按鈕時,播放終止。 邏輯控制模塊邏輯控制模塊負(fù)責(zé)整個系統(tǒng)的業(yè)務(wù)邏輯處理,包括繪制時所必須的繪制策略、音符排列時所依據(jù)的排列算法以及UI層中的邏輯關(guān)系等。在本系統(tǒng)中,專門為控制層構(gòu)建了一個控制器,即Controller,通過Controller,負(fù)責(zé)系統(tǒng)的所有邏輯控制,它和繪制管理模塊都是系統(tǒng)最核心也是最基本的部分。1) 音符編輯控制:當(dāng)用戶編輯樂譜,添加新的音符或修改音符之后,系統(tǒng)就會自動判斷小節(jié)內(nèi)的剩余時長,并為樂譜添加休止符,一旦剩余時長不足以添加新的符時,系統(tǒng)就不允許用戶進(jìn)行添加了。2) 樂譜結(jié)構(gòu)控制:對UI層中的符號對象進(jìn)行樂理常識上的基本控制,保證樂譜數(shù)據(jù)的正確性,包括繪制策略和排列算法等。第四章 音樂記譜系統(tǒng)的實(shí)現(xiàn)與測試 繪制模塊主要負(fù)責(zé)系統(tǒng)的繪制部分,包括樂譜對象的繪制、樂譜顯示等。繪制的實(shí)質(zhì)是將音樂的UI對象按照合理的繪制策略排列組合成有邏輯的音樂樂譜圖,雖然對美觀不做太高要求,但基本的美感還是不能缺失的。那么接下來該小節(jié)就會針對繪制模塊的四個核心功能作出詳細(xì)講述:繪制策略、排列算法、選擇管理、標(biāo)注管理。 繪制樂譜實(shí)際上是將眾多UI對象按照樂理規(guī)則組合在一起,使其既具有樂譜的功能,又具有一定的視覺美感。那么想要達(dá)到這種效果,就必須為樂譜的每行寬度和小節(jié)長度作出限定。但由于每小節(jié)的長度不能固定死,是動態(tài)的,所以就應(yīng)該寫一種算法計(jì)算出小節(jié)最佳寬度。 音符繪制示意圖當(dāng)進(jìn)行UI繪制樂譜時,每一小節(jié)內(nèi)讀取的音符對象個數(shù)是可以確定的,而我們會給每個音符對象的寬度設(shè)置固定數(shù)值,這樣每個小節(jié)的長度就能確定下來,根據(jù)這種思路,依次將每個小節(jié)按照從左到右的順序橫向排列,直到當(dāng)前行的小節(jié)寬度之和超過行寬,這個時候,系統(tǒng)就自動把最后一個小節(jié)放到下一列的首節(jié)位置。當(dāng)然為了美觀一些,小節(jié)之間也是有寬度設(shè)置的。但是這樣一來,很可能上一小節(jié)的內(nèi)容會延伸到下一節(jié),使得樂譜的可觀性不強(qiáng),所以在判斷每一行的小節(jié)總寬度時,如果超出該長度就將折中處理,將該行的空隙部分減小。 上述只是一種簡化過程,它實(shí)際是把UI音樂對象和其屬性封裝成一個整體按照樂理規(guī)則注入到小節(jié)中。但在實(shí)際操作中,小節(jié)內(nèi)的對象其實(shí)遠(yuǎn)遠(yuǎn)不止這兩個,還包括其他的符號,而且這些符號其中很多也會對音符的疏密和寬度造成影響,并不好把握。本系統(tǒng)采用以上設(shè)計(jì)思路,基本上可以比較良好的繪制出可觀性較強(qiáng)的樂譜。在計(jì)算小節(jié)被壓縮時,算法會調(diào)用redrawMeasurePart()這個方法,即重繪小節(jié)內(nèi)容。在這個方法中包含了繪制小節(jié)的所有內(nèi)容,包括繪制策略、排列的規(guī)則等。 而在繪制的時候我們也需要這樣一個類,它應(yīng)該包含繪制某一行所需要的關(guān)鍵參數(shù)。其實(shí)繪制并不是只著眼于該音符、小節(jié),還有頁繪制、樂譜繪制等。算法中的繪制對象都是相對最小單位的繪制。繪制時,上層的繪制方法會一層一層調(diào)用最底層的的繪制方法,嚴(yán)格遵守面向?qū)ο蟮脑O(shè)計(jì)思想。 繪制策略類圖 排列算法 在樂譜的繪制中,音符排列方式必須按照樂理規(guī)則進(jìn)行組合,而不是混亂的[16]。為了更好的滿足繪制需求,本系統(tǒng)采用了將多個聲部的相同坐標(biāo)位置的小節(jié)構(gòu)成某種意義上的小節(jié)數(shù)組。由于頁上小節(jié)給用戶最直觀的是橫向小節(jié),所以小節(jié)組內(nèi)并行包含多個小節(jié)。更具體來說,就是需要將同一時刻符合條件的所有音符都放在同一小節(jié)組中,即形成一個新的數(shù)據(jù)小組,而在該小組中,所有數(shù)據(jù)都應(yīng)該具有相同的X坐標(biāo)。 音符時序排列示意圖 那么該算法的設(shè)計(jì)思路基本如下:為每個小節(jié)記錄當(dāng)前的音符累積時長,其初始值都為0。開始時,小節(jié)的開頭都對應(yīng)一個時間指針。 然后每隔一段時間,就挑出各小節(jié)中累積時長的最小值,然后判斷每小節(jié)當(dāng)前的累積時長是否等于它。如果相同,則將該小節(jié)的音符添加到數(shù)據(jù)結(jié)構(gòu)之中,并增加其累積時長。按次序判斷完每個小節(jié)后,就進(jìn)去下一個時間戳。 如此,直至所有小節(jié)音符全部判斷完畢。 選擇管理選擇管理在在線記譜軟件中也是較為常見的功能。選擇的對象可以是單個音符,也可以整個小節(jié)[17]。當(dāng)選中對象時,該對象會有高亮,再次選中時,則上一次被選中的對象高亮消失,轉(zhuǎn)移到當(dāng)前對象;而當(dāng)用戶直接點(diǎn)擊畫板時,所有對象的高亮狀態(tài)消失。這和CheckBox當(dāng)中的反選功能較為類似。本系統(tǒng)所支持的選擇對象處了一些基本符號之外,主要還是小節(jié)音符。 小節(jié)及音符類圖本系統(tǒng)采用的是偏于集中式的管理,當(dāng)然還有分散式管理。分散式不需要管理者本身創(chuàng)建新的對象,當(dāng)被選擇的對象監(jiān)聽到鼠標(biāo)的點(diǎn)擊事件時,就會自動高亮或取消高亮狀態(tài)。由于在高亮之前還需要將上一個被選中對象的高亮對象取消,所以在選中之前都要判斷所有可能會被選中的對象,其高亮狀態(tài)是否被取消。這方式使用起來資源消耗太大并不適合該系統(tǒng)。集中式管理將畫板作為選擇管理的核心。當(dāng)用戶需要某對象高亮?xí)r,該對象就會自己注冊一個鼠標(biāo)監(jiān)聽事件,那么自然的,為了達(dá)到這種效果,最好的做法是為其創(chuàng)建一個接口,所有想要此監(jiān)聽功能的對象都可實(shí)現(xiàn)該接口。 標(biāo)注管理 設(shè)計(jì)中,標(biāo)注時有有兩個狀態(tài),即打開和關(guān)閉狀態(tài)。默認(rèn)是關(guān)閉狀態(tài),只顯示標(biāo)注的圖標(biāo);當(dāng)用戶點(diǎn)擊圖標(biāo)想進(jìn)行標(biāo)注時,文本就會顯示出來,標(biāo)記圖標(biāo)則關(guān)閉。 標(biāo)注效果圖標(biāo)注對象本身是繼承自JPanel組件,而該面板邏輯上是由圖標(biāo)面板和文字編輯區(qū)組成。圖標(biāo)面板上繪制圖標(biāo),文字編輯區(qū)編輯文字。默認(rèn)圖標(biāo)顯示,文字編輯區(qū)隱藏。 標(biāo)注面板打開與關(guān)閉UI示意圖 圖上p1為圖標(biāo)面板,p2為文字編輯區(qū)。用戶點(diǎn)擊標(biāo)注之前,圖標(biāo)大小等于p面板大小,所以p2就相當(dāng)于被隱藏了;點(diǎn)擊圖標(biāo)后,p1恢復(fù)正常大小,這時文本區(qū)就顯示出來了。 符號管理 現(xiàn)在在音樂領(lǐng)域中涉及到的音符表現(xiàn)形式,基本上對小節(jié)時長不會有什么影響,而是主要依賴于小節(jié)對象等存在[18]。所以在樂譜軟件中,最終的符號都是作為葉子節(jié)點(diǎn)存在于樂譜樹狀圖之中。 標(biāo)注面板打開與關(guān)閉的 UI 示意圖 在繪制過程中,音符符號和小節(jié)符號的形狀大都是不可變動的。對于上面講到的線條符號,由于與之關(guān)聯(lián)的符號肯定不止一個,所以它的位置可以隨用戶自由變動,而形狀也會因?yàn)樽鴺?biāo)的變動而受到影響。當(dāng)線條關(guān)聯(lián)的幾個音符符號處于不同的行中,那么符號會根據(jù)策略換行。此時,該符號對象就會被切分成兩部分[19]。這兩部分相互關(guān)聯(lián),刪除一部分另一部分也會被消除。在具體設(shè)計(jì)中,線條對象也繼承自JPanel,該類時Java中進(jìn)行UI繪制的輕量級容器,非常實(shí)用。 播放管理 播放模塊是記譜軟件必不可少的功能模塊,它負(fù)責(zé)對繪制成功樂譜文件的播放。播放中有一根進(jìn)度指針指向樂譜的播放進(jìn)度,每播放一個音符對象時,指針就指向該對象,播放完后,指針跳向下一個音符。本系統(tǒng)是通過調(diào)用MINI接口實(shí)現(xiàn)播放功能的,實(shí)現(xiàn)過程如下:1. 將音符中符號對象按照時間戳進(jìn)行排列。2. 根據(jù)順序在MINI中生成mini事件序列。3. 調(diào)用方法播放該mini事件。 播放效果圖 播放首先要將音符對象按時間戳排列。處在相同Y坐標(biāo)的音符都是在同一時刻發(fā)生的,所以樂理播放規(guī)則和本系統(tǒng)的排列算法在想要達(dá)到的效果上不謀而合。其次,將音符的時序序列裝換成mini事件序列,可以通過調(diào)用MINI接口實(shí)現(xiàn),最后再調(diào)用可播放該mini事件的序列器,就可最終實(shí)現(xiàn)用戶播放功能。 其實(shí)在實(shí)現(xiàn)播放功能中,還需要將播放進(jìn)度指針和播放的音符移動保持一致。這顯然需要創(chuàng)建一個監(jiān)聽事件接口來實(shí)現(xiàn),然后讓MINI播放器實(shí)現(xiàn)該接口。在播放時,每播放完一個時間戳,就產(chǎn)生一個監(jiān)聽事件,播放器收到通知后就會自動調(diào)用畫板將畫板上的進(jìn)度指針向后移動一個時間戳,達(dá)到同步效果。第5章 系統(tǒng)測試測試是軟件開發(fā),甚至是所有類型的開發(fā)的工作中至關(guān)重要的一個環(huán)節(jié)[20]。它是 系統(tǒng)可以正常運(yùn)行的保障,同時也是提高代碼健壯性、系統(tǒng)穩(wěn)定性的重要手段。軟件測試根據(jù)分類的方向不同,可以分為白盒測試和黑盒測試,或者是靜態(tài)測試和動態(tài)測試。靜態(tài)測試主要指開發(fā)過程中的非代碼性測試,比如文檔檢查等;而動態(tài)測試則主要針對系統(tǒng)的代碼、功能等進(jìn)行測試。本系統(tǒng)在設(shè)計(jì)與實(shí)現(xiàn)完成之后,同樣經(jīng)過了各種測試。下面對動態(tài)測試中的功能測試的詳細(xì)結(jié)果,進(jìn)行展示分析。 測試環(huán)境系統(tǒng)核心部分主要是記譜內(nèi)核。由于本系統(tǒng)面向的對象主要是網(wǎng)頁端,所以對運(yùn)行環(huán)境有基本的要求。;對CPU的要求也不高,一般電腦都可達(dá)標(biāo);內(nèi)存方面最好有2G或以上,這樣運(yùn)行起來就更快。 功能測試 功能測試涉及到系統(tǒng)的方方面面,所以在細(xì)節(jié)上的描述需要做到盡可能更加詳盡,具體來說就是通過用戶體驗(yàn)來進(jìn)行詳細(xì)記錄。首先需要創(chuàng)建一個樂譜文件,編輯時將樂譜拍號置成2/4拍,隨后在小節(jié)中分別添加一個八分音符和十六分音符,并修改標(biāo)題及作者等,其測試結(jié)果參見表 51。表51 樂譜基本功能測試表用例用戶輸入操作步驟期待結(jié)果結(jié)果新建樂譜無1) 選擇菜單:新建樂譜2) 點(diǎn)擊確認(rèn)畫板上出現(xiàn)一個默認(rèn)樂譜通過改變拍號無1) 選擇第一個小節(jié)2) 點(diǎn)擊拍號,選擇2/4樂譜兩個聲部的第一小節(jié)均變成2/4拍通過添加音符無1) 點(diǎn)擊面板上的八分符2) 在第一個小節(jié)內(nèi)點(diǎn)擊按鈕,生成 8 分音符3) 點(diǎn)擊符號面板上 16 分音符4) 在第一個小節(jié)內(nèi) 8 分音符之后的休止符上點(diǎn)擊,成 16分休止符 樂譜上的第一個小節(jié)變成了四個音符,其中一個8分音符,兩個16 分音符,一個 4 分休止符通過添加小節(jié)小節(jié)數(shù)目:“2”1) 選中最后一個小節(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通過以下對音符編輯方面作專門測試。表 52 音符編輯測試用例表用例用戶輸入操作步驟期待結(jié)果結(jié)果音符編輯無1) 點(diǎn)擊四分音符2) 在第一個小節(jié)的最后一個四分休止符處點(diǎn)擊四分休止符變?yōu)樗姆忠舴ㄟ^刪除音符無1) 選中第一個 小節(jié)的第一個音符2) 點(diǎn)擊符號面板的刪除按鈕第一個八分音符變?yōu)榘朔中葜狗苋∠ㄟ^最后是關(guān)于播放、導(dǎo)入及導(dǎo)出的測試。表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)了一個功能強(qiáng)大,簡便實(shí)用的在線音樂記譜系統(tǒng)。系統(tǒng)工作主要分三期完成的,即前期工作、中期工作和后期工作。前期工作主要選取比較常用的幾款記譜軟件,對其功能以及用戶體驗(yàn)感進(jìn)行相關(guān)對比,最后制定出一套完整的需求方案和功能設(shè)計(jì)。在前期調(diào)研工作當(dāng)中,發(fā)現(xiàn)MusicXML格式文件在很多記譜軟件中運(yùn)用的非常廣泛,并且也確實(shí)簡便實(shí)用,所以就選取了MusicXML作為最終的音樂數(shù)據(jù)交換格式。而作為一款實(shí)用軟件,為了便于未來的業(yè)務(wù)拓展增強(qiáng)日后的維護(hù)性,系統(tǒng)還在Mus
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1