JP3149093B2 - 自動演奏装置 - Google Patents
自動演奏装置Info
- Publication number
- JP3149093B2 JP3149093B2 JP30622891A JP30622891A JP3149093B2 JP 3149093 B2 JP3149093 B2 JP 3149093B2 JP 30622891 A JP30622891 A JP 30622891A JP 30622891 A JP30622891 A JP 30622891A JP 3149093 B2 JP3149093 B2 JP 3149093B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- audio
- buffer
- transfer
- midi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0033—Recording/reproducing or transmission of music for electrophonic musical instruments
- G10H1/0041—Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
- G10H1/0058—Transmission between separate instruments or between individual components of a musical system
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0033—Recording/reproducing or transmission of music for electrophonic musical instruments
- G10H1/0041—Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
- G10H1/0058—Transmission between separate instruments or between individual components of a musical system
- G10H1/0066—Transmission between separate instruments or between individual components of a musical system using a MIDI interface
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/011—Files or data streams containing coded musical information, e.g. for transmission
- G10H2240/031—File merging MIDI, i.e. merging or mixing a MIDI-like file or stream with a non-MIDI file or stream, e.g. audio or video
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/201—Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
- G10H2240/211—Wireless transmission, e.g. of music parameters or control data by radio, infrared or ultrasound
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/201—Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
- G10H2240/241—Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
- G10H2240/245—ISDN [Integrated Services Digital Network]
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/201—Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
- G10H2240/261—Satellite transmission for musical instrument purposes, e.g. processing for mitigation of satellite transmission delays
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【産業上の利用分野】本発明は、オーディオデータやシ
ーケンサデータに従って、楽曲の自動演奏を行う自動演
奏装置に関する。
ーケンサデータに従って、楽曲の自動演奏を行う自動演
奏装置に関する。
【0002】
【従来の技術】従来より、楽曲を自動演奏する機能をも
った電子楽器や、パーソナルコンピュータが開発されて
いる。これらの自動演奏装置においては、曲を表現する
シーケンサデータ(各音符の音高や音長等を示すデータ
列)を記憶しておき、それを読み出して、音源回路を駆
動することで演奏を行っている。また、最近では、この
ような楽曲の演奏にあわせて、CD(コンパクトディス
ク)等を同期演奏することも可能となっている。
った電子楽器や、パーソナルコンピュータが開発されて
いる。これらの自動演奏装置においては、曲を表現する
シーケンサデータ(各音符の音高や音長等を示すデータ
列)を記憶しておき、それを読み出して、音源回路を駆
動することで演奏を行っている。また、最近では、この
ような楽曲の演奏にあわせて、CD(コンパクトディス
ク)等を同期演奏することも可能となっている。
【0003】
【発明が解決しようとする課題】しかしながら、これま
で提案された自動演奏装置では、オーディオの再生と、
シーケンサによる演奏とを同期してスタートすることし
か行われておらず、両者を曲演奏途中で複雑に組合わせ
て、一つの曲を演奏することはできないのが実情であっ
た。
で提案された自動演奏装置では、オーディオの再生と、
シーケンサによる演奏とを同期してスタートすることし
か行われておらず、両者を曲演奏途中で複雑に組合わせ
て、一つの曲を演奏することはできないのが実情であっ
た。
【0004】本発明は、このような実情に鑑みてなされ
たものであり、オーディオの再生と、シーケンサデータ
による演奏とを、曲中で複雑に組合わせて出来るように
した自動演奏装置を提供することを目的とする。
たものであり、オーディオの再生と、シーケンサデータ
による演奏とを、曲中で複雑に組合わせて出来るように
した自動演奏装置を提供することを目的とする。
【0005】また、本発明は、外部から転送されてくる
上述のような演奏が出来るようになっている曲データを
受信して、演奏を行なうようにした自動演奏装置を提供
することを目的とする。
上述のような演奏が出来るようになっている曲データを
受信して、演奏を行なうようにした自動演奏装置を提供
することを目的とする。
【0006】
【課題を解決するための手段】本発明の構成によれば、
オーディオデータとシーケンスデータとが記憶されるデ
ータ記憶手段と、このデータ記憶手段に記憶された上記
オーディオデータと上記シーケンスデータとを再生する
際のスケジュールを規定するスケジュールテーブルを記
憶するスケジュールテーブル記憶手段と、上記データ記
憶手段から上記オーディオデータを受け取り、一時記憶
する第1のバッファ手段と、この第1のバッファ手段に
記憶される上記オーディオデータが与えられて、オーデ
ィオ信号を再生出力するオーディオ出力手段と、上記デ
ータ記憶手段から上記シーケンサデータを受け取り、一
時記憶する第2のバッファ手段と、この第2のバッファ
手段に記憶される上記シーケンサデータが与えられて、
対応する楽音を発生する楽音発生手段と、上記オーディ
オ出力手段と上記第1のバッファ手段との間のデータ転
送、上記楽音発生手段と上記第2のバッファ手段との間
のデータ転送、及び上記データ記憶手段と上記第1、第
2のバッファ手段との間のデータ転送を所定の優先順位
に従って、選択的に実行するデータ転送手段と、このデ
ータ転送手段にて上記データ記憶手段から上記第1、第
2のバッファ手段に転送するオーディオデータ、シーケ
ンサデータを上記スケジュールテーブル記憶手段に記憶
された上記スケジュールテーブルに従って転送するよう
制御する制御手段と、を具備したことを特徴とする自動
演奏装置が提供される。
オーディオデータとシーケンスデータとが記憶されるデ
ータ記憶手段と、このデータ記憶手段に記憶された上記
オーディオデータと上記シーケンスデータとを再生する
際のスケジュールを規定するスケジュールテーブルを記
憶するスケジュールテーブル記憶手段と、上記データ記
憶手段から上記オーディオデータを受け取り、一時記憶
する第1のバッファ手段と、この第1のバッファ手段に
記憶される上記オーディオデータが与えられて、オーデ
ィオ信号を再生出力するオーディオ出力手段と、上記デ
ータ記憶手段から上記シーケンサデータを受け取り、一
時記憶する第2のバッファ手段と、この第2のバッファ
手段に記憶される上記シーケンサデータが与えられて、
対応する楽音を発生する楽音発生手段と、上記オーディ
オ出力手段と上記第1のバッファ手段との間のデータ転
送、上記楽音発生手段と上記第2のバッファ手段との間
のデータ転送、及び上記データ記憶手段と上記第1、第
2のバッファ手段との間のデータ転送を所定の優先順位
に従って、選択的に実行するデータ転送手段と、このデ
ータ転送手段にて上記データ記憶手段から上記第1、第
2のバッファ手段に転送するオーディオデータ、シーケ
ンサデータを上記スケジュールテーブル記憶手段に記憶
された上記スケジュールテーブルに従って転送するよう
制御する制御手段と、を具備したことを特徴とする自動
演奏装置が提供される。
【0007】上記データ記憶手段は、各種記憶媒体が採
用できるが、最適な例は、ハードディスク、光磁気ディ
スク等のランダムアクセス型の記憶媒体である。
用できるが、最適な例は、ハードディスク、光磁気ディ
スク等のランダムアクセス型の記憶媒体である。
【0008】またシーケンサデータとしては、一例とし
てMIDI (Musical Instrument Digital Interface)
フォーマットによる。
てMIDI (Musical Instrument Digital Interface)
フォーマットによる。
【0009】上記スケジュールテーブルは、オーディオ
データ、シーケンサデータの再生スケジュールを規定す
るので、両者が複雑に組合わされて再生演奏ができる。
望ましくは、このオーディオデータ、シーケンサデータ
は、それぞれイベントという時間区切りがなされてい
て、このイベント単位で、再生スケジュールがプログラ
ムされる。
データ、シーケンサデータの再生スケジュールを規定す
るので、両者が複雑に組合わされて再生演奏ができる。
望ましくは、このオーディオデータ、シーケンサデータ
は、それぞれイベントという時間区切りがなされてい
て、このイベント単位で、再生スケジュールがプログラ
ムされる。
【0010】
【0011】
【0012】
【0013】
【作用】上記構成の自動演奏装置によれば、オーディオ
データとシーケンサデータとによる演奏をスケジュール
テーブルに従って実行することが可能になる。従って、
一つの曲の中で、オーディオの再生とシーケンサデータ
による演奏とを複雑に組合わせることが可能となり、複
雑で変化に富んだ演奏が実現できる。
データとシーケンサデータとによる演奏をスケジュール
テーブルに従って実行することが可能になる。従って、
一つの曲の中で、オーディオの再生とシーケンサデータ
による演奏とを複雑に組合わせることが可能となり、複
雑で変化に富んだ演奏が実現できる。
【0014】
<システム構成>図1は、本発明の自動演奏装置が適用
されるシステムの全体構成を示すシステム構成図であ
る。図1において、1はミュージックデータレシーバで
あり、ミュージックデータサプライヤ(データベースセ
ンタ)2のデータベース22のなかに蓄積された多数の
曲のデータがコントローラ22の制御にしたがって、読
み出され電話網もしくはISDN (Integrated Service
s Digital Network) 網3を介して与えられる。即ち、
ミュージックデータレシーバ1から要求した曲について
のデータ(後述するオーディオデータ、シーケンサデー
タとこれらのオーディオデータとシーケンサデータとを
組合わせて使用する際のスケジュールを規定する曲スケ
ジュールテーブルとである。)が、ミュージックデータ
サプライヤ2からミュージックデータレシーバ1に転送
される。
されるシステムの全体構成を示すシステム構成図であ
る。図1において、1はミュージックデータレシーバで
あり、ミュージックデータサプライヤ(データベースセ
ンタ)2のデータベース22のなかに蓄積された多数の
曲のデータがコントローラ22の制御にしたがって、読
み出され電話網もしくはISDN (Integrated Service
s Digital Network) 網3を介して与えられる。即ち、
ミュージックデータレシーバ1から要求した曲について
のデータ(後述するオーディオデータ、シーケンサデー
タとこれらのオーディオデータとシーケンサデータとを
組合わせて使用する際のスケジュールを規定する曲スケ
ジュールテーブルとである。)が、ミュージックデータ
サプライヤ2からミュージックデータレシーバ1に転送
される。
【0015】そして、ミュージックデータレシーバ1内
のコントローラ11にてこのデータは制御されて自動演
奏装置12に与えられる。この自動演奏装置12には、
この他、外部からオーディオ入力やMIDI入力があ
り、それをレコーディングする機能を有する。そして、
自動演奏装置12は、このレコーディングされたオーデ
ィオデータを再生してオーディオ機器13に与えるほ
か、レコーディングされて、シーケンサデータとなって
いるMIDI信号を再生してMIDI出力をMIDI音
源14に送る。MIDI音源14では、対応する音階の
楽音を生成したのち上記オーディオ機器13に出力す
る。
のコントローラ11にてこのデータは制御されて自動演
奏装置12に与えられる。この自動演奏装置12には、
この他、外部からオーディオ入力やMIDI入力があ
り、それをレコーディングする機能を有する。そして、
自動演奏装置12は、このレコーディングされたオーデ
ィオデータを再生してオーディオ機器13に与えるほ
か、レコーディングされて、シーケンサデータとなって
いるMIDI信号を再生してMIDI出力をMIDI音
源14に送る。MIDI音源14では、対応する音階の
楽音を生成したのち上記オーディオ機器13に出力す
る。
【0016】従って、スピーカ14R、14Lからは、
オーディオ信号と、MIDI音源14から出力される楽
音信号とをステレオ状態で、音響出力することになる。
オーディオ信号と、MIDI音源14から出力される楽
音信号とをステレオ状態で、音響出力することになる。
【0017】<自動演奏装置12の構成>図2は、図1
の自動演奏装置12の詳細構成を示しており、本発明の
要部である。上記コントローラ11からのデータは、内
部のバス(データバス/アドレスバス)10に供給さ
れ、後述するようにハードディスク200へ蓄積され
る。そして、この自動演奏装置12の全体制御は、CP
U121によりなされる。CPU121は、ワークRA
M122の所定エリアを使用してハードディスク200
のリードライトエリアを指定したり編集したりする。そ
の為、ワークRAM122は、ハードディスク200の
リードライトアドレスや、データの読み出し順序などの
スケジュールを規定する曲スケジュールテーブルを記憶
する。
の自動演奏装置12の詳細構成を示しており、本発明の
要部である。上記コントローラ11からのデータは、内
部のバス(データバス/アドレスバス)10に供給さ
れ、後述するようにハードディスク200へ蓄積され
る。そして、この自動演奏装置12の全体制御は、CP
U121によりなされる。CPU121は、ワークRA
M122の所定エリアを使用してハードディスク200
のリードライトエリアを指定したり編集したりする。そ
の為、ワークRAM122は、ハードディスク200の
リードライトアドレスや、データの読み出し順序などの
スケジュールを規定する曲スケジュールテーブルを記憶
する。
【0018】CPU121のI/O入力端には、キーボ
ード123、表示装置124が接続され、これらの装置
を用いて、ユーザから各種指示入力がなされる。具体的
には、図1に示したミュージックデータサプライヤ2に
対する楽曲の転送指示、図2の各トラック(オーディオ
トラック、シーケンサトラック)の各動作を指定した
り、各種編集状態を指定したりする。
ード123、表示装置124が接続され、これらの装置
を用いて、ユーザから各種指示入力がなされる。具体的
には、図1に示したミュージックデータサプライヤ2に
対する楽曲の転送指示、図2の各トラック(オーディオ
トラック、シーケンサトラック)の各動作を指定した
り、各種編集状態を指定したりする。
【0019】CPU121は、リアルタイム動作時(デ
ータの記録再生時)においては、バス10の空き時間に
限り図2の各構成要素の制御を行う。そして、このよう
なリアルタイム動作時においては、DMAC(DMA:
DirectMemory Access コントローラ)100が、バス
10を専有する。即ち、DMAC100がバス10を専
有するときCPU121はDMA可能信号DMAENB
が与えられ、CPU121のバス10を使用したアクセ
スを禁止している。
ータの記録再生時)においては、バス10の空き時間に
限り図2の各構成要素の制御を行う。そして、このよう
なリアルタイム動作時においては、DMAC(DMA:
DirectMemory Access コントローラ)100が、バス
10を専有する。即ち、DMAC100がバス10を専
有するときCPU121はDMA可能信号DMAENB
が与えられ、CPU121のバス10を使用したアクセ
スを禁止している。
【0020】バス10には、上述したCPU121、ワ
ークRAM122、DMAC100のほか、2トラック
(Tr1、TR2)のオーディオI/O(入出力コント
ローラ)301、302、MIDII/O(入出力コン
トローラ)303、バッファ400、HDC(ハードデ
ィスクコントローラ)201が接続される。
ークRAM122、DMAC100のほか、2トラック
(Tr1、TR2)のオーディオI/O(入出力コント
ローラ)301、302、MIDII/O(入出力コン
トローラ)303、バッファ400、HDC(ハードデ
ィスクコントローラ)201が接続される。
【0021】DMAC100は、CH1〜CH4の4チ
ャンネル構成であって、CH1が、バッファ400内の
音声バッファ(Tr1)とオーディオI/O301との
DMA転送(シングル転送)を実行する。CH2は、バ
ッファ400内の音声バッファ(Tr2)とオーディオ
I/O302とのDMA転送(シングル転送)を実行す
る。これらの音声バッファは、複数サンプリング分の音
声情報が一時記録できリングバッファ形式となってい
る。また、CH3は、バッファ400内のMIDIバッ
ファとMIDII/O303との間のDMA転送(パケ
ット転送)を実行する。このMIDIバッファは、MI
DIデータを複数個分一時記録するようになっていて、
リングバッファ形式となっている。
ャンネル構成であって、CH1が、バッファ400内の
音声バッファ(Tr1)とオーディオI/O301との
DMA転送(シングル転送)を実行する。CH2は、バ
ッファ400内の音声バッファ(Tr2)とオーディオ
I/O302とのDMA転送(シングル転送)を実行す
る。これらの音声バッファは、複数サンプリング分の音
声情報が一時記録できリングバッファ形式となってい
る。また、CH3は、バッファ400内のMIDIバッ
ファとMIDII/O303との間のDMA転送(パケ
ット転送)を実行する。このMIDIバッファは、MI
DIデータを複数個分一時記録するようになっていて、
リングバッファ形式となっている。
【0022】そして、CH4が、バッファ400内の各
エリアとハードディスク200の対応するエリアとのデ
ータ転送(DMA転送、ブロック転送)を担当する。ハ
ードディスク200とバッファ400の転送は、データ
の再生時には、バッファ400の指定されるエリアに適
当な空きが在るか否かを判断してなされ、記録時には、
ハードディスク200に転送する適当なブロックがバッ
ファ400内の指定されるエリアに在るか否かを判断し
てなされる。
エリアとハードディスク200の対応するエリアとのデ
ータ転送(DMA転送、ブロック転送)を担当する。ハ
ードディスク200とバッファ400の転送は、データ
の再生時には、バッファ400の指定されるエリアに適
当な空きが在るか否かを判断してなされ、記録時には、
ハードディスク200に転送する適当なブロックがバッ
ファ400内の指定されるエリアに在るか否かを判断し
てなされる。
【0023】ハードディスク200は、HDC201に
接続され、このHDC201の制御にしたがってデータ
のリードライト制御がなされる。このハードディスク2
00は、上述したように外部から転送されてきた曲につ
いてのデータや、ユーザが入力操作して得た曲のデータ
を記憶する。そして、上記HDC201は、1回(1ブ
ロック)のデータ転送がなされる都度CPU121によ
って次のデータ転送について、プログラミング制御され
る。
接続され、このHDC201の制御にしたがってデータ
のリードライト制御がなされる。このハードディスク2
00は、上述したように外部から転送されてきた曲につ
いてのデータや、ユーザが入力操作して得た曲のデータ
を記憶する。そして、上記HDC201は、1回(1ブ
ロック)のデータ転送がなされる都度CPU121によ
って次のデータ転送について、プログラミング制御され
る。
【0024】上述のオーディオI/O301、302
は、外部とオーディオ(音声)信号をやり取りできるよ
うになっていて、内部にD/A変換器、A/D変換器を
含んでなり、外部からのアナログ信号をデジタル信号
(例えば、PCM形式)に直して取り込んだり、逆にデ
ジタル表現のオーディオ信号をアナログ信号に直して外
部出力することになる。そして、このオーディオI/O
301、302は、夫々サンプリングクロックの発生
(内部に含まれているクロックジェネレータの出力によ
ってもよく、別の外部からのサンプリングクロックに同
期して動作してもよい)にあわせて、DMAC100に
対して、DMA転送要求信号RQ1、2を発生する。
は、外部とオーディオ(音声)信号をやり取りできるよ
うになっていて、内部にD/A変換器、A/D変換器を
含んでなり、外部からのアナログ信号をデジタル信号
(例えば、PCM形式)に直して取り込んだり、逆にデ
ジタル表現のオーディオ信号をアナログ信号に直して外
部出力することになる。そして、このオーディオI/O
301、302は、夫々サンプリングクロックの発生
(内部に含まれているクロックジェネレータの出力によ
ってもよく、別の外部からのサンプリングクロックに同
期して動作してもよい)にあわせて、DMAC100に
対して、DMA転送要求信号RQ1、2を発生する。
【0025】DMAC100のCH1、2は、この到来
する要求信号RQ1、2に対応するDMA転送を行うた
めアクノーレッジ(回答信号)ACK1、2をオーディ
オI/O301、302に送り、バス10を専有してD
MA転送を実行する。このとき、所定のリードライト信
号(図2では特に図示せず)をDMAC100は発生
し、オーディオI/O301、302に送出する。ま
た、CPU121に対してDMA転送実行中であること
を示すDMA可能信号DMAENBを与える。
する要求信号RQ1、2に対応するDMA転送を行うた
めアクノーレッジ(回答信号)ACK1、2をオーディ
オI/O301、302に送り、バス10を専有してD
MA転送を実行する。このとき、所定のリードライト信
号(図2では特に図示せず)をDMAC100は発生
し、オーディオI/O301、302に送出する。ま
た、CPU121に対してDMA転送実行中であること
を示すDMA可能信号DMAENBを与える。
【0026】MIDII/O303は、外部とMIDI
信号(MIDIメッセージ)をやり取り出来るようにな
っていて、その内部には、MIDI出力へのMIDIメ
ッセージのパラレル/シリアル変換や、MIDI入力の
シリアル/パラレル変換を行う変換器を含むほか、MI
DIメッセージの入出力タイミングを制御するタイマを
含む。
信号(MIDIメッセージ)をやり取り出来るようにな
っていて、その内部には、MIDI出力へのMIDIメ
ッセージのパラレル/シリアル変換や、MIDI入力の
シリアル/パラレル変換を行う変換器を含むほか、MI
DIメッセージの入出力タイミングを制御するタイマを
含む。
【0027】このタイマによって、後述するように、再
生時には、1つのパケットのインターバル(タイム)デ
ータにしたがって、前のMIDI出力からのタイミング
をはかって、パケットのMIDIデータ部分を出力し、
記録時には、MIDI入力に対して、前のMIDIデー
タの入力された時点からの間隔を表すインターバル(タ
イム)データを付けて入力データをパケット化する。
生時には、1つのパケットのインターバル(タイム)デ
ータにしたがって、前のMIDI出力からのタイミング
をはかって、パケットのMIDIデータ部分を出力し、
記録時には、MIDI入力に対して、前のMIDIデー
タの入力された時点からの間隔を表すインターバル(タ
イム)データを付けて入力データをパケット化する。
【0028】そして、このMIDII/O303は、上
記タイマの機能によって、タイミングを取りながら、D
MAC100に対し、DMA転送要求RQ3を発生す
る。
記タイマの機能によって、タイミングを取りながら、D
MAC100に対し、DMA転送要求RQ3を発生す
る。
【0029】DMAC100のCH3は、この到来する
要求信号RQ3についてのDMA転送を実行すべくアク
ノーレッジ(回答信号)ACK3をMIDII/O30
3に対し送り、バス10を専有する。また、所定のリー
ド/ライト制御信号(図2では特に図示せず)もDMA
C100はMIDII/O303に対して送出する。同
時に、上記DMA可能信号DMAENBをCPU121
に与える。
要求信号RQ3についてのDMA転送を実行すべくアク
ノーレッジ(回答信号)ACK3をMIDII/O30
3に対し送り、バス10を専有する。また、所定のリー
ド/ライト制御信号(図2では特に図示せず)もDMA
C100はMIDII/O303に対して送出する。同
時に、上記DMA可能信号DMAENBをCPU121
に与える。
【0030】HDC201は、CPU121のプログラ
ミングに従って、ハードディスク200とバッファ40
0の所望のエリアとの間のデータ転送をDMAC100
に要求する。その要求信号RQ4に応答して、DMAC
100のCH4は、上記同様にして、バス10を占有し
てDMA転送を行なう。つまり、DMAC100は、ハ
ードディスク200とバッファ400内の指定されるバ
ッファとの間で転送するようアクノーレッジACK4を
HDC201に対し送る。また、所定のリード/ライト
制御信号R/WもHDC201に対してDMAC100
は送出する。
ミングに従って、ハードディスク200とバッファ40
0の所望のエリアとの間のデータ転送をDMAC100
に要求する。その要求信号RQ4に応答して、DMAC
100のCH4は、上記同様にして、バス10を占有し
てDMA転送を行なう。つまり、DMAC100は、ハ
ードディスク200とバッファ400内の指定されるバ
ッファとの間で転送するようアクノーレッジACK4を
HDC201に対し送る。また、所定のリード/ライト
制御信号R/WもHDC201に対してDMAC100
は送出する。
【0031】ところで、DMAC100に対し、複数の
要求信号RQが同時に到来することが有りうる。この場
合、DMAC100は、RQ1>RQ2>RQ3>RQ
4の優先順位に従ってDMA転送制御を実行する。この
優先順位は、DMA転送の実行の緊急性に基づいてい
る。
要求信号RQが同時に到来することが有りうる。この場
合、DMAC100は、RQ1>RQ2>RQ3>RQ
4の優先順位に従ってDMA転送制御を実行する。この
優先順位は、DMA転送の実行の緊急性に基づいてい
る。
【0032】つまり、オーディオ信号のデータ転送は、
各サンプリング時に正しく行わないと再生音声が極めて
不自然になる。これに対し、MIDI信号のデータ転送
は、音声信号ほどデータ転送のタイミングは、シビアで
なく優先順位は下になっている。そして、CH4につい
ては、ハードディスク200とバッファ400との間の
データ転送を行なうものであり、バッファ400には、
時間的余裕を見込んであるので、ハードディスク200
とバッファ400との間のデータ転送中に他のDMA転
送が要求されて、それを先に割込みして実行したとして
も特段問題は生じない。
各サンプリング時に正しく行わないと再生音声が極めて
不自然になる。これに対し、MIDI信号のデータ転送
は、音声信号ほどデータ転送のタイミングは、シビアで
なく優先順位は下になっている。そして、CH4につい
ては、ハードディスク200とバッファ400との間の
データ転送を行なうものであり、バッファ400には、
時間的余裕を見込んであるので、ハードディスク200
とバッファ400との間のデータ転送中に他のDMA転
送が要求されて、それを先に割込みして実行したとして
も特段問題は生じない。
【0033】<DMAC100の構成>次に、DMAC
100の一構成例について説明する。DMAC100
は、図3に示すように、4チャンネル構成であって、上
述したとおり、チャンネルCH1、CH2が、オーディ
オトラックTr1、2に対応し、オーディオI/O30
1、302とバッファ400の音声バッファ(Tr1、
2)との間の音声(オーディオ)データの1サンプル毎
のデータ転送(シングル転送)を行い、チャンネルCH
3がMIDIトラックに対応し、MIDII/O303
とバッファ400のMIDIバッファとの間のMIDI
データの1パケット毎のデータ転送を行う。更に、チャ
ンネルCH4は、バッファ400のうちの指定されたバ
ッファと、ハードディスク200との間のデータ転送
(ブロック転送)を行う。
100の一構成例について説明する。DMAC100
は、図3に示すように、4チャンネル構成であって、上
述したとおり、チャンネルCH1、CH2が、オーディ
オトラックTr1、2に対応し、オーディオI/O30
1、302とバッファ400の音声バッファ(Tr1、
2)との間の音声(オーディオ)データの1サンプル毎
のデータ転送(シングル転送)を行い、チャンネルCH
3がMIDIトラックに対応し、MIDII/O303
とバッファ400のMIDIバッファとの間のMIDI
データの1パケット毎のデータ転送を行う。更に、チャ
ンネルCH4は、バッファ400のうちの指定されたバ
ッファと、ハードディスク200との間のデータ転送
(ブロック転送)を行う。
【0034】このDMAC100は、アドレスバスと接
続される入力側(IN)のアドレスバッファ101と出
力側(OUT)のアドレスバッファ102を有する。入
力側のアドレスバッファ101に与えられるアドレス信
号によって、レジスタセレクタ103の指定内容が変化
し、アドレスレジスタ104とコントロールレジスタ1
05とに存在する所望のレジスタが指定されることにな
る。
続される入力側(IN)のアドレスバッファ101と出
力側(OUT)のアドレスバッファ102を有する。入
力側のアドレスバッファ101に与えられるアドレス信
号によって、レジスタセレクタ103の指定内容が変化
し、アドレスレジスタ104とコントロールレジスタ1
05とに存在する所望のレジスタが指定されることにな
る。
【0035】上述したように、アドレスレジスタ10
4、コントロールレジスタ105には、4つのチャンネ
ルCH1〜4に対応するレジスタがあり、アドレスレジ
スタ104には、バッファ400の対応するエリアのカ
レントアドレスとスタートアドレスとを少なくとも記憶
するエリアを有し、コントロールレジスタ105には、
例えば、DMA転送の方向を決めるコントロールデータ
が記憶される。
4、コントロールレジスタ105には、4つのチャンネ
ルCH1〜4に対応するレジスタがあり、アドレスレジ
スタ104には、バッファ400の対応するエリアのカ
レントアドレスとスタートアドレスとを少なくとも記憶
するエリアを有し、コントロールレジスタ105には、
例えば、DMA転送の方向を決めるコントロールデータ
が記憶される。
【0036】このアドレスレジスタ104、コントロー
ルレジスタ105の内容は、データバッファ106を介
してバス10に対して入出力可能となっている。そし
て、これらの各構成要素を制御しているのが、タイミン
グコントロールロジック107、サービスコントローラ
108、チャンネルセレクタ109である。
ルレジスタ105の内容は、データバッファ106を介
してバス10に対して入出力可能となっている。そし
て、これらの各構成要素を制御しているのが、タイミン
グコントロールロジック107、サービスコントローラ
108、チャンネルセレクタ109である。
【0037】サービスコントローラ108は、ハードロ
ジックもしくはマイクロプログラム制御構成となってい
て、タイミングコントロールロジック107からの信
号、オーディオI/O301、302、MIDII/O
303、HDC201からのDMA転送要求信号RQ1
〜4やCPU121からの各種制御信号を受け取り、上
記各構成要素に対しての回答としてアクノーレッジ信号
ACK1〜4を出力するほか、タイミングコントローラ
107に対し、各種制御指令を出したりする。
ジックもしくはマイクロプログラム制御構成となってい
て、タイミングコントロールロジック107からの信
号、オーディオI/O301、302、MIDII/O
303、HDC201からのDMA転送要求信号RQ1
〜4やCPU121からの各種制御信号を受け取り、上
記各構成要素に対しての回答としてアクノーレッジ信号
ACK1〜4を出力するほか、タイミングコントローラ
107に対し、各種制御指令を出したりする。
【0038】チャンネルセレクタ109は、アドレスレ
ジスタ104、コントロールレジスタ105のなかの各
チャンネルCH1〜4に対するレジスタを選択的に指定
する。
ジスタ104、コントロールレジスタ105のなかの各
チャンネルCH1〜4に対するレジスタを選択的に指定
する。
【0039】タイミングコントロールロジック107
は、サービスコントローラ108からの制御信号を受け
て、アドレスバッファ102、データバッファ106の
入出力制御をするほか、アドレスインクリメンタ110
を動作させて、アドレスレジスタ104の中の指定され
たチャンネルのカレントアドレスをインクリメントす
る。尚、各チャンネルのカレントアドレスが最終アドレ
スまで到達したときは、アドレスインクリメンタ110
はそのチャンネルの最初のアドレスをカレントアドレス
として設定する。このようにしてバッファ400の各エ
リアをリングバッファ構成とする。
は、サービスコントローラ108からの制御信号を受け
て、アドレスバッファ102、データバッファ106の
入出力制御をするほか、アドレスインクリメンタ110
を動作させて、アドレスレジスタ104の中の指定され
たチャンネルのカレントアドレスをインクリメントす
る。尚、各チャンネルのカレントアドレスが最終アドレ
スまで到達したときは、アドレスインクリメンタ110
はそのチャンネルの最初のアドレスをカレントアドレス
として設定する。このようにしてバッファ400の各エ
リアをリングバッファ構成とする。
【0040】<ハードディスク200の記憶内容>図4
に、ハードディスク200の1曲分のデータフォーマッ
トの一例が示してあり、ミュージックデータサプライヤ
2からデータ転送されている場合もこのフォーマットに
従っていて、この例によると1曲のデータが大きく分け
て4つのエリアに分割されている。尚、ハードディスク
200には複数の曲のデータが同様に記録される。スタ
ートコードに続くエリアには、当該曲の演奏スケジュー
ルを決める曲スケジュールテーブルのエリアと、バッフ
ァ400内のMIDIバッファとデータのやり取りを行
うシーケンサ(MIDI)データのエリアと、バッファ
400の音声バッファとデータのやり取りを行なう2つ
の音声トラック(音声Tr1、Tr2)のデータのエリ
アとである。そして最後に、エンドコードが記憶される
エリアがある。
に、ハードディスク200の1曲分のデータフォーマッ
トの一例が示してあり、ミュージックデータサプライヤ
2からデータ転送されている場合もこのフォーマットに
従っていて、この例によると1曲のデータが大きく分け
て4つのエリアに分割されている。尚、ハードディスク
200には複数の曲のデータが同様に記録される。スタ
ートコードに続くエリアには、当該曲の演奏スケジュー
ルを決める曲スケジュールテーブルのエリアと、バッフ
ァ400内のMIDIバッファとデータのやり取りを行
うシーケンサ(MIDI)データのエリアと、バッファ
400の音声バッファとデータのやり取りを行なう2つ
の音声トラック(音声Tr1、Tr2)のデータのエリ
アとである。そして最後に、エンドコードが記憶される
エリアがある。
【0041】このうち、曲スケジュールテーブルは、イ
ベントアドレステーブルとイベントシーケンススケジュ
ールとを含む。
ベントアドレステーブルとイベントシーケンススケジュ
ールとを含む。
【0042】具体的には、イベントアドレステーブル
は、図5のようになっている。まず、MIDIデータに
ついては、複数のMIDIデータが一つのイベントとし
て登録され、イベント毎の相対的なアドレス情報がテー
ブルとして記憶される。つまり、ミュージックデータサ
プライヤ2から供給されるデータは、以下に説明すると
おり、予めイベント化されており、このイベント毎のデ
ータの相対的アドレスが指定されると、ハードディスク
200の特定の基準アドレスとの演算で絶対アドレスが
決定できる。例えば、イベント4については、スタート
アドレスはAd007であり、エンドアドレスはAd0
08である。この相対アドレスと上記基準アドレスとの
演算で、各イベントのハードディスク200上の実際の
アドレスが指定できるようになっている。このようにし
て、イベント毎のアドレスが決められるため、実際のデ
ータの書き換えを行わずともイベント単位の編集が出来
ることになり、また曲の繰り返し部分は一つのイベント
としてデータの登録がなされておればそれを繰り返して
アドレス指定すればよいこととなる。音声データに関し
ても同じであって、音声データについても図5に表され
ているとおり、複数のイベントに分割されていて、その
スタート/エンドアドレス(相対アドレス)をこのイベ
ントアドレステーブルは、記録している。
は、図5のようになっている。まず、MIDIデータに
ついては、複数のMIDIデータが一つのイベントとし
て登録され、イベント毎の相対的なアドレス情報がテー
ブルとして記憶される。つまり、ミュージックデータサ
プライヤ2から供給されるデータは、以下に説明すると
おり、予めイベント化されており、このイベント毎のデ
ータの相対的アドレスが指定されると、ハードディスク
200の特定の基準アドレスとの演算で絶対アドレスが
決定できる。例えば、イベント4については、スタート
アドレスはAd007であり、エンドアドレスはAd0
08である。この相対アドレスと上記基準アドレスとの
演算で、各イベントのハードディスク200上の実際の
アドレスが指定できるようになっている。このようにし
て、イベント毎のアドレスが決められるため、実際のデ
ータの書き換えを行わずともイベント単位の編集が出来
ることになり、また曲の繰り返し部分は一つのイベント
としてデータの登録がなされておればそれを繰り返して
アドレス指定すればよいこととなる。音声データに関し
ても同じであって、音声データについても図5に表され
ているとおり、複数のイベントに分割されていて、その
スタート/エンドアドレス(相対アドレス)をこのイベ
ントアドレステーブルは、記録している。
【0043】そして、このようなイベントをどのような
順番で使用するかを規定するのがイベントシーケンスス
ケジュールであり、図6は、それを時間軸に即して配列
して示したもので、図7において、具体的な内容が示し
てある。具体的には、MIDIトラックについては、イ
ベント1、2、1、・・の順、音声Tr1については、
イベント10、12、20・・の順、音声Tr2につい
てはイベント11、13、21・・の順に再生すべきこ
とが予めプログラムされている。
順番で使用するかを規定するのがイベントシーケンスス
ケジュールであり、図6は、それを時間軸に即して配列
して示したもので、図7において、具体的な内容が示し
てある。具体的には、MIDIトラックについては、イ
ベント1、2、1、・・の順、音声Tr1については、
イベント10、12、20・・の順、音声Tr2につい
てはイベント11、13、21・・の順に再生すべきこ
とが予めプログラムされている。
【0044】この図6、7から理解されるとおり、3つ
のトラック(1トラックのMIDI、2トラックの音
声)について、時(H)、分(M)、秒(S)、サンプ
ル(Sample: 音声データについては、1秒間に幾つもの
音声サンプルを読み出すことになるのでそのサンプル番
号を指定する秒以下の時間データ)の変化に対応してハ
ードディスク200から読み出し再生するイベントの順
番がイベントシーケンススケジュールにおいて、規定さ
れる。
のトラック(1トラックのMIDI、2トラックの音
声)について、時(H)、分(M)、秒(S)、サンプ
ル(Sample: 音声データについては、1秒間に幾つもの
音声サンプルを読み出すことになるのでそのサンプル番
号を指定する秒以下の時間データ)の変化に対応してハ
ードディスク200から読み出し再生するイベントの順
番がイベントシーケンススケジュールにおいて、規定さ
れる。
【0045】尚、図6において、ブランクと記してある
のは、その間は、楽音の発生(MIDIトラックの場
合)や音声の再生(音声/オーディオトラックの場合)
を停止する指示を意味する。
のは、その間は、楽音の発生(MIDIトラックの場
合)や音声の再生(音声/オーディオトラックの場合)
を停止する指示を意味する。
【0046】このように、曲に応じて、イベント単位の
MIDIデータと、音声データとが、適宜組合わせた形
で再生できるように予めハードディスク200に記憶さ
れることとなる。
MIDIデータと、音声データとが、適宜組合わせた形
で再生できるように予めハードディスク200に記憶さ
れることとなる。
【0047】ハードディスク200のシーケンサデータ
を記憶するエリアには、図4に示すとおり、MIDIデ
ータとして、タイミング制御の為のタイムデータと0バ
イト以上のMIDIデータ(MIDIメッセージ)から
なる。このバイト長は、任意であり、その時々のMID
Iデータの構成により変化する。なおMIDIデータが
0バイトであるときは、単に時間間隔があくことを意味
する。この可変長のデータがDMA転送の基本単位とな
る。
を記憶するエリアには、図4に示すとおり、MIDIデ
ータとして、タイミング制御の為のタイムデータと0バ
イト以上のMIDIデータ(MIDIメッセージ)から
なる。このバイト長は、任意であり、その時々のMID
Iデータの構成により変化する。なおMIDIデータが
0バイトであるときは、単に時間間隔があくことを意味
する。この可変長のデータがDMA転送の基本単位とな
る。
【0048】そして、音声データは、2つのトラック
に、例えば16ビットで1サンプル表現となって記憶さ
れている。この音声データのサンプリング周波数は、た
とえば48KHzとする。この2つのトラックにはステ
レオ再生の為に右、左の音声データを記憶するようにし
てもよく、別々の音声パート(例えば、楽器音とボーカ
ルとのように分ける。)を受け持つようにして、選択的
に再生を行えるようにしてもよい。更にトラックの数を
増してマルチトラックの演奏が行えるようにすることも
出来る。
に、例えば16ビットで1サンプル表現となって記憶さ
れている。この音声データのサンプリング周波数は、た
とえば48KHzとする。この2つのトラックにはステ
レオ再生の為に右、左の音声データを記憶するようにし
てもよく、別々の音声パート(例えば、楽器音とボーカ
ルとのように分ける。)を受け持つようにして、選択的
に再生を行えるようにしてもよい。更にトラックの数を
増してマルチトラックの演奏が行えるようにすることも
出来る。
【0049】なお、ハードディスク200とバッファ4
00とのデータ転送は、必ずしも上述した単位でなくて
よく、要は、ハードディスク200のデータ記憶再生順
序と、バッファ400の記憶再生順序とが対応しておれ
ばよい。問題は、バッファ400と各I/O301〜3
02とのデータ転送の単位が上述したように制御される
ことである。
00とのデータ転送は、必ずしも上述した単位でなくて
よく、要は、ハードディスク200のデータ記憶再生順
序と、バッファ400の記憶再生順序とが対応しておれ
ばよい。問題は、バッファ400と各I/O301〜3
02とのデータ転送の単位が上述したように制御される
ことである。
【0050】<CPU121の動作フロー>次に、本実
施例の動作について説明する。図8は、CPU121の
動作を示すメインフローであり、図9は、CPU121
のインタラプトルーチンを示すフローである。
施例の動作について説明する。図8は、CPU121の
動作を示すメインフローであり、図9は、CPU121
のインタラプトルーチンを示すフローである。
【0051】先ず、8ー1で、キーボード123等によ
ってユーザが指定した命令を判断する。ミュージックデ
ータサプライヤ2に対し、特定の曲のデータを転送する
ことを指示するときは、8ー2に進み、自動演奏装置1
2内部の動作設定を行った後、8ー3において曲のデー
タの転送を受け付けるようにする。このとき、自動演奏
装置12では、コントローラ11を経由して供給される
曲のデータをバス10を介してバッファ400を使用し
て順次取込み、それを、ハードディスク200に記憶す
る。このときの書込み動作は、DMAC100の特定チ
ャンネルを使用してなされる。そして、この書込み動作
は、8ー4において、終了が検出されるまで続けられ
る。
ってユーザが指定した命令を判断する。ミュージックデ
ータサプライヤ2に対し、特定の曲のデータを転送する
ことを指示するときは、8ー2に進み、自動演奏装置1
2内部の動作設定を行った後、8ー3において曲のデー
タの転送を受け付けるようにする。このとき、自動演奏
装置12では、コントローラ11を経由して供給される
曲のデータをバス10を介してバッファ400を使用し
て順次取込み、それを、ハードディスク200に記憶す
る。このときの書込み動作は、DMAC100の特定チ
ャンネルを使用してなされる。そして、この書込み動作
は、8ー4において、終了が検出されるまで続けられ
る。
【0052】このデータ転送動作が終了すると、8ー1
にもどり、次のユーザからの指定を待つ。従って、ユー
ザの指定により、ミュージックデータサプライヤ2から
1ないし複数の曲のデータがハードディスク200に転
送記録される。
にもどり、次のユーザからの指定を待つ。従って、ユー
ザの指定により、ミュージックデータサプライヤ2から
1ないし複数の曲のデータがハードディスク200に転
送記録される。
【0053】8ー1において、曲再生モードに入ること
が指定されたとき、8ー5に進み、演奏すべき曲の指定
を受け付け、8ー6において、ハードディスク200か
らワークRAM122に対し、曲スケジュールテーブル
つまりイベントアドレステーブルと、イベントシーケン
ススケジュールとを転送記録する。このとき、ハードデ
ィスク200からのデータの読み出し、RAM122へ
のデータ転送記録は、DMAC100の特定のチャンネ
ルを用いて行う。
が指定されたとき、8ー5に進み、演奏すべき曲の指定
を受け付け、8ー6において、ハードディスク200か
らワークRAM122に対し、曲スケジュールテーブル
つまりイベントアドレステーブルと、イベントシーケン
ススケジュールとを転送記録する。このとき、ハードデ
ィスク200からのデータの読み出し、RAM122へ
のデータ転送記録は、DMAC100の特定のチャンネ
ルを用いて行う。
【0054】8ー7においては、実際の演奏動作に入る
ため、DMAC100の各チャンネルの初期設定をす
る。即ちバッファ400を介してのデータ転送動作が行
えるように設定する。このときあわせて、必要ならば、
MIDII/O、オーディオI/O301、302の初
期設定を行う。
ため、DMAC100の各チャンネルの初期設定をす
る。即ちバッファ400を介してのデータ転送動作が行
えるように設定する。このときあわせて、必要ならば、
MIDII/O、オーディオI/O301、302の初
期設定を行う。
【0055】続いて、8ー8において、動作スタートの
為、図9に示されるインタラプトルーチンをソフト的な
割り込みにより実行する。このときハードディスク20
0のいずれのエリアからデータを読み出すかはRAM1
22の曲スケジュールテーブルに従う。
為、図9に示されるインタラプトルーチンをソフト的な
割り込みにより実行する。このときハードディスク20
0のいずれのエリアからデータを読み出すかはRAM1
22の曲スケジュールテーブルに従う。
【0056】図9の9ー1にあっては、次に転送すべき
トラックを決定する。いま全てのトラックが動作中であ
ると、優先順位がCH1、CH2、CH3、CH4の順
となるので、最初に音声トラックTr1に対応するDM
AチャンネルCH1をデータ転送のトラックとして9ー
1では決定する。このときTr1が再生動作をするので
あれば、ハードディスク200からデジタル音声データ
をバッファ400の音声バッファ(Tr1)にブロック
転送するようになり、Tr1が記録動作をするのであれ
ば、バッファ400の音声バッファ(Tr1)からハー
ドディスク200の対応するエリアのブロック転送する
ようになる。
トラックを決定する。いま全てのトラックが動作中であ
ると、優先順位がCH1、CH2、CH3、CH4の順
となるので、最初に音声トラックTr1に対応するDM
AチャンネルCH1をデータ転送のトラックとして9ー
1では決定する。このときTr1が再生動作をするので
あれば、ハードディスク200からデジタル音声データ
をバッファ400の音声バッファ(Tr1)にブロック
転送するようになり、Tr1が記録動作をするのであれ
ば、バッファ400の音声バッファ(Tr1)からハー
ドディスク200の対応するエリアのブロック転送する
ようになる。
【0057】つまり、9ー2において、DMAC100
のDMAC100のCH1のスタートアドレスをCH4
のスタートアドレスとしてコピーする。続いて、今の場
合CH1のスタートアドレスとカレントアドレスとから
今回のブロック転送するデータ転送数を算出する(9ー
3)。そして、9ー4において、当該チャンネル(いま
CH1)のスタートアドレスとしてブロック転送の終了
によって結果的にとる現時点のカレントアドレスを設定
する。
のDMAC100のCH1のスタートアドレスをCH4
のスタートアドレスとしてコピーする。続いて、今の場
合CH1のスタートアドレスとカレントアドレスとから
今回のブロック転送するデータ転送数を算出する(9ー
3)。そして、9ー4において、当該チャンネル(いま
CH1)のスタートアドレスとしてブロック転送の終了
によって結果的にとる現時点のカレントアドレスを設定
する。
【0058】このようにして、CPU121は、9ー1
から9ー4において、DMAC100に対して、各設定
制御をしたのち、9ー5に進みワークRAM122に記
憶されているハードディスク200の当該トラックのデ
ィスクアクセスポインタを取り出し、更に9ー6におい
て、DMAC201のコントロールレジスタ105のC
H1のエリアの内容によって得られるTr1の動作モー
ドと、このTr1のディスクアクセスポインタと、9ー
3で決定したデータ転送数とによって、HDC201を
プログラミングする。さらには、イベントの変更時に
は、曲スケジュールテーブルの内容によって、転送する
イベントの切り換えを行う。つまり、再生スタートから
の経過時間、イベント毎のデータの転送状態にしたがっ
てCPU121が、HDC201に対して転送内容を適
宜プログラムすることで上記切り換えを実現する。
から9ー4において、DMAC100に対して、各設定
制御をしたのち、9ー5に進みワークRAM122に記
憶されているハードディスク200の当該トラックのデ
ィスクアクセスポインタを取り出し、更に9ー6におい
て、DMAC201のコントロールレジスタ105のC
H1のエリアの内容によって得られるTr1の動作モー
ドと、このTr1のディスクアクセスポインタと、9ー
3で決定したデータ転送数とによって、HDC201を
プログラミングする。さらには、イベントの変更時に
は、曲スケジュールテーブルの内容によって、転送する
イベントの切り換えを行う。つまり、再生スタートから
の経過時間、イベント毎のデータの転送状態にしたがっ
てCPU121が、HDC201に対して転送内容を適
宜プログラムすることで上記切り換えを実現する。
【0059】その結果、HDC201は、Tr1につい
ての指定された方向のDMA転送をDMAC100に要
求する。DMAC100は指定されたDMA転送を実行
することになる。
ての指定された方向のDMA転送をDMAC100に要
求する。DMAC100は指定されたDMA転送を実行
することになる。
【0060】続いて、9ー7において、CPU121
は、ワークRAM122内のTr1のディスクアクセス
ポインタを上述した転送処理した結果取るであろう値ま
で更新する。
は、ワークRAM122内のTr1のディスクアクセス
ポインタを上述した転送処理した結果取るであろう値ま
で更新する。
【0061】このように、ハードディスク200とバッ
ファ400との間のデータ転送は、この後DMAC10
0が全て実行することになり、CPU121は、このD
MA転送が完了したときにハードディスク200のアク
セスポインタが取る値を9ー7でセットするのである。
そして、メインルーチン(図8)にリターンする。
ファ400との間のデータ転送は、この後DMAC10
0が全て実行することになり、CPU121は、このD
MA転送が完了したときにハードディスク200のアク
セスポインタが取る値を9ー7でセットするのである。
そして、メインルーチン(図8)にリターンする。
【0062】後の説明でもわかるとおり、最初の割込み
ルーチン(図9)が起動されて、HDC201が一度動
かされると、後は、CPU121が指定したデータブロ
ックの転送が終了する度に、HDC201が割り込みを
かけるので、CPU121が行うのは、キー入力がキー
ボード123等によってなされたか否か等についての判
断及びそれに対する処理(8ー9)である。そして、も
し、8ー10において曲再生の動作が終了したことが検
知されると、CPU121は、図2に示す各回路の動作
を終了するように8ー11で設定した後、8ー1に戻
る。
ルーチン(図9)が起動されて、HDC201が一度動
かされると、後は、CPU121が指定したデータブロ
ックの転送が終了する度に、HDC201が割り込みを
かけるので、CPU121が行うのは、キー入力がキー
ボード123等によってなされたか否か等についての判
断及びそれに対する処理(8ー9)である。そして、も
し、8ー10において曲再生の動作が終了したことが検
知されると、CPU121は、図2に示す各回路の動作
を終了するように8ー11で設定した後、8ー1に戻
る。
【0063】また、8ー1において、その他の処理(例
えば、ユーザが、音声を入力記憶したり、MIDIデー
タを入力記憶したりする処理)が指定されると、8ー1
2に進んで、指定された動作を実行する。このときの動
作は、ここでは、詳述しないが、DMAC100を中心
にバッファ400とオーディオI/O301、302、
MIDII/O303との間のデータ転送、ならびにハ
ードディスク200とバッファ400との間のデータ転
送が実行される。
えば、ユーザが、音声を入力記憶したり、MIDIデー
タを入力記憶したりする処理)が指定されると、8ー1
2に進んで、指定された動作を実行する。このときの動
作は、ここでは、詳述しないが、DMAC100を中心
にバッファ400とオーディオI/O301、302、
MIDII/O303との間のデータ転送、ならびにハ
ードディスク200とバッファ400との間のデータ転
送が実行される。
【0064】そして、これらの処理が終了したことが検
知されると、8ー13から8ー14に進み、内部の回路
動作の終了設定処理を行う。そして、再び8ー1にもど
る。
知されると、8ー13から8ー14に進み、内部の回路
動作の終了設定処理を行う。そして、再び8ー1にもど
る。
【0065】<音声入出力動作>次に、本実施例の動作
のうち、オーディオI/O301、302とバッファ4
00あるいはハードディスク200との関係についての
動作を説明する。図10は、オーディオI/O301、
302の動作のフローチャートを示し、図14は、この
動作のタイムチャートを示しており、図14(a)がプ
レイモード、図14(b)がレコードモードを示してい
る。
のうち、オーディオI/O301、302とバッファ4
00あるいはハードディスク200との関係についての
動作を説明する。図10は、オーディオI/O301、
302の動作のフローチャートを示し、図14は、この
動作のタイムチャートを示しており、図14(a)がプ
レイモード、図14(b)がレコードモードを示してい
る。
【0066】まず、図14を用いて、動作の概略を説明
する。プレイモードにおいては、ハードディスク200
の音声トラックエリアからリングバッファとなっている
音声バッファTr1またはTr2(バッファ400の一
部)に順次データ転送がなされデータの先読みが行なわ
れる。そして、この音声バッファからオーディオデータ
を読み出すべく、毎サンプリングタイムで(厳密に言う
と、図14(a)にある通り、サンプリング周期(f
s)より前に)、オーディオI/O301、302は、
DMA転送要求RQ1、2をDMAC100に対し出力
する。そして、DMAC100のCH1、2によって、
DMA転送が行なえるようになるとアクノーレッジAC
K1、2が返ってきて、実際のデータ転送がバッファ4
00からオーディオI/O301、302に向けて行な
われる。
する。プレイモードにおいては、ハードディスク200
の音声トラックエリアからリングバッファとなっている
音声バッファTr1またはTr2(バッファ400の一
部)に順次データ転送がなされデータの先読みが行なわ
れる。そして、この音声バッファからオーディオデータ
を読み出すべく、毎サンプリングタイムで(厳密に言う
と、図14(a)にある通り、サンプリング周期(f
s)より前に)、オーディオI/O301、302は、
DMA転送要求RQ1、2をDMAC100に対し出力
する。そして、DMAC100のCH1、2によって、
DMA転送が行なえるようになるとアクノーレッジAC
K1、2が返ってきて、実際のデータ転送がバッファ4
00からオーディオI/O301、302に向けて行な
われる。
【0067】そして、オーディオI/O301、302
内のバッファに記憶されたオーディオデータは、サンプ
リングクロック(fs)に同期して、データがデジタル
アナログ変換されて音声出力となる。
内のバッファに記憶されたオーディオデータは、サンプ
リングクロック(fs)に同期して、データがデジタル
アナログ変換されて音声出力となる。
【0068】このようにして、音声バッファに対し、ハ
ードディスク200から先読みされて蓄積されたオーデ
ィオデータは、順次読み出されサンプリングタイム毎に
アナログ信号に変換されて出力される。そして、後述す
るように、DMAC100のCH4の働きによって、全
てのデータが読み出されて音声バッファが空になる前
に、ハードディスク200から次のブロックのオーディ
オデータがデータ転送される。従って、ハードディスク
200のアクセス速度はそれ程高くなくても、サンプリ
ング時の音声再生動作は高速で行なえることになる。
ードディスク200から先読みされて蓄積されたオーデ
ィオデータは、順次読み出されサンプリングタイム毎に
アナログ信号に変換されて出力される。そして、後述す
るように、DMAC100のCH4の働きによって、全
てのデータが読み出されて音声バッファが空になる前
に、ハードディスク200から次のブロックのオーディ
オデータがデータ転送される。従って、ハードディスク
200のアクセス速度はそれ程高くなくても、サンプリ
ング時の音声再生動作は高速で行なえることになる。
【0069】レコードモードにおいては、外部から供給
されるアナログステレオ信号をサンプリングクロック
(fs)に同期して、アナログデジタル変換してオーデ
ィオI/O301、302内のバッファに取込む。そし
て、DMA転送要求RQ1、2をDMAC100に送
り、そのアクノーレッジACK1、2の到来に応じてオ
ーディオI/O301、302からそのデータをバッフ
ァ400内の音声バッファTr1、Tr2にDMA転送
する。
されるアナログステレオ信号をサンプリングクロック
(fs)に同期して、アナログデジタル変換してオーデ
ィオI/O301、302内のバッファに取込む。そし
て、DMA転送要求RQ1、2をDMAC100に送
り、そのアクノーレッジACK1、2の到来に応じてオ
ーディオI/O301、302からそのデータをバッフ
ァ400内の音声バッファTr1、Tr2にDMA転送
する。
【0070】このようにして、バッファ400内の音声
バッファTr1、Tr2には、サンプリング毎に音声デ
ータが蓄積されてゆくが、音声バッファが満配になる前
に、DMAC100のCH4の働きによって、予め蓄積
されたバッファ400内の音声データは、ハードディス
ク200へブロック転送されることになる。このよう
に、レコードモードにおいても、ハードディスク200
のアクセス速度はそれ程高くなくても、音声記録動作
は、サンプリングタイムで高速に行なえる。
バッファTr1、Tr2には、サンプリング毎に音声デ
ータが蓄積されてゆくが、音声バッファが満配になる前
に、DMAC100のCH4の働きによって、予め蓄積
されたバッファ400内の音声データは、ハードディス
ク200へブロック転送されることになる。このよう
に、レコードモードにおいても、ハードディスク200
のアクセス速度はそれ程高くなくても、音声記録動作
は、サンプリングタイムで高速に行なえる。
【0071】この動作は、図10によるフローに従って
実行される。このフローチャートは、マイクロプログラ
ム制御によるものであってもよく、ハードロジック制御
によるものであってもよく、機能実現手段は、種々選択
できる。
実行される。このフローチャートは、マイクロプログラ
ム制御によるものであってもよく、ハードロジック制御
によるものであってもよく、機能実現手段は、種々選択
できる。
【0072】さて、10ー1において、CPU121か
ら当該オーディオI/O301、302の指定信号(図
2では特に図示せず)がアクティブになっているか否か
ジャッジし、YESならば、10ー2において、CPU
121により動作状態(レコード、プレイ、ストップ
等)が設定される。これは、図8の8ー7等に応答して
なされる。
ら当該オーディオI/O301、302の指定信号(図
2では特に図示せず)がアクティブになっているか否か
ジャッジし、YESならば、10ー2において、CPU
121により動作状態(レコード、プレイ、ストップ
等)が設定される。これは、図8の8ー7等に応答して
なされる。
【0073】そして、10ー1において、NOの判断が
なされると、10ー3において、当該オーディオI/O
301、302がレコード状態であるのかプレイ状態で
あるのか判断され、レコード状態であると判断される
と、続いて10ー3から10ー4〜10ー9の処理へ進
み、プレイ状態であると判断されると10ー10〜10
ー15に進む。
なされると、10ー3において、当該オーディオI/O
301、302がレコード状態であるのかプレイ状態で
あるのか判断され、レコード状態であると判断される
と、続いて10ー3から10ー4〜10ー9の処理へ進
み、プレイ状態であると判断されると10ー10〜10
ー15に進む。
【0074】先ず、レコード状態に設定された場合につ
いての動作を説明する。10ー4において、サンプリン
グ時刻となったか否か判断し、サンプリング時刻となる
までこの10ー4を繰り返す。尚、このサンプリング時
刻の判断は、オーディオI/O301、302の内部に
夫々ハードタイマをもってその出力によって行ってもよ
く、あるいは、共通のハードタイマを設けてその出力に
よって各オーディオI/O301、302が動作するよ
うにしてもよい。また各オーディオI/O301、30
2において、サンプリング周波数を異ならせてもよい。
いての動作を説明する。10ー4において、サンプリン
グ時刻となったか否か判断し、サンプリング時刻となる
までこの10ー4を繰り返す。尚、このサンプリング時
刻の判断は、オーディオI/O301、302の内部に
夫々ハードタイマをもってその出力によって行ってもよ
く、あるいは、共通のハードタイマを設けてその出力に
よって各オーディオI/O301、302が動作するよ
うにしてもよい。また各オーディオI/O301、30
2において、サンプリング周波数を異ならせてもよい。
【0075】さて、10ー4において、YESの判断が
なされると、与えられるアナログ音声信号は、10ー5
において、サンプルホールド(S/H)され、A/D変
換される。続いて、10ー6において、DMAC100
に対して、DMA転送要求RQ1、2をアクティブにし
て出力する。
なされると、与えられるアナログ音声信号は、10ー5
において、サンプルホールド(S/H)され、A/D変
換される。続いて、10ー6において、DMAC100
に対して、DMA転送要求RQ1、2をアクティブにし
て出力する。
【0076】DMAC100は、この要求信号RQ1、
2を受け取り、DMA転送を行うべくその回答信号AC
K1、2を出力する(その詳細動作は、後述する。)従
って、レコード状態であるオーディオI/O301、3
02は、10ー7がYESとなると、11ー8に進み、
A/D変換して得たデジタル音声データをバス10に出
力し、対応するバッファTr1、Tr2へ送る。このよ
うにして、サンプリング周期毎に、外部から与えられる
アナログ音声信号をデジタル音声信号に変換してDMA
C100にて夫々指定されるバッファのカレントアドレ
スに転送する。
2を受け取り、DMA転送を行うべくその回答信号AC
K1、2を出力する(その詳細動作は、後述する。)従
って、レコード状態であるオーディオI/O301、3
02は、10ー7がYESとなると、11ー8に進み、
A/D変換して得たデジタル音声データをバス10に出
力し、対応するバッファTr1、Tr2へ送る。このよ
うにして、サンプリング周期毎に、外部から与えられる
アナログ音声信号をデジタル音声信号に変換してDMA
C100にて夫々指定されるバッファのカレントアドレ
スに転送する。
【0077】また、11ー3において、プレイ状態であ
ると判断されると、11ー10に進み、DMAC100
に対し、DMA転送要求RQ1、2をアクティブにし、
DMAC100からの回答信号ACK1、2の到来を待
って(10ー11)、バス10上のデジタル音声データ
を取り込み(10ー12)、上記要求RQ1、2をイン
アクティブにする(10ー13)。このときのDMAC
100の動作は後述するが、対応するバッファ400
(Tr1、Tr2)のカレントアドレスの内容が以上の
操作でオーディオI/O301、302に入力設定され
ることになる。
ると判断されると、11ー10に進み、DMAC100
に対し、DMA転送要求RQ1、2をアクティブにし、
DMAC100からの回答信号ACK1、2の到来を待
って(10ー11)、バス10上のデジタル音声データ
を取り込み(10ー12)、上記要求RQ1、2をイン
アクティブにする(10ー13)。このときのDMAC
100の動作は後述するが、対応するバッファ400
(Tr1、Tr2)のカレントアドレスの内容が以上の
操作でオーディオI/O301、302に入力設定され
ることになる。
【0078】そして、サンプリング時刻となったか否か
判断する(10ー14)。このサンプリング時刻の到来
のチェックは、10ー4で述べたと同様に行われる。1
0ー14において、YESとなると10ー15に進み、
D/A変換、ローパスフィルタリングを実行した上でア
ナログ音声信号を外部に出力する。
判断する(10ー14)。このサンプリング時刻の到来
のチェックは、10ー4で述べたと同様に行われる。1
0ー14において、YESとなると10ー15に進み、
D/A変換、ローパスフィルタリングを実行した上でア
ナログ音声信号を外部に出力する。
【0079】以上レコード状態の場合と、プレイ状態の
場合の一つのサンプリング時刻における動作を説明した
が、10ー9、10ー15の各処理の後、10ー1に戻
り、以下同様にして、次々とサンプリング時刻に対する
処理を実行する。
場合の一つのサンプリング時刻における動作を説明した
が、10ー9、10ー15の各処理の後、10ー1に戻
り、以下同様にして、次々とサンプリング時刻に対する
処理を実行する。
【0080】尚、2つのオーディオI/O301、30
2はともにレコード状態、プレイ状態をとることが出来
るほか、一方をレコード状態とし、他方をプレイ状態と
することが出来る。そして、特にこのプレイ状態の動作
が、すでに説明した図8のCPU121の曲再生のステ
ップ(8ー7〜8ー11)でオーディオI/O301、
302において実行されることとなる。
2はともにレコード状態、プレイ状態をとることが出来
るほか、一方をレコード状態とし、他方をプレイ状態と
することが出来る。そして、特にこのプレイ状態の動作
が、すでに説明した図8のCPU121の曲再生のステ
ップ(8ー7〜8ー11)でオーディオI/O301、
302において実行されることとなる。
【0081】<MIDI入出力動作>次に、本実施例の
動作のうち、MIDII/O303とバッファ400あ
るいはハードディスク200との関係についての動作を
説明する。図11は、MIDII/O303の動作のフ
ローチャートを示し、図15は、この動作のタイムチャ
ートを示しており、図15(a)がプレイモード、図1
5(b)がレコードモードを示している。
動作のうち、MIDII/O303とバッファ400あ
るいはハードディスク200との関係についての動作を
説明する。図11は、MIDII/O303の動作のフ
ローチャートを示し、図15は、この動作のタイムチャ
ートを示しており、図15(a)がプレイモード、図1
5(b)がレコードモードを示している。
【0082】まず図15を用いて、動作の概略を説明す
る。プレイモード時においては、ハードディスク200
のMIDIトラックエリアからMIDIバッファ400
に複数回分のMIDIデータを転送しておく。このデー
タ転送は、DMAC100のCH4による。
る。プレイモード時においては、ハードディスク200
のMIDIトラックエリアからMIDIバッファ400
に複数回分のMIDIデータを転送しておく。このデー
タ転送は、DMAC100のCH4による。
【0083】そして、1つのパケットにかかわるMID
Iデータのうちインターバル(タイム)データの転送を
MIDII/O303はDMAC100に対し要求する
(RQ3の送出)。そのアクノーレッジACK3の到来
と共にMIDII/O303にそのデータがバッファ4
00内のMIDIバッファから供給され、上述した内部
タイマにおいて対応する時間間隔を計測開始する。
Iデータのうちインターバル(タイム)データの転送を
MIDII/O303はDMAC100に対し要求する
(RQ3の送出)。そのアクノーレッジACK3の到来
と共にMIDII/O303にそのデータがバッファ4
00内のMIDIバッファから供給され、上述した内部
タイマにおいて対応する時間間隔を計測開始する。
【0084】その時間経過がMIDII/O303にお
いて判断されると、再びMIDII/O303は、DM
AC100にDMA転送要求RQ3を送出する。そし
て、MIDIメッセージがバッファ400内のMIDI
バッファから転送されてくると、MIDII/O303
は、パラレルシリアル変換を行ない、シリアル信号とし
て外部のMIDI機器にMIDI出力する。この動作を
1つのパケットに含まれるメッセージのバイト数分複数
回繰返し行なう。そして、それが終了すると次のインタ
ーバルデータのDMA転送を要求する。
いて判断されると、再びMIDII/O303は、DM
AC100にDMA転送要求RQ3を送出する。そし
て、MIDIメッセージがバッファ400内のMIDI
バッファから転送されてくると、MIDII/O303
は、パラレルシリアル変換を行ない、シリアル信号とし
て外部のMIDI機器にMIDI出力する。この動作を
1つのパケットに含まれるメッセージのバイト数分複数
回繰返し行なう。そして、それが終了すると次のインタ
ーバルデータのDMA転送を要求する。
【0085】このようにして、インターバルデータにて
指定される時間の経過毎に、MIDIデータが順次再生
されてゆく。そして、MIDIバッファの内容が次々と
使用されてゆくことになるが、完全に空になる前にDM
AC100のCH4によって、ハードディスク200か
ら次のMIDIデータのブロック転送がなされる。
指定される時間の経過毎に、MIDIデータが順次再生
されてゆく。そして、MIDIバッファの内容が次々と
使用されてゆくことになるが、完全に空になる前にDM
AC100のCH4によって、ハードディスク200か
ら次のMIDIデータのブロック転送がなされる。
【0086】レコードモードにおいては、外部からMI
DIデータがシリアル形式で到来する。MIDII/O
303においては、新たなMIDIデータの入力によっ
て前回のMIDIデータの入力からの時間経過を計測し
ていたタイマの出力をインターバルデータとしてMID
II/O303からMIDIバッファに転送すべく転送
要求RQ3をDMAC100に送る。そして、そのアク
ノーレッジACK3の到来と共にデータ転送をMIDI
I/O303からバッファ400のMIDIバッファに
対し実行する。
DIデータがシリアル形式で到来する。MIDII/O
303においては、新たなMIDIデータの入力によっ
て前回のMIDIデータの入力からの時間経過を計測し
ていたタイマの出力をインターバルデータとしてMID
II/O303からMIDIバッファに転送すべく転送
要求RQ3をDMAC100に送る。そして、そのアク
ノーレッジACK3の到来と共にデータ転送をMIDI
I/O303からバッファ400のMIDIバッファに
対し実行する。
【0087】そして、MIDII/O303では、入力
されたMIDIデータを内部のシリアルパラレル変換器
によって、パラレル信号にした後、DMA転送をMID
II/O303とバッファ400との間で実行する。こ
のような動作を今回のMIDI入力に係わるバイト数分
だけ複数回実行する。
されたMIDIデータを内部のシリアルパラレル変換器
によって、パラレル信号にした後、DMA転送をMID
II/O303とバッファ400との間で実行する。こ
のような動作を今回のMIDI入力に係わるバイト数分
だけ複数回実行する。
【0088】このようなデータ転送を繰返してゆくと、
バッファ400内のMIDIバッファには、MIDIデ
ータが蓄積されてゆくが、満配になる前に、DMAC1
00のCH4によって、MIDIバッファからハードデ
ィスク200のMIDIトラックエリアにブロック転送
されてゆく。
バッファ400内のMIDIバッファには、MIDIデ
ータが蓄積されてゆくが、満配になる前に、DMAC1
00のCH4によって、MIDIバッファからハードデ
ィスク200のMIDIトラックエリアにブロック転送
されてゆく。
【0089】このような動作によって、MIDIデータ
についてもハードディスク200のアクセス速度は、そ
れ程高くなくてもリアルタイムの記録再生がバッファ4
00の機能によって行なえる。
についてもハードディスク200のアクセス速度は、そ
れ程高くなくてもリアルタイムの記録再生がバッファ4
00の機能によって行なえる。
【0090】次に、図11のフローチャートを参照して
MIDII/O303の動作を説明する。この動作は、
オーディオI/O301、302と同様に、マイクロプ
ログラム制御によっても、ハードロジック制御によって
もよい。尚、オーディオI/O301、302に関連し
て述べた図10のフローチャートと同様の部分は、説明
を省略する。
MIDII/O303の動作を説明する。この動作は、
オーディオI/O301、302と同様に、マイクロプ
ログラム制御によっても、ハードロジック制御によって
もよい。尚、オーディオI/O301、302に関連し
て述べた図10のフローチャートと同様の部分は、説明
を省略する。
【0091】レコード時においては、11ー4におい
て、MIDI入力の変化があったか否か判断する。YE
Sの判断があると、11ー5において、前回のMIDI
入力からの時間を計時しているタイマ出力をタイムデー
タとして発生し、また入力されたMIDIデータを取り
込む。
て、MIDI入力の変化があったか否か判断する。YE
Sの判断があると、11ー5において、前回のMIDI
入力からの時間を計時しているタイマ出力をタイムデー
タとして発生し、また入力されたMIDIデータを取り
込む。
【0092】続いて、11ー6、11ー7を経由して、
11ー8において、1単位例えば1バイトのデータ転送
をMIDII/O303からバッファ400のMIDI
バッファに転送すべくバス10に出力する。MIDIデ
ータの場合、複数バイトにわたってデータ転送が行われ
るので、11ー9において、今回のMIDI入力につい
て全てのデータ転送の完了が検出されるまで11ー6〜
11ー9の動作が繰り返され、それが終了すると11ー
9から11ー1にもどる。
11ー8において、1単位例えば1バイトのデータ転送
をMIDII/O303からバッファ400のMIDI
バッファに転送すべくバス10に出力する。MIDIデ
ータの場合、複数バイトにわたってデータ転送が行われ
るので、11ー9において、今回のMIDI入力につい
て全てのデータ転送の完了が検出されるまで11ー6〜
11ー9の動作が繰り返され、それが終了すると11ー
9から11ー1にもどる。
【0093】プレイ時においては、予め転送されている
インターバル時間の経過を11ー10で検出する。YE
Sの判断がなされると、11ー11に進み、11ー11
で要求信号RQ3をアクティブにし、11ー12でMI
DIデータをバッファ400からバス10へ送出する。
そして11ー3で、DMAC100から回答信号ACK
3が来て、データを取り込む。これをパラレルシリアル
変換して外部に出力することになるが、MIDIデータ
は複数バイトにわたるので、11ー11〜11ー13を
そのバイト数分繰り返し、出力完了が11ー13で検知
されてから、次のMIDI出力タイミイングを規定する
インタバルデータを内部の時計(カウンタ)に設定して
(11ー14)、11ー1にもどる。
インターバル時間の経過を11ー10で検出する。YE
Sの判断がなされると、11ー11に進み、11ー11
で要求信号RQ3をアクティブにし、11ー12でMI
DIデータをバッファ400からバス10へ送出する。
そして11ー3で、DMAC100から回答信号ACK
3が来て、データを取り込む。これをパラレルシリアル
変換して外部に出力することになるが、MIDIデータ
は複数バイトにわたるので、11ー11〜11ー13を
そのバイト数分繰り返し、出力完了が11ー13で検知
されてから、次のMIDI出力タイミイングを規定する
インタバルデータを内部の時計(カウンタ)に設定して
(11ー14)、11ー1にもどる。
【0094】特に、このプレイ状態の動作が、すでに説
明した図8のCPU121の曲再生ステップ(8ー7〜
8ー11)でMIDII/O303において実行される
ことになる。
明した図8のCPU121の曲再生ステップ(8ー7〜
8ー11)でMIDII/O303において実行される
ことになる。
【0095】<DMAC100の動作>次に、図12を
参照してDMAC100の動作を説明する。この図12
のフローチャートは、図3のサービスコントローラ10
8がマイクロプログラム制御で動作しているのを表して
いるとしてもよく、あるいは、ハードロジックでDMA
C100が機能実現しているとしてもよい。
参照してDMAC100の動作を説明する。この図12
のフローチャートは、図3のサービスコントローラ10
8がマイクロプログラム制御で動作しているのを表して
いるとしてもよく、あるいは、ハードロジックでDMA
C100が機能実現しているとしてもよい。
【0096】先ず12ー1で、CPU121から選択信
号(図2では特に図示せず。)が到来しているか否か判
断し、YESならば、12ー2において、リードRD
(読み込み)か、ライトWR(書込み)のいずれがCP
U121から指定されているかを判断し、RDならば、
12ー3においてバス10を介して与えられるアドレス
信号にて指定されるレジスタ104、105の内容をバ
ス10を介して出力して、CPU121がリードできる
ようにし、逆にWRならば、12ー4に進み指定したレ
ジスタ104、105にバス10を介して所望のデータ
を設定する。この12ー4の処理は、CPU121のメ
インルーチンの8ー7等の処理に対応することになる。
号(図2では特に図示せず。)が到来しているか否か判
断し、YESならば、12ー2において、リードRD
(読み込み)か、ライトWR(書込み)のいずれがCP
U121から指定されているかを判断し、RDならば、
12ー3においてバス10を介して与えられるアドレス
信号にて指定されるレジスタ104、105の内容をバ
ス10を介して出力して、CPU121がリードできる
ようにし、逆にWRならば、12ー4に進み指定したレ
ジスタ104、105にバス10を介して所望のデータ
を設定する。この12ー4の処理は、CPU121のメ
インルーチンの8ー7等の処理に対応することになる。
【0097】このようなCPU121からのDMAC1
25に対するアクセスやプログラムが終わると選択信号
はインアクティブとされ、12ー1から12ー5に処理
は進むことになる。
25に対するアクセスやプログラムが終わると選択信号
はインアクティブとされ、12ー1から12ー5に処理
は進むことになる。
【0098】12ー5において、各I/O301〜30
3及びHDC201からDMA転送要求が来ているか否
か判断し、いずれかから要求RQが来ていると判断した
ときは、12ー6に進みDMAENBを1にし、DMA
C100がバス10を専有するようにして、CPU12
1のアクセスを受け付けなくする。
3及びHDC201からDMA転送要求が来ているか否
か判断し、いずれかから要求RQが来ていると判断した
ときは、12ー6に進みDMAENBを1にし、DMA
C100がバス10を専有するようにして、CPU12
1のアクセスを受け付けなくする。
【0099】続いて、複数の要求については、CH1>
CH2>CH3>CH4の優先順位に基づいて、チャン
ネルを選択する(12ー7)。従って、音声トラックT
r1、Tr2、MIDIトラックのデータ転送が同時に
要求されてもCH1が優先順位が高いので、音声Tr1
のDMA転送を先に実行することになる。
CH2>CH3>CH4の優先順位に基づいて、チャン
ネルを選択する(12ー7)。従って、音声トラックT
r1、Tr2、MIDIトラックのデータ転送が同時に
要求されてもCH1が優先順位が高いので、音声Tr1
のDMA転送を先に実行することになる。
【0100】また、後の説明でも明らかになるとおり、
CH4の優先順位が最下位なので、ハードディスク20
0とバッファ400のいずれのエリアかとのデータ転送
を行っているとき、各I/O301〜303からのデー
タ転送の要求がくると、後者のデータ転送を先に優先的
に行うようになる。
CH4の優先順位が最下位なので、ハードディスク20
0とバッファ400のいずれのエリアかとのデータ転送
を行っているとき、各I/O301〜303からのデー
タ転送の要求がくると、後者のデータ転送を先に優先的
に行うようになる。
【0101】続いて、選択したチャンネルのカレントア
ドレス(アドレスレジスタ104の当該チャンネルのカ
レントアドレスレジスタの内容)をバス10に出力する
(12ー8)。そして、選択したチャンネルのコントロ
ールレジスタ105の内容を参照し、DMA転送をいず
れの方向に行うかを決定し(12ー9)、もし、バッフ
ァ400の特定のエリアから他の要素(I/O)への転
送なら、12ー10から12ー11に進んで、バッファ
400にリード信号RDを与え、逆に他の要素(I/
O)からバッファ400への転送ならば、12ー12に
進み、当該バッファエリアに対してライト信号WRを与
える。
ドレス(アドレスレジスタ104の当該チャンネルのカ
レントアドレスレジスタの内容)をバス10に出力する
(12ー8)。そして、選択したチャンネルのコントロ
ールレジスタ105の内容を参照し、DMA転送をいず
れの方向に行うかを決定し(12ー9)、もし、バッフ
ァ400の特定のエリアから他の要素(I/O)への転
送なら、12ー10から12ー11に進んで、バッファ
400にリード信号RDを与え、逆に他の要素(I/
O)からバッファ400への転送ならば、12ー12に
進み、当該バッファエリアに対してライト信号WRを与
える。
【0102】しかる後、回答信号ACKをアクティブに
する(12ー13)。その結果、バッファ400と各T
rとの間のデータ転送が行われる。12ー14では、1
回のデータ転送が終了したので、上記信号RD、WR、
ACKをインアクティブにし、12ー15で当該チャン
ネルのカレントアドレス(図3アドレスレジスタ104
内)の内容を+1する。この12ー15の動作により、
バッファ400に対して新たな音声データまたはMID
Iデータが書込まれたり、読み出されたりする都度、ア
ップカウントされることになる。そして、12ー15の
処理の後、12ー1にもどる。
する(12ー13)。その結果、バッファ400と各T
rとの間のデータ転送が行われる。12ー14では、1
回のデータ転送が終了したので、上記信号RD、WR、
ACKをインアクティブにし、12ー15で当該チャン
ネルのカレントアドレス(図3アドレスレジスタ104
内)の内容を+1する。この12ー15の動作により、
バッファ400に対して新たな音声データまたはMID
Iデータが書込まれたり、読み出されたりする都度、ア
ップカウントされることになる。そして、12ー15の
処理の後、12ー1にもどる。
【0103】このようなデータ転送が完了すると12ー
5から12ー16にすすみ、DMA可能信号DMAEN
Bをインアクティブにして、バス10をDMAC100
が専有するのを中止し、CPU121からのアクセスを
図2の各構成要素が受け付けられるようにする。
5から12ー16にすすみ、DMA可能信号DMAEN
Bをインアクティブにして、バス10をDMAC100
が専有するのを中止し、CPU121からのアクセスを
図2の各構成要素が受け付けられるようにする。
【0104】また、DMAC100は、ハードディスク
200とバッファ400との間のデータ転送も行う。こ
の場合はCH4のアドレスレジスタ104、コントロー
ルレジスタ105が使用される。この動作は、CPU1
21のインタラプトルーチン(図9)の実行によって、
DMAC100、HDC201に対する設定や制御の後
に実行される。
200とバッファ400との間のデータ転送も行う。こ
の場合はCH4のアドレスレジスタ104、コントロー
ルレジスタ105が使用される。この動作は、CPU1
21のインタラプトルーチン(図9)の実行によって、
DMAC100、HDC201に対する設定や制御の後
に実行される。
【0105】即ち、図9の9ー1〜9ー4の処理に対応
して、DMAC100は、12ー3、12ー4の処理を
実行する。つまり、CPU121は、CH4によって、
データ転送するトラックを決定し、そのトラックに対応
するバッファのスタートアドレスをCH4のスタートア
ドレスレジスタ(図3のアドレスレジスタ104内)に
セットし、このトラックについての今回のデータ転送数
をスタートアドレスとカレントアドレス(前回データ転
送をハードディスク200との間で行った後に歩進した
アドレス)との差からCPU121は得るとともに、こ
のトラックについてのカレントアドレスをスタートアド
レスにコピーする。
して、DMAC100は、12ー3、12ー4の処理を
実行する。つまり、CPU121は、CH4によって、
データ転送するトラックを決定し、そのトラックに対応
するバッファのスタートアドレスをCH4のスタートア
ドレスレジスタ(図3のアドレスレジスタ104内)に
セットし、このトラックについての今回のデータ転送数
をスタートアドレスとカレントアドレス(前回データ転
送をハードディスク200との間で行った後に歩進した
アドレス)との差からCPU121は得るとともに、こ
のトラックについてのカレントアドレスをスタートアド
レスにコピーする。
【0106】そして、CPU121は、9ー5、9ー6
によってHDC201に対しプログラミングを行って上
で、実際の転送要求をHDC201から発生させて、D
MA転送を開始させる。
によってHDC201に対しプログラミングを行って上
で、実際の転送要求をHDC201から発生させて、D
MA転送を開始させる。
【0107】DMAC100では、12ー5において、
HDCから転送要求があることを検知すると、上記同様
にして、12ー6〜12ー9を実行した後、バッファ4
00からハードディスク200方向のデータ転送なの
か、ハードディスク200からバッファ400方向への
データ転送なのかを12ー10において判断し、前者な
らば、12ー11へ、後者ならば12ー12へ進んだ
後、12ー13〜12ー15の各処理を実行する。この
とき1回の転送操作で、例えば1サンプル分のデジタル
音声データまたは1単位分のMIDIデータが転送され
るので、この動作12ー5〜12ー15をを複数回繰り
返しブロック転送を実行する。
HDCから転送要求があることを検知すると、上記同様
にして、12ー6〜12ー9を実行した後、バッファ4
00からハードディスク200方向のデータ転送なの
か、ハードディスク200からバッファ400方向への
データ転送なのかを12ー10において判断し、前者な
らば、12ー11へ、後者ならば12ー12へ進んだ
後、12ー13〜12ー15の各処理を実行する。この
とき1回の転送操作で、例えば1サンプル分のデジタル
音声データまたは1単位分のMIDIデータが転送され
るので、この動作12ー5〜12ー15をを複数回繰り
返しブロック転送を実行する。
【0108】そしてDMA転送が完了すると、要求信号
RQが到来しなくなり、12ー5から12ー16に進み
DMA可能信号DMAENBをインアクティブとする。
RQが到来しなくなり、12ー5から12ー16に進み
DMA可能信号DMAENBをインアクティブとする。
【0109】このようにして、DMAC100は、動作
中のトラックに対するバッファ400の領域とハードデ
ィスク200との間のデータ転送を各トラック毎に順番
に行うようになり、各トラック毎に、前回のデータ転送
(ブロック転送)に続くデータ転送を行うようになる。
勿論、再生イベントを変更してゆく際には、予め定めら
れた順番で、それがなされることは、図6等を参照して
すでに説明したとおりである。
中のトラックに対するバッファ400の領域とハードデ
ィスク200との間のデータ転送を各トラック毎に順番
に行うようになり、各トラック毎に、前回のデータ転送
(ブロック転送)に続くデータ転送を行うようになる。
勿論、再生イベントを変更してゆく際には、予め定めら
れた順番で、それがなされることは、図6等を参照して
すでに説明したとおりである。
【0110】図16は、DMAC100のCH4によっ
て、ハードディスク200からバッファ400内のMI
DIバッファ、音声バッファTr1、Tr2へ順次デー
タ転送が行われる様子を示している。
て、ハードディスク200からバッファ400内のMI
DIバッファ、音声バッファTr1、Tr2へ順次デー
タ転送が行われる様子を示している。
【0111】<HDC201の動作>次に図13を参照
して、HDC201の動作を説明する。このHDC20
1は、ハードロジックによっても、マイクロプログラム
制御によってもよく、いずれにしても図13の動作フロ
ーを機能実現する。
して、HDC201の動作を説明する。このHDC20
1は、ハードロジックによっても、マイクロプログラム
制御によってもよく、いずれにしても図13の動作フロ
ーを機能実現する。
【0112】先ず、CPU121から選択信号(図2で
は、特に図示せず。)が与えられているか否か判断する
(13ー1)。これは、CPU121のインタラプトル
ーチン(図9の9ー5、9ー6)にて与えられる。NO
の場合は、もとに戻るが、YESの場合は、13ー2に
進み、CPU121からリード信号RDが与えられてい
るか、ライト信号WRが与えられているか判断し、リー
ド時には、13ー3でHDC201の内部の指定データ
(アドレスレジスタの内容等)をバス10を介してCP
U121に出力する。
は、特に図示せず。)が与えられているか否か判断する
(13ー1)。これは、CPU121のインタラプトル
ーチン(図9の9ー5、9ー6)にて与えられる。NO
の場合は、もとに戻るが、YESの場合は、13ー2に
進み、CPU121からリード信号RDが与えられてい
るか、ライト信号WRが与えられているか判断し、リー
ド時には、13ー3でHDC201の内部の指定データ
(アドレスレジスタの内容等)をバス10を介してCP
U121に出力する。
【0113】またライト信号WRが与えられているとき
は、13ー2から13ー4に進み、今回DMAC100
のCH4にてDMA転送するバッファ400とハードデ
ィスク200とのデータ転送方向を設定し、13ー5に
てアクセスするハードディスク200のアクセスポイン
トを設定する。これは、CPU121が、ワークRAM
122から得ているトラックのアクセスポインタによる
(図9、9ー5)。
は、13ー2から13ー4に進み、今回DMAC100
のCH4にてDMA転送するバッファ400とハードデ
ィスク200とのデータ転送方向を設定し、13ー5に
てアクセスするハードディスク200のアクセスポイン
トを設定する。これは、CPU121が、ワークRAM
122から得ているトラックのアクセスポインタによる
(図9、9ー5)。
【0114】続いて、13ー6において、転送データ数
(デジタル音声/MIDIデータ数)をHDC201の
内部カウンタに設定する。このデータ転送数は、CPU
121のインタラプトルーチンのなかの9ー6(図9参
照)にて得ている。
(デジタル音声/MIDIデータ数)をHDC201の
内部カウンタに設定する。このデータ転送数は、CPU
121のインタラプトルーチンのなかの9ー6(図9参
照)にて得ている。
【0115】このように、13ー4〜13ー6を実行す
ることによって、CPU121の制御のもとで、HDC
201はプログラムされ、その後、DMAC100に対
し、データ転送の要求をする(13ー7)。このことか
らも理解されるとおり、CPU121は、HDC201
からインタラプト信号INTを受けると、次のトラック
に対応する(つまり音声トラックTr1、Tr2、MI
DIトラック、音声トラックTr1、Tr2、・・・の
順で)DMA転送の設定制御を、DMAC100に対し
実行し、HDC201をプログラムする。その後、CP
U121は、HDC201とDMAC100とから離れ
て、相互のインタラクションで実際のDMA転送を実行
させる。
ることによって、CPU121の制御のもとで、HDC
201はプログラムされ、その後、DMAC100に対
し、データ転送の要求をする(13ー7)。このことか
らも理解されるとおり、CPU121は、HDC201
からインタラプト信号INTを受けると、次のトラック
に対応する(つまり音声トラックTr1、Tr2、MI
DIトラック、音声トラックTr1、Tr2、・・・の
順で)DMA転送の設定制御を、DMAC100に対し
実行し、HDC201をプログラムする。その後、CP
U121は、HDC201とDMAC100とから離れ
て、相互のインタラクションで実際のDMA転送を実行
させる。
【0116】HDC201は、13ー7の次に、13ー
8に進み、DMAC100から回答信号ACK4を受け
取る(図12、12ー13参照)まで13ー8を繰り返
す。
8に進み、DMAC100から回答信号ACK4を受け
取る(図12、12ー13参照)まで13ー8を繰り返
す。
【0117】13ー8の判断がYESとなると13ー9
に進み、DMAC100の動作によって、1サンプルの
デジタル音声データまたは1単位量のMIDIデータの
転送がなされ、13ー6で設定してあった転送カウンタ
を1だけダウンカウントする(13ー10)。続く13
ー11において、予め設定していた転送データ数分のデ
ータ転送が完了したか上記転送カウンタの内容によって
ジャッジし、NOならば再び13ー8にもどる。従っ
て、DMAC100においては、HDC201が設定し
たデータ数の転送(ブロック転送)が終了するまで、転
送要求RQ4を受け取ることとなり、その要求に従って
12ー5〜12ー15の処理(図12)を実行し、それ
に応答する形でHDC201は、13ー8〜13ー11
の処理を繰り返す。
に進み、DMAC100の動作によって、1サンプルの
デジタル音声データまたは1単位量のMIDIデータの
転送がなされ、13ー6で設定してあった転送カウンタ
を1だけダウンカウントする(13ー10)。続く13
ー11において、予め設定していた転送データ数分のデ
ータ転送が完了したか上記転送カウンタの内容によって
ジャッジし、NOならば再び13ー8にもどる。従っ
て、DMAC100においては、HDC201が設定し
たデータ数の転送(ブロック転送)が終了するまで、転
送要求RQ4を受け取ることとなり、その要求に従って
12ー5〜12ー15の処理(図12)を実行し、それ
に応答する形でHDC201は、13ー8〜13ー11
の処理を繰り返す。
【0118】その転送終了が13ー11において判断さ
れると、13ー12に進み、HDC201からDMAC
100に対するデータ転送の要求RQ4をインアクティ
ブとする。そして、次のトラックに関して、ハードディ
スク200とバッファ400のいずれかつぎの優先順位
のトラックのエリアとのデータ転送を行わせるために、
HDC201は、CPU121にインタラプト信号IN
Tを与える(13ー13)。これに応答して、CPU1
21は、インタラプトルーチン(図9)を実行すること
は、上述したとおりである。
れると、13ー12に進み、HDC201からDMAC
100に対するデータ転送の要求RQ4をインアクティ
ブとする。そして、次のトラックに関して、ハードディ
スク200とバッファ400のいずれかつぎの優先順位
のトラックのエリアとのデータ転送を行わせるために、
HDC201は、CPU121にインタラプト信号IN
Tを与える(13ー13)。これに応答して、CPU1
21は、インタラプトルーチン(図9)を実行すること
は、上述したとおりである。
【0119】<変形例>以上、本発明の一実施例につい
て詳述したが、この発明は、これに限られるものではな
い。即ち、上記実施例では、オーディオ、MIDIの2
つの種類のデータが曲データとして統合されて(曲スケ
ジュールテーブルによる)、ミュージックサプライヤ2
から転送されてきて、それを自動演奏装置12内のハー
ドディスク200が記録した後ユーザの指定によって、
再生するようにしたが、これ以外の種類のデータ例え
ば、他の機能、作業等のシーケンスを決定するシーケン
サデータや楽譜や歌詞その他各種映像のデータを合わせ
て転送し、記録再生するようにしてもよい。
て詳述したが、この発明は、これに限られるものではな
い。即ち、上記実施例では、オーディオ、MIDIの2
つの種類のデータが曲データとして統合されて(曲スケ
ジュールテーブルによる)、ミュージックサプライヤ2
から転送されてきて、それを自動演奏装置12内のハー
ドディスク200が記録した後ユーザの指定によって、
再生するようにしたが、これ以外の種類のデータ例え
ば、他の機能、作業等のシーケンスを決定するシーケン
サデータや楽譜や歌詞その他各種映像のデータを合わせ
て転送し、記録再生するようにしてもよい。
【0120】
【発明の効果】本発明によれば、オーディオの再生と、
シーケンサによる演奏とを、曲中で複雑に組合せて行う
ことが可能となる。
シーケンサによる演奏とを、曲中で複雑に組合せて行う
ことが可能となる。
【図1】本発明のシステムの全体構成を示す回路図であ
る。
る。
【図2】図1の自動演奏装置の構成図を示す図である。
【図3】図2のDMAC100の構成を示す図である。
【図4】転送される曲データの内容を示す図である。
【図5】転送されてくる曲データの中のイベントアドレ
ステーブルを示す図である。
ステーブルを示す図である。
【図6】転送されてくる曲データの中の複数のイベント
の再生状態を示す図である。
の再生状態を示す図である。
【図7】転送されてくる曲データのなかのイベントシー
ケンススケジュールを示す図である。
ケンススケジュールを示す図である。
【図8】図2のCPUのメインルーチンを示すフローチ
ャートである。
ャートである。
【図9】図2のCPUのインタラプトルーチンを示すフ
ローチャートである。
ローチャートである。
【図10】図2のオーディオI/Oの動作フローチャー
トである。
トである。
【図11】図2のMIDII/Oの動作フローチャート
である。
である。
【図12】図2のDMACの動作フローチャートであ
る。
る。
【図13】図2のHDCの動作フローチャートである。
【図14】図2のバッファとオーディオI/Oとのデー
タの授受の状態を示すタイミングチャートである。
タの授受の状態を示すタイミングチャートである。
【図15】図2のバッファとMIDII/Oとのデータ
の授受の状態を示すタイミングチャートである。
の授受の状態を示すタイミングチャートである。
【図16】図2のバッファとハードディスクとの間のデ
ータ転送の状態を示すタイミングチャートである。
ータ転送の状態を示すタイミングチャートである。
1 ミュージックデータレシーバ 2 ミュージックデータサプライヤ 3 電話網/ISDN網 12 自動演奏装置 100 DMAC(DMAコントローラ) 121 CPU 122 ワークRAM 200 ハードディスク 201 HDC(ハードディスクコントローラ) 301 オーディオI/O(入出力インタフェース) 302 オーディオI/O(入出力インタフェース) 303 MIDII/O(入出力インタフェース) 400 バッファ
Claims (2)
- 【請求項1】 オーディオデータとシーケンスデータと
が記憶されるデータ記憶手段と、この データ記憶手段に記憶された上記オーディオデータ
と上記シーケンスデータとを再生する際のスケジュール
を規定するスケジュールテーブルを記憶するスケジュー
ルテーブル記憶手段と、上記データ記憶手段から上記オーディオデータを受け取
り、一時記憶する第1のバッファ手段と、 この第1のバッファ手段に記憶される上記オーディオデ
ータが与えられて、オーディオ信号を再生出力するオー
ディオ出力手段と、 上記データ記憶手段から上記シーケンサデータを受け取
り、一時記憶する第2のバッファ手段と、 この第2のバッファ手段に記憶される上記シーケンサデ
ータが与えられて、対応する楽音を発生する楽音発生手
段と、 上記オーディオ出力手段と上記第1のバッファ手段との
間のデータ転送、上記楽音発生手段と上記第2のバッフ
ァ手段との間のデータ転送、及び上記データ記憶手段と
上記第1、第2のバッファ手段との間のデータ転送を所
定の優先順位に従って、選択的に実行するデータ転送手
段と、 このデータ転送手段にて上記データ記憶手段から上記第
1、第2のバッファ手段に転送するオーディオデータ、
シーケンサデータを上記スケジュールテーブル記憶手段
に記憶された上記スケジュールテーブルに従って転送す
るよう制御する制御 手段と、 を具備したことを特徴とする自動演奏装置。 - 【請求項2】 上記データ記憶手段に記憶される上記オ
ーディオデータ及び上記シーケンスデータは、複数のイ
ベントに分割されていて、上記スケジュールテーブル
は、この複数のイベントを再生する際の再生順序を規定
することを特徴とする請求項1記載の自動演奏装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30622891A JP3149093B2 (ja) | 1991-11-21 | 1991-11-21 | 自動演奏装置 |
| US07/976,411 US5300725A (en) | 1991-11-21 | 1992-11-13 | Automatic playing apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30622891A JP3149093B2 (ja) | 1991-11-21 | 1991-11-21 | 自動演奏装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05143070A JPH05143070A (ja) | 1993-06-11 |
| JP3149093B2 true JP3149093B2 (ja) | 2001-03-26 |
Family
ID=17954542
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP30622891A Expired - Fee Related JP3149093B2 (ja) | 1991-11-21 | 1991-11-21 | 自動演奏装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5300725A (ja) |
| JP (1) | JP3149093B2 (ja) |
Families Citing this family (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2546098B2 (ja) * | 1992-01-08 | 1996-10-23 | ヤマハ株式会社 | 電子楽器 |
| US5403965A (en) * | 1992-03-06 | 1995-04-04 | Kabushiki Kaisha Kawai Gakki Seisakusho | Sequencer having a reduced number of panel switches |
| JP2856004B2 (ja) * | 1992-11-02 | 1999-02-10 | ヤマハ株式会社 | 電子楽器システムのプログラム更新方法 |
| KR0141112B1 (ko) * | 1993-02-26 | 1998-07-15 | 김광호 | 오디오신호 기록포맷과 그 재생방법 및 장치 |
| JPH06251564A (ja) * | 1993-02-27 | 1994-09-09 | Sony Corp | 情報提供収集装置及び記録媒体 |
| US5654516A (en) * | 1993-11-03 | 1997-08-05 | Yamaha Corporation | Karaoke system having a playback source with pre-stored data and a music synthesizing source with rewriteable data |
| US5457282A (en) * | 1993-12-28 | 1995-10-10 | Yamaha Corporation | Automatic accompaniment apparatus having arrangement function with beat adjustment |
| JP2762926B2 (ja) * | 1994-05-10 | 1998-06-11 | ヤマハ株式会社 | 楽音生成装置 |
| GB2296123B (en) * | 1994-12-13 | 1998-08-12 | Ibm | Midi playback system |
| KR0138327B1 (ko) * | 1994-12-19 | 1998-06-15 | 김광호 | 데이타 전송장치 |
| US5693902A (en) * | 1995-09-22 | 1997-12-02 | Sonic Desktop Software | Audio block sequence compiler for generating prescribed duration audio sequences |
| WO1997050076A1 (en) * | 1996-06-24 | 1997-12-31 | Van Koevering Company | Musical instrument system |
| JP3747584B2 (ja) * | 1996-10-18 | 2006-02-22 | ヤマハ株式会社 | 端末装置の機能拡張方法及びホストコンピュータ並びに端末装置 |
| EP0999538A4 (en) * | 1998-02-09 | 2000-05-10 | Sony Corp | METHOD AND DEVICE FOR DIGITAL SIGNAL PROCESSING, METHOD AND DEVICE FOR GENERATING CONTROL DATA AND MEDIUM FOR RECORDING PROGRAMS |
| JP2000181449A (ja) * | 1998-12-15 | 2000-06-30 | Sony Corp | 情報処理装置および方法、並びに提供媒体 |
| JP3671274B2 (ja) * | 1998-12-18 | 2005-07-13 | カシオ計算機株式会社 | 音楽情報送受信装置、受信装置及び記憶媒体 |
| US6218602B1 (en) | 1999-01-25 | 2001-04-17 | Van Koevering Company | Integrated adaptor module |
| US6150599A (en) * | 1999-02-02 | 2000-11-21 | Microsoft Corporation | Dynamically halting music event streams and flushing associated command queues |
| US6353172B1 (en) * | 1999-02-02 | 2002-03-05 | Microsoft Corporation | Music event timing and delivery in a non-realtime environment |
| US6979769B1 (en) | 1999-03-08 | 2005-12-27 | Faith, Inc. | Data reproducing device, data reproducing method, and information terminal |
| JP2001282261A (ja) * | 2000-03-30 | 2001-10-12 | Canon Inc | 音声データ設定装置及び方法、音声データ生成装置及び方法、記録媒体 |
| JP3552667B2 (ja) * | 2000-12-19 | 2004-08-11 | ヤマハ株式会社 | 通信システム及び通信プログラムを記録した記録媒体 |
| JP4403658B2 (ja) * | 2001-01-18 | 2010-01-27 | ヤマハ株式会社 | 楽曲データ出力装置及び楽曲データ出力方法 |
| KR100418563B1 (ko) * | 2001-07-10 | 2004-02-14 | 어뮤즈텍(주) | 동기정보에 의한 미디음악 재생 방법 및 장치 |
| US6898729B2 (en) * | 2002-03-19 | 2005-05-24 | Nokia Corporation | Methods and apparatus for transmitting MIDI data over a lossy communications channel |
| TW569591B (en) * | 2002-09-13 | 2004-01-01 | Benq Corp | Method providing MIDI function for portable device |
| JP3846425B2 (ja) * | 2003-01-14 | 2006-11-15 | ヤマハ株式会社 | 演奏情報再生装置及びプログラム |
| US7012185B2 (en) * | 2003-02-07 | 2006-03-14 | Nokia Corporation | Methods and apparatus for combining processing power of MIDI-enabled mobile stations to increase polyphony |
| US20040154461A1 (en) * | 2003-02-07 | 2004-08-12 | Nokia Corporation | Methods and apparatus providing group playing ability for creating a shared sound environment with MIDI-enabled mobile stations |
| US20040154460A1 (en) * | 2003-02-07 | 2004-08-12 | Nokia Corporation | Method and apparatus for enabling music error recovery over lossy channels |
| US20040176025A1 (en) * | 2003-02-07 | 2004-09-09 | Nokia Corporation | Playing music with mobile phones |
| US7394011B2 (en) * | 2004-01-20 | 2008-07-01 | Eric Christopher Huffman | Machine and process for generating music from user-specified criteria |
| US20050217460A1 (en) * | 2004-03-31 | 2005-10-06 | Demoor Robert G | Apparatus and method for enhanced musical performance reproduction using a digital radio |
| US7230176B2 (en) * | 2004-09-24 | 2007-06-12 | Nokia Corporation | Method and apparatus to modify pitch estimation function in acoustic signal musical note pitch extraction |
| US7683251B2 (en) | 2005-09-02 | 2010-03-23 | Qrs Music Technologies, Inc. | Method and apparatus for playing in synchronism with a digital audio file an automated musical instrument |
| US7507900B2 (en) * | 2005-09-02 | 2009-03-24 | Qrs Music Technologies, Inc. | Method and apparatus for playing in synchronism with a DVD an automated musical instrument |
| US7612277B2 (en) * | 2005-09-02 | 2009-11-03 | Qrs Music Technologies, Inc. | Method and apparatus for playing in synchronism with a CD an automated musical instrument |
| JP4757704B2 (ja) * | 2006-05-01 | 2011-08-24 | 任天堂株式会社 | 音楽再生プログラム、音楽再生装置、音楽再生方法及び音楽再生システム |
| WO2008113120A1 (en) * | 2007-03-18 | 2008-09-25 | Igruuv Pty Ltd | File creation process, file format and file playback apparatus enabling advanced audio interaction and collaboration capabilities |
| US8026436B2 (en) * | 2009-04-13 | 2011-09-27 | Smartsound Software, Inc. | Method and apparatus for producing audio tracks |
| JP2011145541A (ja) * | 2010-01-15 | 2011-07-28 | Yamaha Corp | 再生装置、楽音信号出力装置、再生システム及びプログラム |
| CZ304233B6 (cs) * | 2012-08-15 | 2014-01-15 | Univerzita Tomáše Bati ve Zlíně | Univerzální jednočipové řídicí zařízení |
| JP7047887B2 (ja) * | 2020-11-24 | 2022-04-05 | カシオ計算機株式会社 | 電子楽器、電子楽器の制御方法、及びプログラム |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4945805A (en) * | 1988-11-30 | 1990-08-07 | Hour Jin Rong | Electronic music and sound mixing device |
| US5138925A (en) * | 1989-07-03 | 1992-08-18 | Casio Computer Co., Ltd. | Apparatus for playing auto-play data in synchronism with audio data stored in a compact disc |
| JP2830422B2 (ja) * | 1989-09-04 | 1998-12-02 | カシオ計算機株式会社 | 自動演奏装置 |
| JPH04128796A (ja) * | 1990-09-19 | 1992-04-30 | Brother Ind Ltd | 音楽再生装置 |
-
1991
- 1991-11-21 JP JP30622891A patent/JP3149093B2/ja not_active Expired - Fee Related
-
1992
- 1992-11-13 US US07/976,411 patent/US5300725A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5300725A (en) | 1994-04-05 |
| JPH05143070A (ja) | 1993-06-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3149093B2 (ja) | 自動演奏装置 | |
| JP2724896B2 (ja) | Midi情報をサブコードパツクに記憶する方法及び装置 | |
| US5974015A (en) | Digital recorder | |
| US6553436B2 (en) | Apparatus and method for playback of waveform sample data and sequence playback of waveform sample data | |
| US5581530A (en) | Digital recorder for processing of parallel data stored in multiple tracks and using cross-fade processing | |
| US5519684A (en) | Digital recorder for processing in parallel data stored in multiple tracks | |
| JPH06308964A (ja) | 楽音形成装置 | |
| JP2979101B2 (ja) | 自動演奏装置 | |
| JPH05182362A (ja) | デジタルレコーダ | |
| JP3270899B2 (ja) | コンピュータシステムのメモリにオーディオ信号を記憶させる装置及び方法 | |
| JP3292492B2 (ja) | 演奏情報処理装置 | |
| JPH04358384A (ja) | デジタルレコーダ | |
| CN1604181B (zh) | 一种midi音乐播放的方法及midi音乐播放装置 | |
| EP0510639B1 (en) | Digital recorder | |
| JPH04232666A (ja) | デジタルレコーダ | |
| JP3781171B2 (ja) | 楽音発生方法 | |
| JP2916533B2 (ja) | デジタルマルチトラックレコーダ | |
| JP4120979B2 (ja) | 波形再生装置 | |
| JP2709965B2 (ja) | Bgm再生に用いる音楽伝送再生システム | |
| JP3230756B2 (ja) | デジタルレコーダ | |
| JP3235557B2 (ja) | 波形再生装置、波形録音再生装置、波形出力回路、波形入出力回路、波形再生方法および波形録音再生方法 | |
| JP3815353B2 (ja) | マルチトラック再生装置、マルチトラック録音装置およびマルチトラック録音再生装置 | |
| JPH10207475A (ja) | カラオケ装置 | |
| JPH0424691A (ja) | 電子楽器 | |
| JPH10164544A (ja) | データ集中管理型音・動画再生システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090119 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090119 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100119 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 10 |
|
| LAPS | Cancellation because of no payment of annual fees |