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

正文內(nèi)容

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

2025-07-09 15:53本頁面

【導讀】指導下進行的研究工作及取得的成果。盡我所知,除文中特別加以標注和。包含我為獲得及其它教育機構(gòu)的學位或?qū)W歷而使用過的材料。說明并表示了謝意。以贏利為目的前提下,學校可以公布論文的部分或全部內(nèi)容。其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻。的個人和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法。律后果由本人承擔。涉密論文按學校規(guī)定處理。類論文正文字數(shù)不少于萬字。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準用徒手畫

  

【正文】 sicXML 格式文件是存在于目前市場上所有音樂記譜軟件所支持的對樂譜信息進行交換的標準格式文件,而尤其值得注意的是,為了加上本系統(tǒng)所持有的特殊屬性信息,本項目開發(fā)小組對 MusicXML文件在原有基礎上加以擴展,延伸了一些新的特性。那么從圖 中就可以看出,新的MusicXML 格式內(nèi)部增多了譬如標注信息、文本等新內(nèi)容,大大加強了系統(tǒng)的擴展性和可移植性,這對 于本軟件未來的發(fā)展無疑十分有利的。 核心架構(gòu)設計 本系統(tǒng)采用的是 Java 的 Swing 實現(xiàn)的。由于樂譜當中有各種各樣的音樂元素,并且元素之間還得通過一定的樂理規(guī)則進行排列組合,最終滿足用戶對記譜軟件在樂譜編輯上的需求。所以對于不同的音樂元素需要定義成不同的對象表示,而樂譜的最終形態(tài)就是由不同的 UI 對象排列拼合而成的。 平時用戶所接觸到的真實可見的樂譜圖形就是俗稱的前臺數(shù)據(jù),即 UI 數(shù)據(jù)。當然UI 數(shù)據(jù)是不能直接就存在的,必須人為的創(chuàng)建,那么這種最底層的數(shù)據(jù)就是所謂的邏輯數(shù)據(jù)了。 UI 數(shù)據(jù)直接和用戶進行交互,比如頁面上顯示的圖片界面等,用戶對這些數(shù)據(jù)可以直接操作,然后系統(tǒng)將數(shù)據(jù)反饋到后臺,此時我們也可以把后臺稱之為邏輯處理層,根據(jù)這些數(shù)據(jù),進行邏輯判斷并且保存好樂譜的所有信息后,系統(tǒng)就會將響應的結(jié)果以 UI 形式輸出到前臺。這就是前后臺數(shù)據(jù)交換的大致流程了。 系統(tǒng)核心架構(gòu)設計的關鍵之處就是如何處理好 UI 數(shù)據(jù)和邏輯數(shù)據(jù)之間的關系了。這里在設計時可以有兩種選擇方式, UI 數(shù)據(jù)和邏輯數(shù)據(jù)相結(jié)合、 UI 數(shù)據(jù)和邏輯數(shù)據(jù)相分離。圖 和圖 分別是兩者的結(jié)構(gòu)圖。 圖 UI 數(shù)據(jù)與邏輯數(shù) 據(jù)結(jié)合示意圖 武漢工程大學 畢業(yè)論文 17 圖 UI 數(shù)據(jù)與邏輯數(shù)據(jù)分離示意圖 前者相結(jié)合的模式固然在書寫程序的時候方便,將 UI 圖像數(shù)據(jù)和邏輯判斷數(shù)據(jù)都揉合在一起了,但是缺點也是顯而易見的,其在結(jié)構(gòu)上并不清晰,很容易造成視覺和思維上的混亂,即有 MVC 模式的實,卻不具備其形;但是后者就不一樣了, UI 數(shù)據(jù)和邏輯數(shù)據(jù)相互分離,它變現(xiàn)出了標準的 MVC 架構(gòu)設計模式。 MVC 模式是將表示層和邏輯層完全分離開,讓其相互間自然解耦。當用戶使用鼠標鍵盤對樂譜進行操作時,就自動觸發(fā)了相關監(jiān)聽事件,此時控制器就會將當前的狀態(tài)記錄下來并傳給 邏輯層;在邏輯層數(shù)據(jù)改變后,該層就會把重新生成的數(shù)據(jù)發(fā)給 UI 顯示層,隨后 UI 層會根據(jù)獲得的數(shù)據(jù)在刷新之后顯示出不同的效果。但是如果根據(jù)前面的方法來不斷刷新顯示的話,對于系統(tǒng)來說,其工作量肯定是是相當龐大的,因為每次刷新,之前在畫板上繪制好的圖形就會被洗掉,然后還必須根據(jù)數(shù)據(jù)邏輯再重新生成。同時,對 UI 全局刷新也會產(chǎn)生一些新的狀態(tài)信息,對用戶之前的操作當然也要記錄下來,這無疑又降低了程序的可擴展性。而事實是,我們完全沒有必要僅僅為了達到刷新效果而浪費大量的資源。這個時候,可能有人就說,采用局部刷新行不行呢?只 在一定范圍內(nèi)進行刷新,其他范圍保持不變,這個方法好像可行。但是在實際的實施過程中,我們就會發(fā)現(xiàn),其實要實現(xiàn)局部刷新的話,那么就需要對刷新的范圍有相當精準的定位,還要考慮如何保證刷新后局部信息的浮動范圍,這樣做程序的復雜度也是變高了,不容易操作。但是,如果采用 UI 數(shù)據(jù)和邏輯數(shù)據(jù)相結(jié)合的方式,事情就變的簡單多了,它完全避免了刷新的困擾,同時系統(tǒng)的結(jié)構(gòu)也更為清晰。 經(jīng)過以上對比后,本系統(tǒng)最終選擇了 UI 數(shù)據(jù)與邏輯數(shù)據(jù)相結(jié)合的形式。在設計中,由于樂譜是最核心的元素,作為繪制樂譜的畫板不可避免的也成為了軟件的核 心容器。一方面畫板容納了幾乎所有的音樂對象的集合,所有和圖形符號相關的對象都必須在畫板上排列組合顯示;另一方面,畫板在繪制時承擔著顯示的角色,它作為系統(tǒng)和用戶交互的橋梁發(fā)揮著至關重要的作用。 武漢工程大學 畢業(yè)論文 18 從宏觀上來講,作為樂譜的容器和與用戶變向交互的核心,畫板控制著所有的界面圖形符號和各種邏輯控制,畢竟記譜軟件主要就是一款視覺感官軟件。而實際上畫板在響應系統(tǒng)行為時不是直接處理的,而是交給相對應的組件處理,此時畫板就相當于一個第三方的中央控制器,它會委托功能組件進行管理。從這方面進行模塊化劃分的話,就可以給出比較 細致的系統(tǒng)實現(xiàn)模塊了,具體參見圖 的形式。 圖 系統(tǒng)結(jié)構(gòu)示意圖 :用于繪制樂譜,是繪制模塊的主要控制器。 解析器:讀取或生成樂譜的 MusicXML 格式文件中的所有音樂相關信息,包括音樂符號,標注等。 3. MINI 播放器:負責樂譜的播放。 :主要用于記錄用戶的歷史信息,并通過用戶執(zhí)行的撤銷等操作進行還原。 :邏輯控制模塊的主要控制器,負責處理系統(tǒng)的業(yè)務邏輯,具體來說就是對用戶執(zhí)行的對樂譜的操作進行信息接 收并做出事件響應。 從圖 中可以看出,畫板是核心存在,而 XML 解析器、樂譜繪制器和邏輯控制器則是圍繞其展開的。系統(tǒng)通過邏輯控制器將需求反饋給畫板,然后畫板通過樂譜繪制器調(diào)用相關負責的組件開始繪制工作;而需要導入或?qū)С鑫募r,直接讓畫板調(diào)用 XML解析器進行解析即可。在所有過程中,我們可以看到畫板很少直接執(zhí)行命令,它通常針對不同的功能委托給相關組件處理。 樂譜數(shù)據(jù)結(jié)構(gòu)設計 樂譜數(shù)據(jù)對象包含了幾乎所有繪制樂譜所需要的音樂符號以及上下層間的基本關系。經(jīng)過一定的學習和了解之后,可知它是 一個非常精細的樹狀結(jié)構(gòu),從根節(jié)點到子節(jié)點到子孫節(jié)點逐漸向下延伸,其大致結(jié)構(gòu)參見圖 。 武漢工程大學 畢業(yè)論文 19 圖 樂譜數(shù)據(jù)結(jié)構(gòu)示意圖 由圖可看出,樂譜作為整體存在于樹狀結(jié)構(gòu)的根節(jié)點,表示為 score, score 包含一頁或多頁,每頁又包含多行,每行之中有多個小節(jié)組,每個小節(jié)組內(nèi)包含多個小節(jié),每個小節(jié)又有兩個音部,最后每個音部之中又包含多個音符。 樂譜作為數(shù)據(jù)交換的核心無疑是記譜系統(tǒng)中的重中之重,而音符作為樂譜顯示最常見最關鍵的對象,無疑也是不可忽視的。在畫板上,我們通常用橢圓形作為音符符頭,然后再加上符 桿和符尾就構(gòu)成了最基本的符號。音符通常具有時長和音高兩個最核心的屬性。時長是由振動的時間決定的,振動時間越長,則音越長;音高則由音的頻率決定的,振動頻率越高,則音越高,相反則越低。而在音樂中經(jīng)常見到的和弦音就是多個音符在垂直方向上互相疊加的結(jié)果,所以它們都具有相同的 y 坐標。在某種程度上,和弦音和組成它的單音符其實是非常類似的。當對和弦音當中的某個音符添加某些標注記號時,這些記號既可以屬于單個音符,也可以屬于和弦音符。那么什么是拍號呢?舉例來說, 2|4,在數(shù)學中表示的四分之二,在音樂中則表示以四分音符為一拍, 每小節(jié)有兩拍。音名就是音的名稱,簡譜代表了音高對比,從 1 到 7 為一個循環(huán),音名則表示了音的固定高度,即 C,D,E,F,G,A,B,其中 1 和 C 對應, 3 和 E 對應,以此類比。如果以 C 音為 do音,那么它所形成的音列就叫 C 大調(diào)音列。 除去對于樂譜數(shù)據(jù)結(jié)構(gòu)上的設計,還需要理解圖形用戶界面類方向上的邏輯處理。系統(tǒng)內(nèi)的絕大部分音符符號對象都處于 UI 層和邏輯模型層之中,所以一般來說,這兩個層應該保持相對獨立,這樣在處理對象操作時才不會混亂邏輯關系,以至發(fā)生誤刪或新增的行為。比如用戶點擊刪除對象時,系統(tǒng)接收到刪除命令,此 時 UI 層就會將該符號對象清除掉,而邏輯層則會找到與該對象相關的一系列對象,將它們和刪除對象之間的聯(lián)系完全清除,達到真正意義上的刪除。那么具體到細微的執(zhí)行操作上, UI 層會調(diào)用 Swing 相關組件中的移除方法將對象從所屬的頁面刪除掉。 武漢工程大學 畢業(yè)論文 20 功能模塊設計 經(jīng)過以上章節(jié)對在線記譜軟件在音樂教學中所做的的調(diào)查分析,本小節(jié)最終對系統(tǒng)的具體功能模塊作出了相應設計。系統(tǒng)按照從簡到繁,由上到下的設計理念,將功能模塊設計順序安排如下:繪制管理模塊、符號管理模塊、數(shù)據(jù) I/O 模塊、播放管理模塊、邏輯控制模塊和用戶行為管理 模塊。其中繪制管理模塊實質(zhì)上是將音符符號按照樂理和排列規(guī)則,組合在一起顯示到畫板上去,最終的顯示形態(tài)就是常見的五線譜;符號管理模塊作為音樂符號的控制核心,管理著幾乎所有的符號對象;數(shù)據(jù) I/O 模塊作為系統(tǒng)與第三方軟件交互的接口,負責所有與數(shù)據(jù)交換相關的功能,比如數(shù)據(jù)的導入導出等,其中最重要的也是必須要實現(xiàn)的就是對 MusicXML 格式數(shù)據(jù)的讀取和保存工作。 繪制管理模塊 繪制管理模塊控制著關于樂譜繪制相關的一切邏輯和行為,它的實質(zhì)是將樂譜數(shù)據(jù)結(jié)構(gòu)當中的有關 UI 對象按照樂理規(guī)則排列組合在一起, 顯示到畫板上,而最直觀的說法就是將樂譜內(nèi)容呈現(xiàn)給用戶。繪制管理模塊涉及到很多相關的繪制問題,最后可歸納為以下幾點: 1) 繪制策略:繪制樂譜時,樂譜的最左邊和最后邊音符的坐標是固定不變的,而且每一行的總寬度也應該相同。但是由于每行包括多個小節(jié),每個小節(jié)內(nèi)音符個數(shù)也不一樣,導致小節(jié)的寬度也不應該是靜態(tài)的,而是根據(jù)某種良好的繪制策略,既可以保持行中小節(jié)的長度不變,也要使小節(jié)不顯得太寬松或太擁擠。最好是當行寬不夠時,該行最后一節(jié)會自動被擠到下一行的第一小節(jié),然后依次排列;當行寬度過于稀松時,根據(jù)策略會將每行小節(jié)長度按比 例擴展。 2) 排列算法:當繪制樂譜時,制作者常常會遇到同一時刻多音符排列的問題。五線譜中那些音符的排列不是隨意散亂的,而是按照樂理規(guī)則有規(guī)律的進行組合,即在同一時刻發(fā)出的音樂中可能會包括多個音符,這時,就需要將這些音符的 y 坐標保持一致。所以繪制管理模塊也需要一個排列算法進行邏輯判斷。 3) 標注管理:標注功能在進行樂譜繪制時,無疑是十分實用的。這就好比讀者閱讀時,書本專門為讀者設立一片可作為注解的獨立空間,等下次再閱讀時效果會相當顯著。本系統(tǒng)開發(fā)的標注管理也功能是如此。本標注不僅針對小節(jié)可以標注,對單個音符同樣支持 標注功能。標注具有一個特定圖標的標志,點擊圖標時,標注被選中,其對應的標注對象會被高亮。 4) 文本管理:文本管理針對畫板上所有的文本信息,包括樂譜的作者、標題、歌詞、標注等。該文本允許用戶自由編輯,對文本的樣式同樣可做修改,比如文字的顏色、大小、粗細等。 武漢工程大學 畢業(yè)論文 21 符號管理模塊 符號管理模塊負責所有與符號對象相關的多有操作。事實上,絕大部分符號在畫板上的存在形式都是依靠最常見也是最基本的音符、小節(jié)等存在的。而符號主要包括有音符符號、線條符號等。 1) 音符符號:依附于或者屬于音符的符號,比如說顫音 、修飾音等,它們在圖形界面顯示上依附于基本音符存在。 2) 線條符號:線條符號通常不依賴于特定的某個音符對象存在,它具有一定的時間跨度,而且起始和結(jié)束也有相關標識。比如說常見的連音符號,一般情況下,線條符號所關聯(lián)的音符都會在同一行或同一頁,但特殊情況從不少見,有時會出現(xiàn)線條關聯(lián)的幾個音符存在于兩個頁面中,這時就需要將其換行進行切割顯示,但是彼此之間必須是相互關聯(lián)的。具體體現(xiàn)就是,當刪除掉其中某一部分時,另一頁的那部分也會自動被刪除掉。 數(shù)據(jù) I/O 模塊 數(shù)據(jù) I/O 模塊負責所有的數(shù)據(jù)交換操作,包括 MusicXML 格式文件的信息讀取和保存、打印服務等。由于前面提到 MusicXML 格式在音樂領域?qū)儆诒容^通用的文件格式,也就是說絕大部分音樂記譜軟件都支持其數(shù)據(jù)交換,所以本軟件在未來的發(fā)展也將不會僅僅止步于本系統(tǒng),它可以將第三方軟件保留的數(shù)據(jù)導入并繪制成五線譜。打印機就是通過程序調(diào)用本地系統(tǒng)的打印設備進行打印。 本模塊中最核心的內(nèi)容是 XML 解析器,它控制著 MusicXML 文件的生成和讀取。 播放管理模塊 播放管理模塊負責系統(tǒng)中樂譜的播放功能。在該模式下,用戶只能體驗播放功能,不能進行其他比如樂譜編 輯、刪除等操作。用戶可根據(jù)喜好選擇任意位置開始播放,任意位置包括小節(jié)或單個音符;播放時,界面會顯示一個進度條顯示播放進度,當用戶點擊暫停按鈕時,播放終止。 邏輯控制模塊 邏輯控制模塊負責整個系統(tǒng)的業(yè)務邏輯處理,包括繪制時所必須的繪制策略、音符排列時所依據(jù)的排列算法以及 UI 層中的邏輯關系等。在本系統(tǒng)中,專門為控制層構(gòu)建了一個控制器,即 Controller,通過 Controller,負責系統(tǒng)的所有邏輯控制,它和繪制管理模塊都是系統(tǒng)最核心也是最基本的部分。 1) 音符編輯控制:當用戶編輯樂譜,添加新的 音符或修改音符之后,系統(tǒng)就會自動判斷小節(jié)內(nèi)的剩余時長,并為樂譜添加休止符,一旦剩余時長不足以添加新的符時,系統(tǒng)就不允許用戶進行添加了。 武漢工程大學 畢業(yè)論文 22 2) 樂譜結(jié)構(gòu)控制:對 UI 層中的符號對象進行樂理常識上的基本控制,保證樂譜數(shù)據(jù)的正確性,包括繪制策略和排列算法等。 武漢工程大學 畢業(yè)論文 23 第四章 音樂記譜系統(tǒng)的實現(xiàn)與測試 繪制模塊 繪制模塊主要負責
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1