国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      樂曲再生裝置的制作方法

      文檔序號(hào):2823493閱讀:235來源:國(guó)知局
      專利名稱:樂曲再生裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種再生例如MIDI(Musical Instrument DigitalInterface樂器數(shù)字化接口)數(shù)據(jù)等樂譜信息的技術(shù)。本發(fā)明能夠應(yīng)用于例如移動(dòng)電話、PDA(Persona1 Digital Assistance個(gè)人數(shù)字助理)、游戲設(shè)備、MIDI專用設(shè)備等。
      背景技術(shù)
      利用樂譜信息再生樂曲的技術(shù)已知有例如MIDI。MIDI技術(shù)的公開文獻(xiàn)有例如下述專利文獻(xiàn)1。
      MIDI再生裝置已知有將多通道MIDI數(shù)據(jù)并行再生的裝置。通過使用多通道的MIDI再生裝置能夠同時(shí)再生例如旋律和伴奏。
      現(xiàn)有的多通道的MIDI再生裝置在各個(gè)通道中具備輸入FIFO(FirstIn First Out先入先出)、音序器(sequencer)、輸出FIFO及音源。音序器將MIDI消息的內(nèi)容進(jìn)行分析處理,變換為用來驅(qū)動(dòng)音源的信息(音源驅(qū)動(dòng)信息)。通常,各音序器通過MIDI再生裝置內(nèi)的1個(gè)CPU(Central Processing Unit中央處理單元)以軟件方式構(gòu)筑。
      眾所周知,MIDI消息的數(shù)據(jù)長(zhǎng)度因消息種類而異。而且,根據(jù)MIDI消息不同,也規(guī)定了可變的數(shù)據(jù)長(zhǎng)度。因此,各音序器所進(jìn)行的分析處理的進(jìn)度未必一致。例如,當(dāng)某個(gè)音序器結(jié)束了對(duì)1個(gè)MIDI消息的處理后轉(zhuǎn)移到下一個(gè)音序器的工作時(shí),在該下一個(gè)音序器,1個(gè)MIDI消息的輸入有時(shí)候尚未結(jié)束。
      因此,在多通道的MIDI再生裝置中,有時(shí)候不得不中途停止音序器的工作,進(jìn)入下一個(gè)音序器的工作。之所以需要等待工作中的音序器的處理結(jié)束,是因?yàn)槠渌粜蚱鞯墓ぷ饕苍诖似陂g停止,有時(shí)候無法進(jìn)行流暢的MIDI再生。
      因此,為了在1個(gè)CPU中執(zhí)行多通道的音序器,必須對(duì)各個(gè)音序器的分析處理狀態(tài)進(jìn)行適當(dāng)管理,當(dāng)工作在中途結(jié)束時(shí),保持其狀態(tài)。但是,由于MIDI消息的處理內(nèi)容及數(shù)據(jù)長(zhǎng)度多種多樣,為了進(jìn)行這種管理保持,需要制作復(fù)雜的程序。
      與此相對(duì),利用現(xiàn)有的OS(Operating System操作系統(tǒng))及調(diào)度程序等,通過多任務(wù)方式進(jìn)行音序器的切換,就能夠容易地實(shí)現(xiàn)上述管理保持。但是,在使用OS及調(diào)度程序等的情況下,需要大容量的存儲(chǔ)器(ROM(Read Only Memory只讀存儲(chǔ)器)或RAM(Random AccessMemory隨機(jī)存取存儲(chǔ)器)等)。特別是,在移動(dòng)電話的來電旋律再生電路等小型MIDI再生裝置中,難以搭載OS等。
      特開2001-51678號(hào)公報(bào)發(fā)明內(nèi)容本發(fā)明的課題是提供不使用OS及調(diào)度程序、能夠通過簡(jiǎn)單的程序?qū)崿F(xiàn)對(duì)多個(gè)音序器進(jìn)行狀態(tài)管理的樂曲再生裝置。
      本發(fā)明涉及一種通過適當(dāng)切換多個(gè)音序器來再生多通道樂曲的樂曲再生裝置。
      此外,本發(fā)明的特征在于,各個(gè)音序器具備讀出復(fù)原功能部,從輸入存儲(chǔ)器中讀取包含標(biāo)題信息、增量時(shí)間(Delta-time)及消息的樂曲信息,并將消息的運(yùn)行狀態(tài)(Running Status)復(fù)原;消息分析處理功能部,分析從讀出復(fù)原功能部輸入的標(biāo)題信息,進(jìn)行與增量時(shí)間相應(yīng)的時(shí)間消費(fèi),并對(duì)消息進(jìn)行分析處理,生成音源驅(qū)動(dòng)信息;寫入功能部,將消息分析處理功能部生成的音源驅(qū)動(dòng)信息寫入輸出存儲(chǔ)器;以及音序器控制功能部,使讀出復(fù)原功能部讀出并復(fù)原樂曲信息,使消息分析處理功能部分析標(biāo)題信息,在標(biāo)題信息適當(dāng)?shù)那闆r下,使消息分析處理功能部和寫入功能部進(jìn)行時(shí)間消費(fèi)和音源驅(qū)動(dòng)信息的生成以及音源驅(qū)動(dòng)信息的寫入;當(dāng)工作的音序器切換時(shí),結(jié)束工作的功能部的一部分或全部的工作狀態(tài)以這些功能部為單位保持下來。
      借助于本發(fā)明,將各個(gè)音序器分割為讀出復(fù)原功能部、消息分析處理功能部、寫入功能部及音序器控制功能部,以這些功能部為單位對(duì)狀態(tài)進(jìn)行個(gè)別管理;因此,能夠不使用OS及調(diào)度程序等而以簡(jiǎn)單的程序?qū)崿F(xiàn)多個(gè)音序器的狀態(tài)管理。


      圖1是概略表示實(shí)施方式的MIDI再生裝置的整體結(jié)構(gòu)的框圖。
      圖2是概略表示圖1所示的4通道MIDI音序器的結(jié)構(gòu)的功能框圖。
      圖3是用來說明圖2所示的音序器控制功能部的工作的流程圖。
      圖4是用來說明實(shí)施方式的MIDI再生裝置的標(biāo)題分析處理的概念圖。
      圖5是用來說明實(shí)施方式的MIDI再生裝置的時(shí)序管理處理的概念圖。
      圖6是用來說明實(shí)施方式的MIDI再生裝置的音源驅(qū)動(dòng)信息生成寫入處理的概念圖。
      圖7是表示圖2所示的讀出復(fù)原功能部、消息分析處理功能部及音序器控制功能部的分析處理狀態(tài)的圖表。
      具體實(shí)施例方式
      以下以將本發(fā)明應(yīng)用于4通道的MIDI再生裝置的情況為例,使用

      本發(fā)明的實(shí)施方式。此外,圖中各構(gòu)成成分的大小、形狀及配置關(guān)系只不過是以能夠理解本發(fā)明的程度所作的概略表示,另外,以下所說明的數(shù)值條件也只是示例。
      圖1是概略表示本實(shí)施方式的MIDI再生裝置的整體結(jié)構(gòu)的框圖。
      如圖1所示,本實(shí)施方式的MIDI再生裝置100具備4個(gè)輸入FIFO110-1~110-4、4通道的MIDI音序器120、4個(gè)輸出FIFO130-1~130-4、1個(gè)音源140。
      輸入FIFO110-1~110-4分別從外部輸入對(duì)應(yīng)通道的樂譜信息,暫時(shí)保持起來。輸入FIFO110-1~110-4的存儲(chǔ)容量為例如256字節(jié)。
      4通道MIDI音序器120從輸入FIFO110-1~110-4分別輸入4通道部分的MIDI數(shù)據(jù),將這些MIDI數(shù)據(jù)以通道為單位分析處理,生成音源驅(qū)動(dòng)信息。
      輸出FIFO130-1~130-4從4通道MIDI音序器輸入對(duì)應(yīng)通道的音源驅(qū)動(dòng)信息,暫時(shí)保持起來。輸出FIFO130-1~130-4的存儲(chǔ)容量為例如32字節(jié)。
      音源140具備4通道的音源部,從各個(gè)輸出FIFO130-1~130-4分別輸入音源驅(qū)動(dòng)信息,根據(jù)這些音源驅(qū)動(dòng)信息生成用來驅(qū)動(dòng)揚(yáng)聲器(未圖示)的模擬音響信號(hào)。
      圖2是概略表示4通道MIDI音序器120的結(jié)構(gòu)的功能框圖。
      如圖2所示,4通道MIDI音序器120具備1個(gè)通道控制功能部210和4個(gè)音序器220-1~220-4。另外,音序器220-1~220-4分別具備讀出復(fù)原功能部221、消息分析處理功能部222、寫入功能部223、音序器控制功能部224、輸入緩沖區(qū)225和輸出緩沖區(qū)226。
      在本實(shí)施方式中,使用1個(gè)CPU(未圖示)將各功能部210、221~224作為固件構(gòu)筑起來。即,這些功能部210、221~224不是在OS等之上以軟件方式構(gòu)筑,而是在硬件上以軟件方式構(gòu)筑的。
      通道控制功能部210將4個(gè)音序器220-1~220-4適當(dāng)切換,使其工作。由此,可以再生4通道的樂曲。
      讀出復(fù)原功能部221從對(duì)應(yīng)的輸入FIFO(音序器220-1的情況下是輸入FIFO110-1)輸入MIDI數(shù)據(jù)。進(jìn)一步,讀出復(fù)原功能部221復(fù)原MIDI消息的運(yùn)行狀態(tài)。所謂的“運(yùn)行狀態(tài)”,是一種當(dāng)連續(xù)的多個(gè)MIDI消息包含同一狀態(tài)字節(jié)(表示MIDI消息的種類的字節(jié))的情況下,省略從第2個(gè)開始以后的MIDI消息的狀態(tài)字節(jié),以減少傳送數(shù)據(jù)量的技術(shù)。讀出復(fù)原功能部221將省略的狀態(tài)字節(jié)復(fù)原,返回實(shí)施運(yùn)行狀態(tài)之前的MIDI消息。另外,讀出復(fù)原功能部221也可以判斷該樂譜信息是否是MIDI消息,當(dāng)不是MIDI消息的情況下,將其變換為MIDI消息。依照此種方式,讀出復(fù)原功能部221在樂譜信息的分析處理中承擔(dān)該樂譜信息的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)形式相關(guān)的分析處理。另外,讀出復(fù)原功能部221管理自身的分析處理的狀態(tài),適當(dāng)保持該狀態(tài)(參照后述的圖7(A))。
      消息分析處理功能部222對(duì)從讀出復(fù)原功能部221輸入的MIDI數(shù)據(jù)的標(biāo)題信息進(jìn)行分析,并且對(duì)該MIDI數(shù)據(jù)中保存的消息進(jìn)行分析處理,生成音源驅(qū)動(dòng)信息。即,消息分析處理功能部222在樂譜信息(這里是MIDI數(shù)據(jù))的分析處理中承擔(dān)用于基于該樂譜信息中保存的消息的內(nèi)容生成音源驅(qū)動(dòng)信息的分析處理工作。另外,消息分析處理功能部222管理自身的分析處理的狀態(tài),適當(dāng)保持該狀態(tài)(參照后述的圖7(B))。
      寫入功能部223將消息分析處理功能部222生成的音源驅(qū)動(dòng)信息寫入對(duì)應(yīng)的輸出FIFO(音序器220-1的情況下是輸出FIFO130-1)。此外,寫入功能部223只是將輸出緩沖區(qū)226的數(shù)據(jù)原樣寫入輸出FIFO130-1之中,因此,不需要管理自身的分析處理的狀態(tài)(后述)。
      音序器控制功能部224使讀出復(fù)原功能部221取得標(biāo)題信息,使消息分析處理功能部222分析該標(biāo)題信息。進(jìn)一步,在該標(biāo)題信息正常的情況下,音序器控制功能部224使消息分析處理功能部222及寫入功能部223重復(fù)執(zhí)行與增量時(shí)間對(duì)應(yīng)的時(shí)間消費(fèi)、與消息對(duì)應(yīng)的音源驅(qū)動(dòng)信息的生成及該音源驅(qū)動(dòng)信息向輸出FIFO130-1~130-4的寫入。另外,音序器控制功能部224管理自身的分析處理的狀態(tài),適當(dāng)保存該狀態(tài)(參照后述的圖7(C))。
      接著,將本實(shí)施方式的MIDI再生裝置100的工作,分為標(biāo)題分析處理、時(shí)序管理處理及音源驅(qū)動(dòng)信息生成寫入處理進(jìn)行說明。圖3~圖7是用來表示MIDI再生裝置100的工作的圖,圖3是用來說明音序器控制功能部224的工作的流程圖,圖4是用來說明標(biāo)題分析處理的概念圖,圖5是用來說明時(shí)序管理處理的概念圖,圖6是用來說明音源驅(qū)動(dòng)信息生成寫入處理的概念圖,圖7是表示讀出復(fù)原功能部221、消息分析處理功能部222及音序器控制功能部224的狀態(tài)的表。
      以下,在本實(shí)施方式中以音序器220-1的工作為例進(jìn)行說明,其他音序器220-2~220-4的工作相同。
      (1)標(biāo)題分析處理4通道MIDI音序器120(參照?qǐng)D1)一旦開始工作,首先,通道控制功能部210(參照?qǐng)D2)開始音序器220-1的工作。由此,音序器220-1開始標(biāo)題分析處理。
      在標(biāo)題分析處理中,首先,音序器控制功能部224請(qǐng)求讀出復(fù)原功能部221讀出標(biāo)題信息(參照?qǐng)D3的S301及圖4的R1)。
      讀出復(fù)原功能部221接受該請(qǐng)求后,從輸入FIFO110-1逐個(gè)字節(jié)讀出構(gòu)成標(biāo)題信息的數(shù)據(jù),依次保存到輸入緩沖區(qū)225(參照?qǐng)D4的R2、R3)。
      這里,當(dāng)標(biāo)題信息的一部分或全部字節(jié)尚未保存到輸入FIFO110-1的情況下,讀出復(fù)原功能部221變得不能執(zhí)行讀出處理。這種情況下,讀出復(fù)原功能部221保持“標(biāo)題信息讀出中”作為分析處理的狀態(tài),并且保持已經(jīng)讀取出來的標(biāo)題信息的字節(jié)數(shù)(參照?qǐng)D7(A))。此外,本申請(qǐng)中的“保持”的方法只要是在重新開始工作后音序器220-1能夠檢查該分析處理狀態(tài)的方法即可,沒有特殊限定;例如,既可以在構(gòu)筑音序器的硬件內(nèi)的存儲(chǔ)器中存儲(chǔ)狀態(tài)值,也可以通過軟件方式生成標(biāo)志位等,或者使用其他方法(以下,在所有保持工作中都是如此)。
      讀出復(fù)原功能部221向音序器控制功能部224發(fā)送表示標(biāo)題信息讀出未完成就已結(jié)束的通知信號(hào)(參照?qǐng)D4的R4)。音序器控制功能部224根據(jù)接收到的通知信號(hào),獲知標(biāo)題信息讀出尚未完成(參照?qǐng)D3的S302)。然后,音序器控制功能部224在保持“標(biāo)題信息取得中”作為分析處理的狀態(tài)之后(參照?qǐng)D3的S303及圖7(C))之后,向通道控制功能部210(參照?qǐng)D2)發(fā)送表示處理結(jié)束的通知信號(hào)(參照?qǐng)D4的R5),結(jié)束標(biāo)題信息的讀出處理。通道控制功能部210接收到該通知信號(hào)后,停止音序器220-1的工作,開始下一個(gè)音序器220-2的工作。其后,音序器220-2~220-4的工作完成后,通道控制功能部210再次啟動(dòng)音序器220-1的工作。在該再次啟動(dòng)時(shí),音序器控制功能部224根據(jù)所保持的分析處理狀態(tài)(即“標(biāo)題信息取得中”),判斷為上次的音序器220-1的工作在標(biāo)題信息讀取尚未完成時(shí)結(jié)束(參照?qǐng)D3的S304)。然后,音序器控制功能部224向讀出復(fù)原功能部221再次發(fā)送請(qǐng)求讀取標(biāo)題信息的信號(hào)(參照?qǐng)D4的R1)。讀出復(fù)原功能部221接收到該請(qǐng)求信號(hào)后,從保持內(nèi)容中識(shí)別出上次結(jié)束時(shí)的狀態(tài)(“標(biāo)題信息讀出中”及已經(jīng)讀取的字節(jié)數(shù)),再次讀出剩余字節(jié)。
      當(dāng)讀出結(jié)束時(shí),讀出復(fù)原功能部221向音序器控制功能部224發(fā)送表示讀出完成的通知信號(hào)(參照?qǐng)D4的R6)。音序器控制功能部224接收到該通知信號(hào)后(參照?qǐng)D3的步驟S302),請(qǐng)求消息分析處理功能部222分析該標(biāo)題信息(參照?qǐng)D3的S305及圖4的R7)。
      消息分析處理功能部222接收到該請(qǐng)求后,從輸入緩沖區(qū)225讀出標(biāo)題信息進(jìn)行分析(參照?qǐng)D4的R8)。然后,向音序器控制功能部224發(fā)送表示標(biāo)題信息的“正?!被颉爱惓!?即是否是該MIDI再生裝置100能夠再生的數(shù)據(jù))的通知信號(hào)(參照?qǐng)D4的R9)。當(dāng)標(biāo)題信息為“異常”的情況下,音序器控制功能部224向通道控制功能部210發(fā)送表示分析處理結(jié)束的通知信號(hào),結(jié)束工作。另一方面,當(dāng)標(biāo)題信息為“正?!钡那闆r下,音序器控制功能部224進(jìn)入時(shí)序管理處理。
      (2)時(shí)序管理處理在時(shí)序管理處理中,首先,音序器控制功能部224請(qǐng)求讀出復(fù)原功能部221讀出增量時(shí)間(參照?qǐng)D3的S306及圖5的T1)。所謂增量時(shí)間是指用來規(guī)定某個(gè)演奏工作與下一演奏工作之間的時(shí)間間隔的信息。例如,通過增量時(shí)間來規(guī)定從Note On(按鍵盤)至Note Off(離開鍵盤)的時(shí)間。讀出復(fù)原功能部221接受該請(qǐng)求后,從輸入FIFO110-1逐個(gè)字節(jié)讀出增量時(shí)間,依次保存到輸入緩沖區(qū)225(參照?qǐng)D5的T2、T3)。
      這里,當(dāng)增量時(shí)間的一部分或全部字節(jié)尚未保存到輸入FIFO110-1的情況下,讀出復(fù)原功能部221變得不能執(zhí)行讀出處理。這種情況下,讀出復(fù)原功能部221保存“增量時(shí)間讀出中”作為分析處理的狀態(tài),并且保持已經(jīng)讀取出來的增量時(shí)間的字節(jié)數(shù)(參照?qǐng)D7(A))。然后,讀出復(fù)原功能部221向音序器控制功能部224發(fā)送表示增量時(shí)間讀出未完成就已結(jié)束的通知信號(hào)(參照?qǐng)D5的T4)。音序器控制功能部224根據(jù)接收到的通知信號(hào),獲知增量時(shí)間讀出尚未完成(參照?qǐng)D3的步驟S307)。然后,音序器控制功能部224在保持“增量時(shí)間取得中”作為分析處理的狀態(tài)之后(參照?qǐng)D3的S308及圖7(C))之后,向通道控制功能部210(參照?qǐng)D2)發(fā)送表示處理結(jié)束的通知信號(hào)(參照?qǐng)D5的T5),結(jié)束工作。通道控制功能部210接收到該通知信號(hào)后,停止音序器220-1的工作,開始下一個(gè)音序器220-2的工作。其后,音序器220-2~220-4的工作完成后,通道控制功能部210再次啟動(dòng)音序器220-1的工作。在該再次啟動(dòng)時(shí),音序器控制功能部224根據(jù)所保持的分析處理狀態(tài)(即“增量時(shí)間取得中”),判斷為上次的音序器220-1的工作在增量時(shí)間讀出尚未完成時(shí)結(jié)束(參照?qǐng)D3的S304)。然后,音序器控制功能部224向讀出復(fù)原功能部221再次發(fā)送請(qǐng)求讀出增量時(shí)間的信號(hào)(參照?qǐng)D3的S 306及圖5的T1)。讀出復(fù)原功能部221接收到該請(qǐng)求信號(hào)后,從保持內(nèi)容中識(shí)別出上次結(jié)束時(shí)的狀態(tài)(“增量時(shí)間讀出中”及已經(jīng)讀取的字節(jié)數(shù)),再次讀出剩余字節(jié)。
      當(dāng)讀出結(jié)束時(shí),讀出復(fù)原功能部221向音序器控制功能部224發(fā)送表示讀出完成的通知信號(hào)(參照?qǐng)D5的T6)。音序器控制功能部224接收到該通知信號(hào)后,向消息分析處理功能部222請(qǐng)求與該增量時(shí)間相當(dāng)?shù)臅r(shí)間消費(fèi)(參照?qǐng)D3的步驟S309及圖5的T7)。
      消息分析處理功能部222接收到該請(qǐng)求后,從輸入緩沖區(qū)225讀出增量時(shí)間(參照?qǐng)D5的T8)。然后,消息分析處理功能部222隨時(shí)將該增量時(shí)間與內(nèi)部計(jì)時(shí)器(未圖示)的計(jì)時(shí)進(jìn)行比較,由此管理時(shí)間消費(fèi)狀況。當(dāng)在規(guī)定時(shí)間內(nèi)該時(shí)間消費(fèi)沒有完成的情況下,消息分析處理功能部222保持“增量時(shí)間消費(fèi)中”作為分析處理的狀態(tài),并且保持已經(jīng)消費(fèi)的時(shí)間(參照?qǐng)D7(B))。然后,消息分析處理功能部222向音序器控制功能部224發(fā)送表示在時(shí)間消費(fèi)尚未完成即已結(jié)束的通知信號(hào)(參照?qǐng)D5的T9)。音序器控制功能部224根據(jù)接收到的通知信號(hào),獲知時(shí)間消費(fèi)尚未完成(參照?qǐng)D3的步驟S310)。然后,音序器控制功能部224在保持“時(shí)序管理中”作為分析處理的狀態(tài)之后(參照?qǐng)D3的S 311及圖7(C))之后,向通道控制功能部210(參照?qǐng)D2)發(fā)送表示處理結(jié)束的通知信號(hào)(參照?qǐng)D5的T10),結(jié)束時(shí)序管理處理。通道控制功能部210接收到該通知信號(hào)后,停止音序器220-1的工作,開始下一個(gè)音序器220-2的工作。其后,音序器220-2~220-4的工作完成后,通道控制功能部210再次啟動(dòng)音序器220-1的工作。在該再次啟動(dòng)時(shí),音序器控制功能部224根據(jù)所保持的分析處理狀態(tài)(即“時(shí)序管理中”),判斷為上次的音序器220-1的工作在增量時(shí)間的消費(fèi)尚未完成時(shí)結(jié)束(參照?qǐng)D3的S304)。然后,音序器控制功能部224再次向消息分析處理功能部222發(fā)送請(qǐng)求時(shí)間消費(fèi)的信號(hào)(參照?qǐng)D5的T7)。
      消息分析處理功能部222接收到該請(qǐng)求信號(hào)后,從保持內(nèi)容中獲知上次結(jié)束時(shí)的狀態(tài)(“增量時(shí)間消費(fèi)中”及消費(fèi)時(shí)間),再次開始增量時(shí)間的消費(fèi)。
      當(dāng)增量時(shí)間消費(fèi)完成時(shí),消息分析處理功能部222向音序器控制功能部224發(fā)送表示消費(fèi)完成的通知信號(hào)(參照?qǐng)D5的T11)。音序器控制功能部224從該通知信號(hào)獲知時(shí)間消費(fèi)完成后(參照?qǐng)D3的步驟S310),進(jìn)入音源驅(qū)動(dòng)信息生成寫入處理。
      (3)音源驅(qū)動(dòng)信息生成寫入處理在音源驅(qū)動(dòng)信息生成寫入處理中,首先,音序器控制功能部224請(qǐng)求讀出復(fù)原功能部221讀出消息(參照?qǐng)D3的S312及圖6的P1)。
      讀出復(fù)原功能部221接受該請(qǐng)求后,從輸入FIFO110-1逐個(gè)字節(jié)讀出構(gòu)成消息的數(shù)據(jù),依次保存到輸入緩沖區(qū)225(參照?qǐng)D6的P2、P3)。另外,當(dāng)設(shè)置了將數(shù)據(jù)從MIDI以外的形式變換為MIDI形式的功能(上述)的情況下,讀出復(fù)原功能部221在進(jìn)行數(shù)據(jù)變換后,保存到輸入緩沖區(qū)225即可。
      這里,當(dāng)消息的一部分或全部字節(jié)尚未保存到輸入FIFO110-1的情況下,讀出復(fù)原功能部221變得不能進(jìn)行讀出處理。這種情況下,讀出復(fù)原功能部221將“消息讀出中(種類未定)”、“消息讀出中(2字節(jié)消息)”、“消息讀出中(3字節(jié)消息)”、“消息讀出中(元事件)”或“消息讀出中(系統(tǒng)獨(dú)有信息)”作為分析處理的狀態(tài)保持下來,并且保持已經(jīng)讀取的消息的字節(jié)數(shù)(參照?qǐng)D7(A))。這里,之所以保持消息種類,是因?yàn)榕袛嗍S嘧止?jié)數(shù)的處理隨該種類不同而不同。然后,讀出復(fù)原功能部221向音序器控制功能部224發(fā)送表示消息讀出未完成就已結(jié)束的通知信號(hào)(參照?qǐng)D6的P4)。音序器控制功能部224根據(jù)接收到的通知信號(hào),獲知消息讀出尚未完成(參照?qǐng)D3的步驟S313)。然后,音序器控制功能部224在保持“消息取得中”作為分析處理的狀態(tài)之后(參照?qǐng)D7(C))之后,向通道控制功能部210(參照?qǐng)D2)發(fā)送表示處理結(jié)束的通知信號(hào)(參照?qǐng)D6的P5),結(jié)束標(biāo)題信息的讀出處理。通道控制功能部210接收到該通知信號(hào)后,停止音序器220-1的工作,開始下一個(gè)音序器220-2的工作。其后,當(dāng)音序器220-1再次開始工作時(shí),音序器控制功能部224根據(jù)保存的分析處理狀態(tài)(即“消息取得中(種類未定)”等)判斷上次的音序器220-1的工作在消息讀出尚未完成的狀態(tài)下結(jié)束以及該消息的種類(或未定)(參照?qǐng)D3的S304)。然后,音序器控制功能部224向讀出復(fù)原功能部221再次發(fā)送請(qǐng)求讀出消息的信號(hào)(參照?qǐng)D6的P1)。讀出復(fù)原功能部221接收到該請(qǐng)求信號(hào)后,從保持內(nèi)容中識(shí)別出上次結(jié)束時(shí)的狀態(tài)(“消息讀出中”及已經(jīng)讀取的字節(jié)數(shù)),再次讀出剩余字節(jié)。
      當(dāng)消息讀出結(jié)束時(shí),讀出復(fù)原功能部221向音序器控制功能部224發(fā)送表示讀出完成的通知信號(hào)(參照?qǐng)D6的P4)。音序器控制功能部224接收到該通知信號(hào)后(參照?qǐng)D3的S313),請(qǐng)求消息分析處理功能部222分析該消息(參照?qǐng)D3的8314及圖6的P6)。
      消息分析處理功能部222接收到該請(qǐng)求后,從輸入緩沖區(qū)225讀取MIDI消息進(jìn)行分析(參照?qǐng)D6的P7)。然后,當(dāng)該消息為異常的情況(即是不與音源140對(duì)應(yīng)的消息的情況)下,消息分析處理功能部222將該消息從輸入緩沖區(qū)225刪除,將表示這一情況的通知信號(hào)發(fā)送給音序器控制功能部224(參照?qǐng)D6的P8)。音序器控制功能部224獲知該通知信號(hào)為“異?!焙?參照?qǐng)D3的S315),將“增量時(shí)間取得中”作為分析處理狀態(tài)保持下來(參照?qǐng)D3的S316),并且將表示處理結(jié)束的通知信號(hào)發(fā)送到通道控制功能部210(參照?qǐng)D6的P9),結(jié)束處理。通過保持“增量時(shí)間取得中”作為分析處理狀態(tài),當(dāng)音序器220-1的工作下次重新開始時(shí),執(zhí)行時(shí)序管理處理(參照?qǐng)D3的S306~S311)。
      另一方面,當(dāng)消息為“正?!钡那闆r(即是與音源140對(duì)應(yīng)的消息的情況)下,消息分析處理功能部222生成與該消息對(duì)應(yīng)的音源驅(qū)動(dòng)信息,寫入輸出緩沖區(qū)226(參照?qǐng)D6的P10)。然后,消息分析處理功能部222向音序器控制功能部224發(fā)送表示分析結(jié)束的通知信號(hào)(參照?qǐng)D6的P11)。
      音序器控制功能部224獲知通知信號(hào)表示分析結(jié)束時(shí)(圖3的S315),接著請(qǐng)求寫入功能部223將音源驅(qū)動(dòng)信息寫入輸出FIFO130-1(參照?qǐng)D3的步驟S317及圖6的P12)。寫入功能部223接收到該請(qǐng)求后,從輸出緩沖區(qū)226讀出音源驅(qū)動(dòng)信息,保存到輸出FIFO130-1(參照?qǐng)D6的P13、P14)。
      這里,當(dāng)輸出FIFO130-1中已經(jīng)沒有空間的情況下,寫入功能部223無法進(jìn)行寫入處理。這種情況下,寫入功能部223向音序器控制功能部224發(fā)送表示在寫入尚未完成時(shí)即已結(jié)束的通知信號(hào)(參照?qǐng)D6的P15)。此外,這時(shí),寫入功能部223不進(jìn)行狀態(tài)保持。這是因?yàn)椋瑢懭牍δ懿?23只是將輸出緩沖區(qū)226的數(shù)據(jù)原樣寫入輸出FIFO130-1,沒有進(jìn)行分析和處理等,因此,不需要狀態(tài)保持。不過,必要時(shí),寫入功能部223當(dāng)然也可以進(jìn)行狀態(tài)的保持。音序器控制功能部224根據(jù)接收到的通知信號(hào),獲知音源驅(qū)動(dòng)信息讀出尚未完成(參照?qǐng)D3的步驟S318)。然后,音序器控制功能部224在保持“音源驅(qū)動(dòng)信息寫入中”作為分析處理的狀態(tài)之后(參照?qǐng)D7(C))之后,向通道控制功能部210(參照?qǐng)D2)發(fā)送表示處理結(jié)束的通知信號(hào)(參照?qǐng)D6的P16),結(jié)束工作。通道控制功能部210接收到該通知信號(hào)后,停止音序器220-1的工作,開始下一個(gè)音序器220-2的工作。當(dāng)音序器220-1再次開始工作時(shí),音序器控制功能部224根據(jù)保持的分析處理狀態(tài)(即“音源驅(qū)動(dòng)信息寫入中”),判斷為上次的音序器220-1的工作在音源驅(qū)動(dòng)信息的寫入尚未完成時(shí)即已結(jié)束(參照?qǐng)D3的S304)。然后,音序器控制功能部224向?qū)懭牍δ懿?23再次發(fā)送請(qǐng)求寫入的信號(hào)(參照?qǐng)D6的P12)。寫入功能部223接收到該請(qǐng)求信號(hào)后,再次開始將輸出緩沖區(qū)226的數(shù)據(jù)寫入輸出FIFO130-1。
      當(dāng)寫入結(jié)束的情況下,寫入功能部223向音序器控制功能部224發(fā)送表示寫入完成的通知信號(hào)(參照?qǐng)D6的P17)。音序器控制功能部224根據(jù)該通知信號(hào)獲知寫入已經(jīng)結(jié)束時(shí)(參照?qǐng)D3的步驟S318),保持“增量時(shí)間取得中”作為分析處理的狀態(tài),然后,向通道控制功能部210(參照?qǐng)D2)發(fā)送表示工作結(jié)束的通知信號(hào)(參照?qǐng)D6的P18),結(jié)束工作。通過保持“增量時(shí)間取得中”作為分析處理狀態(tài),當(dāng)音序器220-1的工作下次重新開始時(shí),執(zhí)行時(shí)序管理處理(參照?qǐng)D3的S306~S311)。
      其后,重復(fù)執(zhí)行時(shí)序管理處理和音源驅(qū)動(dòng)信息生成寫入處理,直至MIDI數(shù)據(jù)再生結(jié)束。
      如上述說明,本實(shí)施方式中將音序器220-1~220-4分為讀出復(fù)原功能部221、消息分析處理功能部222、寫入功能部223及音序器控制功能部224進(jìn)行構(gòu)筑,以各個(gè)功能部為單位管理、保持分析處理狀態(tài)。因此,本實(shí)施方式中涉及的管理、保持項(xiàng)目變得非常簡(jiǎn)單(參照?qǐng)D7)。因此,借助于該實(shí)施方式,可以不使用OS及調(diào)度程序、通過簡(jiǎn)單的程序?qū)崿F(xiàn)對(duì)多個(gè)音序器進(jìn)行狀態(tài)管理。由此,能夠減少多通道的MIDI再生裝置中存儲(chǔ)器容量。
      進(jìn)而,借助于該實(shí)施方式,讀出復(fù)原功能部221從其他功能獨(dú)立出來,因此,能夠容易地增加將MIDI以外的形式變換為MIDI的功能。
      權(quán)利要求
      1.一種樂曲再生裝置,通過適當(dāng)切換多個(gè)音序器進(jìn)行工作來進(jìn)行多通道的樂曲再生,其特征在于,各個(gè)上述音序器具備讀出復(fù)原功能部,從輸入存儲(chǔ)器中讀出包含標(biāo)題信息、增量時(shí)間及消息的樂曲信息,并將該消息的運(yùn)行狀態(tài)復(fù)原;消息分析處理功能部,分析從該讀出復(fù)原功能部輸入的上述標(biāo)題信息,進(jìn)行與上述增量時(shí)間相應(yīng)的時(shí)間消費(fèi),并對(duì)上述消息進(jìn)行分析處理,生成音源驅(qū)動(dòng)信息;寫入功能部,將該消息分析處理功能部生成的上述音源驅(qū)動(dòng)信息寫入輸出存儲(chǔ)器;以及音序器控制功能部,使上述讀出復(fù)原功能部讀出并復(fù)原上述樂曲信息,使上述消息分析處理功能部分析上述標(biāo)題信息,在該標(biāo)題信息適當(dāng)?shù)那闆r下,使上述消息分析處理功能部和上述寫入功能部進(jìn)行上述時(shí)間消費(fèi)和上述音源驅(qū)動(dòng)信息的生成以及該音源驅(qū)動(dòng)信息的寫入,當(dāng)工作的上述音序器切換時(shí),結(jié)束工作的功能部的一部分或全部的工作狀態(tài)以這些功能部為單位保持下來。
      2.如權(quán)利要求1所述的樂曲再生裝置,其特征在于,當(dāng)在上述樂曲信息的讀出過程中上述音序器的工作結(jié)束的情況下,保持讀出過程中的數(shù)據(jù)的標(biāo)題信息/增量時(shí)間/消息的區(qū)別和已經(jīng)讀取的數(shù)據(jù)量作為上述讀出復(fù)原功能部的上述工作狀態(tài)。
      3.如權(quán)利要求2所述的樂曲再生裝置,其特征在于,當(dāng)讀出過程中的數(shù)據(jù)是上述消息的情況下,保持該消息的種類作為上述讀出復(fù)原功能部的上述工作狀態(tài)。
      4.如權(quán)利要求2或3所述的樂曲再生裝置,其特征在于,保持標(biāo)題取得中/增量時(shí)間取得中/消息取得中的區(qū)別作為上述音序器控制功能部的上述工作狀態(tài)。
      5.如權(quán)利要求1~4的任意一個(gè)所述的樂曲再生裝置,其特征在于,當(dāng)在上述時(shí)間消費(fèi)過程中上述音序器的工作結(jié)束的情況下,保持時(shí)間消費(fèi)中這一含義和已經(jīng)消費(fèi)的時(shí)間作為上述消息分析處理功能部的上述工作狀態(tài)。
      6.如權(quán)利要求5所述的樂曲再生裝置,其特征在于,保持時(shí)序管理中這一含義作為上述音序器控制功能部的上述工作狀態(tài)。
      7.如權(quán)利要求1~6的任意一個(gè)所述的樂曲再生裝置,其特征在于,當(dāng)在向上述輸出存儲(chǔ)器寫入上述音源驅(qū)動(dòng)信息過程中上述音序器的工作結(jié)束的情況下,保持音源驅(qū)動(dòng)信息寫入中這一含義作為上述音序器控制功能部的上述工作狀態(tài)。
      8.如權(quán)利要求1~7的任意一個(gè)所述的樂曲再生裝置,其特征在于,上述讀出復(fù)原功能部還具備將上述樂譜信息的形式變換為上述消息分析處理功能部所對(duì)應(yīng)的形式的功能。
      全文摘要
      在MIDI再生器中利用簡(jiǎn)單的程序切換多通道的音序器。讀出復(fù)原功能部(221)從輸入FIFO(110-1)讀取包含標(biāo)題信息、增量時(shí)間及消息的樂曲信息。消息分析處理功能部(222)進(jìn)行標(biāo)題信息的分析、增量時(shí)間的消費(fèi)及音源驅(qū)動(dòng)信息的生成。寫入功能部(223)將音源驅(qū)動(dòng)信息寫入輸出FIFO(130-1)。音序器控制功能部(224)控制消息分析處理功能部(222)的標(biāo)題信息分析、時(shí)間消費(fèi)、音源驅(qū)動(dòng)信息生成或?qū)懭牍δ懿?223)的寫入。當(dāng)工作的音序器(220-1~220-4)切換時(shí),工作中斷的功能部的工作狀態(tài)以這些功能部為單位保持起來。
      文檔編號(hào)G10H1/00GK1794345SQ20051010710
      公開日2006年6月28日 申請(qǐng)日期2005年9月30日 優(yōu)先權(quán)日2004年12月20日
      發(fā)明者岡田敏治, 塚本薰, 巖永智博, 浜野洋二 申請(qǐng)人:沖電氣工業(yè)株式會(huì)社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1