JP6191459B2 - オーディオ波形データを使用する自動演奏技術 - Google Patents

オーディオ波形データを使用する自動演奏技術 Download PDF

Info

Publication number
JP6191459B2
JP6191459B2 JP2013535171A JP2013535171A JP6191459B2 JP 6191459 B2 JP6191459 B2 JP 6191459B2 JP 2013535171 A JP2013535171 A JP 2013535171A JP 2013535171 A JP2013535171 A JP 2013535171A JP 6191459 B2 JP6191459 B2 JP 6191459B2
Authority
JP
Japan
Prior art keywords
waveform data
performance
reproduction
tempo
data
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
Application number
JP2013535171A
Other languages
English (en)
Other versions
JPWO2014003072A1 (ja
Inventor
教裕 植村
教裕 植村
栄二 村田
栄二 村田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Publication of JPWO2014003072A1 publication Critical patent/JPWO2014003072A1/ja
Application granted granted Critical
Publication of JP6191459B2 publication Critical patent/JP6191459B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • G10H7/006Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof using two or more algorithms of different types to generate tones, e.g. according to tone color or to processor workload
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • G10H1/18Selecting circuits
    • G10H1/22Selecting circuits for suppressing tones; Preference networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/40Rhythm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants
    • G10L21/007Changing voice quality, e.g. pitch or formants characterised by the process used
    • G10L21/01Correction of time axis
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/005Reproducing at a different information rate from the information rate of recording
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/375Tempo or beat alterations; Music timing control
    • G10H2210/385Speed change, i.e. variations from preestablished tempo, tempo change, e.g. faster or slower, accelerando or ritardando, without change in pitch
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/621Waveform interpolation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/635Waveform resolution or sound quality selection, e.g. selection of high or low sampling rates, lossless, lossy or lossier compression algorithms
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/645Waveform scaling, i.e. amplitude value normalisation

Description

この発明は、少なくともオーディオ波形データを使用して音楽(メロディ及び又は伴奏)の自動演奏を行う自動演奏技術に関し、特に、時間軸伸縮制御(タイムストレッチ制御)を使用して、再生される音の音高変化を来すことなく任意の演奏テンポで楽音を再生する技術に関する。
従来から、例えば4小節単位などの所定単位長さからなるアルペジオパターンやベースパターンあるいはリズムパターン等を表す伴奏パターンデータを予め記憶しておき、この伴奏パターンデータに基づいて楽音の自動演奏を行う自動演奏装置が知られている。伴奏パターンデータとして、コード伴奏用パートやベースパートさらにはリズムパートなどの演奏パート別に、実際の楽器演奏や人の声あるいは自然音などをサンプリングした楽音波形信号(オーディオ波形データ)を使用する場合と、所定の規格に従って定義される楽音制御信号(すなわち、楽音発生命令データ、例えばMIDI規格により定義されたMIDIデータ)を使用する場合とがある。
伴奏パターンデータとしてオーディオ波形データを使用する場合、音高変化を来すことなく任意の演奏テンポで楽音を発生するために、タイムストレッチ制御(すなわち時間軸伸縮制御)を行うことが知られている。タイムストレッチ制御としては、オーディオ波形データを時系列に読み出してRAMに書き込むと共に、書き込み時と異なる周波数でRAMから前記書き込まれたオーディオ波形データを時系列に読み出すものが公知となっている。これによれば、RAMに対するオーディオ波形データ書き込み時とオーディオ波形データ読み出し時の周波数の比を変えることで、オーディオ波形データの記録時と同じ音高のままで演奏テンポのみを変えた楽音を発生させることができる。下記に示す特許文献1には、タイムストレッチ制御を行うことにより音高を変えることなく演奏テンポのみを変えて楽音を生成する装置が示されている。
なお、本明細書において「タイムストレッチ」とは、オーディオデータを「時間軸上で圧縮」(時間軸圧縮)することと、オーディオデータを「時間軸上で伸長」(時間軸伸長)することとを意味する。また、本明細書において「楽音」とは、音楽的な音に限るものではなく音声あるいはその他任意の音を包摂する用語として用いるものとする。
他方、伴奏パターンデータとしてMIDIデータのような楽音発生命令データを使用する場合、演奏テンポを任意に変えても発生楽音に音高変化を来すことがない。すなわち、演奏テンポを変えるためには、自動演奏装置は、イベントデータ(より詳しくはノートオンイベントやノートオフイベントなどの音符イベント)の読み出し速度を変えればよい。例えば、MIDIデータに含まれる各イベントデータの読み出しタイミングを変えることで楽音の演奏テンポを変える。その一方、各イベントデータの読み出しタイミングを変えても各イベントデータのノートナンバ(音高情報)等の情報は同じままであるので、楽音の音高は変わらない。
特許第2970396号公報
しかし、従来の装置では指定された演奏テンポによっては、オーディオ波形データに基づき発生される楽音の音質が著しく低下する、またオーディオ波形データに基づく楽音の発生タイミングとMIDIデータに基づく楽音の発生タイミングとがずれる、ノイズ性の断続的な音切れが生じる、などの聴感上不自然な印象を与えるという問題があった。これは、伴奏パターンデータとしてMIDIデータを使用する場合には、上記したように各イベントデータの読み出しタイミングを変えるだけで幅広いテンポに対応して何ら問題なく楽音を発生できるのに対して、伴奏パターンデータとしてオーディオ波形データを使用する場合には、演奏テンポが速くなるにつれてオーディオ波形データのRAMへの書き込み制御及び書き込んだオーディオ波形データのRAMからの読み出し制御にかかる処理負荷が大きくなってしまい、MIDIデータに基づく自動演奏制御に比べるとどうしても処理に遅延が生じてしまうことに原因がある。また、処理負荷が大きくなりすぎると、CPUシステムをフリーズさせてしまうことになり、装置全体に悪影響を与える。例えば、或る演奏パートをオーディオ波形データに基づき自動演奏し、別の演奏パートをMIDIデータに基づき自動演奏している場合、CPUシステムのフリーズによって、オーディ波形データに基づく演奏パートのみならず、MIDIデータに基づく演奏パートの自動演奏も停止してしまうという不都合を招く。また、装置が自動演奏以外の他の任意のアプリケーションを同時に実行している場合は、それらのアプリケーションもフリーズしてしまうという不都合を招く。
また、指定された演奏テンポが速すぎても遅すぎてもオーディオ波形データの記録時のテンポ(基準テンポ)との差が大きければ著しい音質劣化が生じてしまうものであった。この音質劣化はタイムストレッチ制御における波形制御、より具体的には演奏テンポに応じた再生位置をジャンプ制御してジャンプ前後の再生位置に対応する各波形を接続する際に生じ得るものであり、特にオーディオ波形データが伴奏パターンデータとして使われているときには、指定された演奏テンポと基準テンポとが大きく乖離してジャンプ前後の再生位置が大きく離れてしまう場合が多く起こり得ることから、こうした音質劣化の生じる恐れが比較的に大きい。
本発明は上述の点に鑑みてなされたもので、オーディオ波形データを任意の演奏テンポで時間軸伸縮制御して再生する場合に生じるおそれのある処理の遅延及び音質の劣化に対処することを目的とする。
本発明に係る自動演奏装置は、任意の基準テンポに従う音楽演奏の波形データを記憶する記憶部と、可変の演奏テンポを指定する情報を取得する取得部と、前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定する判定部と、前記記憶部に記憶された前記波形データを再生するオーディオ再生部であって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定部が再生を制限すべきと判定した場合は、前記波形データの再生を停止すること又は再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記オーディオ再生部とを具備する。
記憶部に記憶した任意の基準テンポに従う音楽演奏の波形データを用いて、可変の演奏テンポで該波形データを再生するために、該演奏テンポと該基準テンポとの関係に応じて、再生すべき該波形データの時間軸伸縮制御が行われる。本発明によれば、該演奏テンポと該基準テンポとの関係に応じて、該波形データの再生を制限すべきか否かが判定され、再生を制限すべきと判定された場合は、該波形データの再生を停止すること又は再生処理の分解能を下げて前記波形データの再生を持続することの一方を行う。例えば、演奏テンポと前記基準テンポとの間に、時間軸伸縮制御の処理の遅れの影響により、該演奏テンポより遅れた楽音を生成させ得るような、又は音質の低い楽音を生成させ得るような、あるいは処理システムをフリーズさせるような、乖離がある場合に、該波形データの再生を制限すべきと判定される。波形データの再生の制限は、例えば、該波形データの再生を停止することからなる。このように、演奏テンポと基準テンポとの関係が、処理の遅延又は音質の劣化を来すような演奏テンポで波形データを再生することになるような関係である場合、該波形データの再生を停止することにより、該所望の演奏テンポよりも遅れた楽音の生成あるいはノイズ性の断続的な音切れ若しくは音質の著しく低下した楽音の生成等の問題を解決することができ、さらには、処理システムがフリーズすることを防止してフリーズに伴う種々の不都合が発生することを未然に防止することができる。別の例として、波形データの再生を制限すべきと判定された場合、再生処理の分解能を下げて前記波形データの再生を持続することが行われる。例えば、再生処理の分解能を下げることは、波形データの時間軸伸縮制御の分解能を下げることからなる。このように、再生処理の分解能を下げるにより、処理の遅れを防ぎ、所望の演奏テンポから遅れることを防止することができる。
なお、このような波形データの再生停止制御においては、同時に再生される他の演奏パートがある場合、一部の演奏パートの再生を停止しても、再生停止されない他の演奏パートの存在により、自動演奏にそれほど重大な支障を与えることがないと期待される。例えば、MIDIデータに基づく楽音を同時に発生しているような場合であれば、MIDIデータに基づく楽音発生は確実に続行される。また、各演奏パート毎に独立に定義される条件に従って、各演奏パート毎に該演奏パートの前記波形データの再生を制限すべきか否かを判定するように構成することにより、一部の演奏パートの波形データの再生を停止しても、他の演奏パートの波形データの再生は停止されずに、自動演奏が続行されるようにすることが可能である。
一例として、前記判定部は、前記演奏テンポが前記基準テンポに比べて速過ぎるという所定の第1の条件を充足する場合、前記波形データの再生を制限すべきと判定し、前記再生部は、前記判定手段による前記第1の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うようにしてよい。これにより、処理の遅れを来すおそれがあるような、基準テンポに比べて速過ぎる演奏テンポに対して、波形データの再生を停止すること、あるいは再生処理の分解能を下げることで、対処することができる。
一例として、前記判定部は、前記演奏テンポが前記基準テンポに比べて遅過ぎるという所定の第2の条件を充足する場合、前記波形データの再生を制限すべきと判定し、前記再生部は、前記判定手段による前記第2の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止することを行うようにしてよい。これにより、音質の劣化を来すおそれがあるような、基準テンポに比べて遅過ぎる演奏テンポに対して、波形データの再生を停止することで、対処することができる。
一例として、MIDI形式データのような楽音発生命令データに基づき楽音波形を生成する楽音発生部をさらに備え、前記判定部による再生を制限すべきとの判定に応じて、前記オーディオ再生部は、前記波形データの再生を停止することを行い、かつ、前記楽音発生部は、前記再生停止する波形データに対応する楽音波形を、前記楽音発生命令データに基づき生成するようにしてよい。これにより、波形データの再生を停止する代りに、MIDI形式データのような楽音発生命令データに基づく楽音波形を生成し、演奏を代替させることができる。
本発明によれば、所望の演奏テンポより遅れた楽音を生成し得る又は音質の低い楽音を生成し得る、基準テンポと所定値以上に乖離した演奏テンポを取得した場合には、あえて楽音波形信号の読み出しを行わないで楽音を生成しないようにしたことから、ユーザに対し聴感上不自然な印象を与えることのない演奏を行うことができる、という効果が得られる。
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはDSP等のプロセッサによって実行可能なプログラムの形態で実施することができるし、そのようなプログラムを記憶した一時的ではないコンピュータ読み取り可能な記憶媒体の形態で実施することもできる。
以下、この発明のいくつかの好ましい実施例を、単なる一例として、添付図面に従って、詳細に説明する。
この発明に係る自動演奏装置を適用した電子楽器のハードウエア構成例を示すブロック図である。 スタイルデータのデータ構成を示す概念図である。 オーディオ再生部の機能を説明するための機能ブロック図である。 演奏テンポ限界値テーブルのデータ構成を示す概念図である。 自動演奏処理の一実施例を示すフローチャートである。 オーディオデータの読込処理の一実施例を示すフローチャートである。 図6に示した処理に後続するオーディオデータの読込処理を示すフローチャートである。 図7に示した処理に後続するオーディオデータの読込処理を示すフローチャートである。 図8に示した処理に後続するオーディオデータの読込処理を示すフローチャートである。 楽音生成処理の一実施例を示すフローチャートである。 図10に示した処理に後続する楽音生成処理を示すフローチャートである。 フェードアウト処理の一実施例を示すフローチャートである。
図1は、この発明に係る自動演奏装置を適用した電子楽器のハードウエア構成例を示すブロック図である。本実施形態に示す電子楽器は、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータの制御の下に各種の処理が実行されるようになっている。CPU1は、この電子楽器全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Dを介してROM2、RAM3、記憶装置4、演奏操作子5、パネル操作子6、表示部7、オーディオ再生部8、MIDI音源部9、楽音制御回路10、インタフェース11がそれぞれ接続されている。
更に、CPU1には、タイマ割込み処理(インタラプト処理)における割込み時間や各種時間を計時するタイマ1Aが接続されている。例えば、タイマ1Aは、楽音を自動演奏する際の演奏テンポや、記憶装置4等から時系列に読み出したオーディオデータを一時的にRAM3に書き込んだり、また一時的に書き込まれたオーディオデータをRAM3から読み出したりする際の周波数などを設定するためのテンポクロックパルスを発生する。タイマ1AからのテンポクロックパルスはCPU1に対して処理タイミング命令として与えられたり、あるいはCPU1に対してインタラプト命令として与えられたりする。CPU1は、これらの命令に従って各種処理を実行する。
ROM2は、CPU1により実行あるいは参照される各種制御プログラムや各種データ等を格納する。RAM3は、CPU1が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、テンポラリメモリなどとして利用される。
記憶装置4には、オーディオ波形データを含むスタイルデータ(後述する図2参照)やMIDIデータ(図示せず)などの各種データ等を多数記憶することが可能な内蔵データベースが構成される。また、これらの他に、CPU1が実行する各種制御プログラム等を記憶するようにしてもよい。なお、上述したROM2に制御プログラムが記憶されていない場合、この記憶装置4(例えばハードディスク)に制御プログラムを記憶させておき、それをRAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1に実行させることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、記憶装置4はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD‐ROM・CD‐RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の様々な形態の記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
演奏操作子5は、例えば楽音の音高を選択するための複数の鍵を備えた鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子5は演奏者自身の手弾きによるマニュアル演奏のために使用できるのは勿論のこと、コード(和音)を入力する入力手段などとして使用することもできる。勿論、演奏操作子5は鍵盤等の形態に限らず、楽音の音高を選択するための弦を備えたネック等のような形態のものなど、どのようなものであってもよい。
パネル操作子(スイッチ等)6は、例えばスタイルデータを選択する選択スイッチ、演奏テンポを設定するテンポ設定スイッチ、自動演奏の開始/停止を指示する再生/停止ボタン、コード(和音)を入力する入力操作子、音色・効果などのパラメータを設定する設定スイッチ等、各種の操作子を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するための数値データ入力用のテンキーや文字データ入力用のキーボード、あるいは表示部7に表示された各種画面の位置を指定するポインタを操作するマウスなどの各種操作子を含んでいてもよい。
表示部7は、例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイであって、上記スイッチ操作に応じて各種画面(図示を省略したが、例えばスタイル選択画面や演奏テンポ設定画面など)を表示するのは勿論のこと、スタイルデータの内容などの各種情報あるいはCPU1の制御状態などを表示することもできる。演奏者は該表示部7に表示されるこれらの各種情報を参照することで、スタイルデータの選択や演奏テンポの設定などを容易に行うことができる。
オーディオ再生部8は、複数のトラック(演奏パート)の各トラック(演奏パート)毎に再生波形信号の同時発生が可能であり、データ及びアドレスバス1Dを経由して与えられる任意のスタイルデータに含まれる演奏パート毎のオーディオ波形データに基づいて各パート単位に再生波形信号を生成し出力する。
MIDI音源部9は、複数のトラック(演奏パート)の各トラック(演奏パート)毎に再生波形信号の同時発生が可能であり、データ及びアドレスバス1Dを経由して与えられるMIDIデータ(楽音発生命令データ)を入力し、このMIDIデータに含まれる各種のイベント情報に基づいて再生波形信号を生成し出力する。MIDI音源部9はコンピュータを用いて構成されており、そこにおいてMIDIデータに基づく自動演奏制御は、コンピュータが所定のアプリケーションプログラムを実行することにより実施される。なお、楽音発生命令データの形式は、MIDI形式に限らず、他の形式であってもよい、
なお、MIDI音源部9はコンピュータプログラムの形態に限らず、DSP(ディジタル・シグナル・プロセッサ)によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。さらに、MIDI音源部9の楽音合成方式は波形メモリ方式に限らず、FM方式、物理モデル方式、高調波合成方式、フォルマント合成方式等を採用してもよく、またこれらの各種楽音合成方式のいずれを単独または複数を組み合わせてもよい。
上記オーディオ再生部8及びMIDI音源部9は共に楽音制御回路10に接続されており、楽音制御回路10ではそれらから発生された再生波形信号に所定のディジタル信号処理を施して効果を付与するとともにこれらを混合(加算)し、スピーカなどのサウンドシステム10Aに出力する。すなわち、ここに示す楽音制御回路10は、信号混合(加算)回路、D/A変換回路、音量制御回路などを含んで構成されてなる。
インタフェース11は、当該装置と図示しない外部機器(電子楽器やサーバ装置など)との間でスタイルデータやMIDIデータなどの各種データ、制御プログラムなどの各種情報を送受信するためのインタフェースである。このインタフェース11は、例えばMIDIインタフェース,LAN,インターネット,電話回線等であってよく、また有線あるいは無線のものいずれかでなく双方を具えていてよい。例えばスタイルデータなどは、インタフェース11を介して接続された通信ネットワーク上のサーバ装置にアクセスして取得してもよい。
なお、演奏操作子5や表示部7あるいはMIDI音源部9などを1つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。
なお、本発明に係る自動演奏装置は電子楽器に限らず、パーソナルコンピュータ、PDA(携帯情報端末)や携帯電話等の携帯通信端末、あるいはゲーム装置など、少なくともオーディオ波形データに基づいて楽音の自動演奏を行うことのできるものであればどのような形態の装置・機器に適用してもよい。
図2は、電子楽器に構成されたデータベースに記憶されるスタイルデータのデータ構成を示す概念図である。スタイルデータは、予め電子楽器内に記憶されている(つまり電子楽器のメーカが作成した)ものに限らず、ユーザが新規に作成したものを追加記憶する、メーカやその他の利用者が新規に作成し外部機器(例えばサーバ装置)に登録したものを取得して、既存のデータと差し替えあるいは追加記憶することもできるようになっている。
スタイルデータ(自動演奏データ)は、スタイル属性情報と実体データ(トラックデータ及びノート変換用データ)とを含む。スタイル属性情報はデータベースに登録する情報(各伴奏スタイルがどのような楽曲、音楽ジャンルにおいて利用するのに適するかを検索可能としたもの)であって、スタイル名とその他のスタイル属性情報とを含む。スタイル名は、それぞれの伴奏スタイル固有の名称である。その他のスタイル属性情報は、例えば伴奏スタイルのイメージと合致する実際の楽曲名や伴奏スタイルのイメージを連想することが出来るキーワード、拍子情報やテンポ情報(推奨テンポすなわち基準テンポ)、音色等である。
トラックデータは、複数セクション(イントロ、メイン、フィルイン、エンディング等)の各セクションにつき、複数トラック(コードバッキングパート、べースパート、リズムパート等)毎に用意された基本となる伴奏パターンデータであって、音符イベント及び発音タイミング等のMIDI形式のイベント列からなるMIDIデータが割り当てられていてもよいし、実際の楽器演奏や人の声あるいは自然音などをサンプリングしたオーディオ波形データが割り当てられていてもよい。本実施形態においては、1つのトラックに対しオーディオ波形データ及びMIDIデータの両方が割り当てられていてもよい。ただし、MIDIデータはオーディオ波形データに基づき発生される楽音と同様の楽音を発生することのできるデータパターンである。これらの伴奏パターンデータは、セクションごとに異なる1〜複数小節の長さであってよい。なお、スタイルデータ内にオーディオ波形データやMIDIデータを記憶することに限らない。つまり、スタイルデータの記憶場所とオーディオ波形データやMIDIデータの記憶場所とは異なっていてよい。
MIDIデータは所定の基準和音(基準コード)に基づいて作成されており、演奏時に指定される和音(コード)に従って和音変換される。所定の基準和音とは、例えば音名Cを根音とする各種和音(Cメジャー、Cマイナー、Cセブンス等)であり、伴奏パターンデータ中の音高を演奏時に任意に指定される和音に合うように変換される。演奏時に指定する和音は可変であってよく、予めノート変換用データに演奏進行順に規定しておいてもよいし、ユーザが自動演奏中に適宜に入力してもよい。なお、ノート変換用データは和音変換の際に用いるテーブル等、和音変換の特性を設定するための情報を記憶していてもよい。
次に、オーディオ再生部8による再生波形信号の生成について説明する。図3は、オーディオ再生部8の機能を説明するための機能ブロック図である。図3において、図中の矢印はデータの流れを表す。
図3に示すように、オーディオ再生部8は、データ読み出し部8aと時間軸制御部8bとを含んでなる。データ読み出し部8aは、記憶装置4あるいはROM2等に記憶されているスタイルデータのうち選択済みのスタイルデータに含まれるオーディオ波形データをパート(トラック)毎に読み出してRAM3等に設けられたパート別の一時記憶部3aに書き込む(転送する)。このときに、記憶装置4から一演奏パターン分のオーディオ波形データの最後まで読み出した場合には、当該一演奏パターン分のオーディオ波形データの先頭に戻ってデータ読み出しが繰り返される。ただし、オーディオ波形データの一時記憶部3aへの書き込み制御及び一時記憶部3aからの前記書き込んだオーディオ波形データの読み出し制御に係る負荷の大きくなる演奏テンポ、あるいは音質劣化が大きくなる演奏テンポが指定された場合、つまりは推奨テンポ(基準テンポ)とかけ離れた演奏テンポが指定された場合、データ読み出し部8aは一時記憶部3aへのオーディオ波形データの書き込み(転送)を停止する。なお、典型的には、記憶装置4等に記憶されるオーディオ波形データは、任意のパートの楽器演奏を任意のテンポで実際に行うことにより得られる波形データを記憶したものである。このように記憶されているオーディオ波形データの演奏テンポを推奨テンポ若しくは基準テンポと言うことにする。
一時記憶部3aは、例えば書き込まれたオーディオ波形データが古い順に読み出された場合にデータを読み出した分だけ記憶領域の空領域が増加する所謂FIFO(First-In/First-out)バッファメモリとして構成されている。こうしたバッファメモリでは、データ書き込みするアドレスを指し示すデータ書き込みポインタと、データ読み出しするアドレスを指し示すデータ読み出しポインタとを非同期で制御できるようになっている。したがって、データ書き込み速度とデータ読み出し速度とを異ならせて、データの書き込みと読み出しとを同時並行で処理することができる。
時間軸制御部8bは、一時記憶部3aに書き込まれたオーディオ波形データを所与の周波数に従い読み出す。このとき、データの書き込み速度(周波数)と読み出し速度(周波数)の比を変えることにより、元のオーディオ波形データの音高を変えることなく再生時間長を短くしたり長くしたりする時間軸の調整を行うことができる。再生時間長を短くするにはオーディオ波形データの間引きを行い、再生時間長を長くするにはオーディオ波形データの補間を行う。例えば、ユーザが再生演奏のテンポを変更する指示を行ったとき、指示されたテンポに応じてオーディオ波形データのタイムストレッチ制御を行う。こうした波形制御によって音高を変化させずに時間軸を圧縮したり伸張したりするタイムストレッチ制御の方法には種々の方法があるが、それらは公知であることからここでの詳細な説明は省略する。時間軸制御部8bからパート別に発生される再生波形信号は、楽音制御回路10に出力される。
本実施形態において、CPU1は、所定条件の下でオーディオ波形データの読み出しを停止するようデータ読み出し部8aを制御する。データ読み出し部8aによる記憶装置4等からのオーディオ波形データの読み出しが止められると、一時記憶部3aにオーディオ波形データが書き込まれなくなる。記憶装置4等からのオーディオ波形データの読み出しを停止する条件は、予め用意された演奏テンポ限界値テーブルに記憶されている。そこで、演奏テンポ限界値テーブルについて説明する。図4は、演奏テンポ限界値テーブルのデータ構成を示す概念図である。
図4に示すように、演奏テンポ限界値テーブルには、スタイル名で示されるスタイルデータ毎に、伴奏パターンデータがオーディオ波形データであるパートの番号、演奏テンポの限界値(倍率)、同時再生時の優先順位、対応するMIDIデータの有無が記憶されている。伴奏パターンデータがオーディオ波形データであるパートの番号は、スタイル名で示されるスタイルデータに含まれる複数パートのうち、伴奏パターンデータとしてオーディオ波形データが割り当てられているパート番号(トラック番号)を示す。
演奏テンポの限界値は、タイムストレッチ制御の処理遅れ等によって楽音の自動演奏に支障を生じさせることのないテンポの限界値や、聴感上音質に支障が現われないテンポの限界値を上限値及び下限値によって示す。本実施形態では、一例として、演奏テンポ限界値は演奏テンポの推奨テンポに対する倍率(又は差であってもよい)によって示されており、例えば上限値を上回る演奏テンポが設定された場合には、一時記憶部3aを介してのオーディオ波形データの書き込み制御及び読み出し制御に係る負荷が大きいためにタイムストレッチ制御が遅れて自動演奏に支障が生じるものと看做される。下限値を下回る演奏テンポが設定された場合には、タイムストレッチ制御において読み出す波形位置を調整する(ジャンプする)ことに伴う波形接続劣化が著しいものと看做される。すなわち、これら上限値及び下限値は、タイムストレッチ制御に伴う波形制御に影響して前記取得した演奏テンポより遅れた楽音を生成し得る又は音質の低い楽音を生成し得る閾値である。また、これら上限値及び下限値により定義される演奏テンポ限界値は「単独時の限界値」と「複数時の限界値」とがあり、単独時の限界値は伴奏パターンデータがオーディオ波形データであるパートを単独で自動演奏するときに採用され、複数時の限界値は伴奏パターンデータがオーディオ波形データである複数のパートを同時に自動演奏するとき、つまりはタイムストレッチ制御のための処理負荷が単独時に比べて元々大きいときに採用される。
同時再生時の優先順位は、伴奏パターンデータがオーディオ波形データである複数のパートを自動演奏する際に、複数時の限界値(上限値)よりも速い演奏テンポ又は複数時の限界値(下限値)よりも遅い演奏テンポが指示されたと判断された場合に、オーディオ波形データの読み出しを止めて再生波形信号を生成しない対象とするパートを順位によって示すものである。例えば、図4に示したスタイル名「BBBBB」のスタイルデータに基づく自動演奏時に、複数時の限界値(上限値)「1.4」を超える速い演奏テンポが指示された場合には第「2」順位のパート「16」の再生波形信号が生成されない。また、スタイル名「CCCCC」のスタイルデータに基づく自動演奏時に、複数時の限界値(上限値)「1.0」を超える速い演奏テンポが指示された場合には第「3」順位のパート「15」の再生波形信号が生成されず、さらに複数時の限界値(上限値)「1.1」を超える速い演奏テンポが指示された場合には(複数時の限界値(上限値)「1.4」を超えていなくとも)第「2」順位のパート「14」の再生波形信号が生成されない。なお、遅い演奏テンポが指示された場合には、複数時の限界値(下限値)を参照して同様に判断すればよい。
対応するMIDIデータの有無は、伴奏パターンデータとしてオーディオ波形データの他に、当該オーディオ波形データに対応する伴奏を実現するMIDIデータが割り当てられているか否かを示す。「有」の場合には、当該パートにオーディオ波形データとMIDIデータからなる2つの伴奏パターンデータが割り当てられており、その場合には、限界値を超える演奏テンポが指示された場合に、オーディオ波形データの代わりにMIDIデータに基づいて楽音を発生させることができる。なお、オーディオ波形データに対応するMIDIデータが割り当てられている場合には、演奏者がMIDIデータの「有」又は「無」を適宜に設定できてよい。
図3の説明に戻り、オーディオ波形データに基づく楽音の再生時に演奏テンポの変化によって処理負荷が増大する主な要因は、演奏テンポが速くなればなるほどタイムストレッチ制御に係る処理負荷が大きくなることにある。具体的には、オーディオ波形データの一時記憶部3aへの書き込み速度及び書き込みデータ量、また一時記憶部3aから前記書きこまれたオーディオ波形データを読み出す速度及び読み出しデータ量が増加することに伴い処理負荷が増す。
そこで、本発明の一実施形態では、演奏テンポの限界値(図4参照)に基づき演奏テンポが特にテンポアップの限界に達したと判定された場合、オーディオ波形データの再生を停止する、すなわち、例えばデータ読み出し部8aによる記憶装置4等からのオーディオ波形データの読み出しを止めて一時記憶部3aに対して新たなオーディオ波形データを書き込まないようにする(書き込みを停止する)ことで処理負荷を軽減するようにしている。すなわち、上記の演奏テンポの限界値のうち上限値については、オーディオ波形データの一時記憶部3aへの書き込み制御及び一時記憶部3aからの前記書き込まれたオーディオ波形データの読み出し制御に係る負荷が、再生波形信号を生成するのに支障のない負荷に収まる演奏テンポの限界を示すものであると言える。
記憶装置4等からのオーディオ波形データの読み込みを止めている間は、データ書き込みするアドレスを指し示すデータ書き込みポインタについては停止される一方で、データ読み出しするアドレスを指し示すデータ読み出しポインタについては停止させることなくそのまま動かしておく。ただし、データ読み出しポインタを動かしていてもデータの読み出しを行わずに、かわりに無音の再生波形信号を生成し出力する。つまり、オーディオ波形データの読み込みを止めている間に何も出力しないとノイズが出てしまうことがあるため、無音の再生波形信号を生成して出力する。なお、演奏テンポ限界値テーブルにおいて対応するMIDIデータが「有」の場合には(図4参照)、再生波形信号の生成を停止することに伴って実質的にミュートされる楽音に引き続き、対応するMIDIデータに基づいて後続の楽音を発生させるようにするとよい。
また、演奏テンポがテンポ限界値に達した場合に、該当する楽音が直ちにミュート状態になると「ブチッ」といった雑音が発生してしまい聴感上よくないので、楽音制御回路10は対象の楽音をフェードアウト制御する。一方、楽音制御回路10は、ミュート状態が解除された場合には対象の楽音をフェードイン制御する。これらフェードアウト制御及びフェードイン制御にかける時間は、指示された演奏テンポに依存しない時間に設定することができる。例えば、フェードアウトにかける時間を「t1」、フェードインにかける時間を「t2」とした場合、「t1」が時間軸制御部8bの出力側で例えば「5ms」などの固定時間に設定されると「t2」も固定時間に設定される。ただし、固定時間にすると音質はよくなるが、演奏テンポによっては時間軸制御部8bへの入力量が急激に変化し、極端に負荷が増大する恐れがある。これを避けるために、時間軸制御部8bの入力側でタイムストレッチ制御のために一時記憶部3aにおいて記憶装置4等からのオーディオ波形データの読み込みを止めた時点までに記憶されたオーディオ波形データを用いてフェードアウト制御することが考えられるが、それを採用することなく、演奏テンポによってフェードアウト制御/フェードイン制御にかける時間を変えることのできるようにするとよい。
次に、CPU1が実行する「自動演奏処理」について説明する。図5は、自動演奏処理の一実施例を示すフローチャートである。当該処理は、電子楽器の電源オンに応じて開始され、電子楽器の電源オフに応じて終了される。なお、説明を理解し易くするために、自動演奏中にセクション変更やスタイルデータ変更がなされないものとする。また、伴奏パターンデータとしてオーディオ波形データを使用するパートはリズムパートつまりコード(和音)入力に伴って音高変換を行う必要のないパートであり、そのリズムパートがトラック番号「15」とトラック番号「16」のそれぞれに割り当てられているものとする。リズムパート以外のパートには、伴奏パターンデータとしてMIDIデータが割り当てられている。この場合、2つの一時記憶部3a(Data15とData16と記す)とミュートフラグ(MuteF15とMuteF16と記す)が確保される。さらに、テンポアップされた場合について主に説明する。
ステップS1は、初期設定を実行する。初期設定としては、例えばスタイルデータの選択、コード情報(和音情報)の入力方法の設定、初期テンポの設定、一時記憶部3a(Data15とData16)の初期化、一時記憶部3a(Data15とData16)における各データ書き込みポインタ(共通ポインタであってよい)及びデータ読み出しポインタのリセット、ミュートフラグ(MuteF15とMuteF16)のリセット(0をセット)、自動演奏許可フラグ(RUNフラグと記す)のリセット(0をセット)、現在コード(現在和音)及び直前コード(直前和音)記憶用レジスタの初期化などがある。
ステップS2は、スタイルデータの変更やコード情報(和音情報)の入力方法の変更あるいは初期テンポの変更などといった自動演奏に係る設定変更が行われたか否かを判定する。これらの設定変更が行われたと判定した場合には(ステップS2のYES)、自動演奏停止処理を実行する(ステップS3)。自動演奏停止処理では、例えばタイマの停止、RUNフラグのリセット、発音中の全ての楽音の消音などを行う。その後、ステップS1の処理に戻る。設定変更が行われていないと判定した場合には(ステップS2のNO)、電源オフなどの終了操作が行われたか否かを判定する(ステップS4)。
終了操作が行われたと判定した場合には(ステップS4のYES)、終了処理(ステップS5)を実行した後に本処理を終了する。終了処理では、例えばタイマの停止や発音中の全ての楽音の消音などを行う。一方、終了操作が行われていないと判定した場合には(ステップS4のNO)、演奏者の鍵盤操作などのユーザ演奏操作つまりはマニュアル演奏操作が行われたか否かを判定する(ステップS6)。ユーザ演奏操作が行われたと判定した場合には(ステップS6のYES)、該演奏操作に対応した楽音の発音や消音などの演奏処理(ステップS7)を実行してステップS8の処理へ進む。これにより、自動演奏中において演奏者の演奏操作に応じたマニュアル演奏の楽音が反映され得る。ユーザ演奏操作が行われていないと判定した場合には(ステップS6のNO)、上記ステップS7の処理を行うことなくステップS8の処理へ進む。
ステップS8は、自動演奏開始指示を受け付けたか否かを判定する。自動演奏開始指示を受け付けたと判定した場合には(ステップS8のYES)、RUNフラグに「1」をセット、選択済みのスタイルデータの読み出し(ロード)、直前コード及び現在コードのリセット、タイマ起動などの処理(ステップS9)を実行してからステップS10の処理へ進む。自動演奏開始指示を受け付けていないと判定した場合には(ステップS8のNO)、上記ステップS9の処理を行うことなくステップS10の処理へ進む。
ステップS10は、自動演奏停止指示を受け付けたか否かを判定する。自動演奏停止指示を受け付けたと判定した場合には(ステップS10のYES)、RUNフラグのリセット(0をセット)、一時記憶部3a(Data15とData16)の初期化、ミュートフラグ(MuteF15とMuteF16)のリセット、タイマ停止などの処理(ステップS11)を実行してからステップS12の処理へ進む。自動演奏停止指示を受け付けていないと判定した場合には(ステップS10のNO)、上記ステップS11の処理を行うことなくステップS12の処理へ進む。
ステップS12は、RUNフラグに「1」がセットされているか否かを判定する。RUNフラグに「1」がセットされていないと判定した場合には(ステップS12のNO)、ステップS2の処理に戻る。一方、RUNフラグに「1」がセットされていると判定した場合には(ステップS12のYES)、自動演奏のために設定されている現在の演奏テンポ情報を取得する(ステップS13)。ステップS14は、現在の演奏テンポ情報の変更等に応じた再生波形信号の作り直しが必要なタイミングであるか否かを判定する。再生波形信号の作り直しが必要なタイミングであると判定した場合には(ステップS14のYES)、「オーディオ波形データの読込処理」(ステップS15)を実行してからステップS16の処理へ進む。オーディオ波形データの読込処理については後述する(図6参照)。再生波形信号の作り直しが必要なタイミングでないと判定した場合には(ステップS14のNO)、上記ステップS15の処理を行うことなくステップS16の処理へ進む。
ステップS16は、コード情報(和音情報)の入力を受け付けたか否かを判定する。コード情報の入力態様は初期設定されたコード情報の入力方法(ステップS1参照)によって決まり、例えば演奏者による所定鍵域におけるコード(和音)入力操作やコード名の直接入力や予めコード(和音)に対応付けられた番号の指定操作などに従ってコード情報は随時に入力される。コード情報の入力を受け付けたと判定した場合には(ステップS16のYES)、現在コード(現在の和音)を直前コード(直前の和音)としてセットし、入力されたコード情報を現在コードにセットする(ステップS17)。ここで、初回コード情報の入力時において直前コードは初期状態(コード情報なし)となる。その後、ステップS18の処理へ進む。コード情報の入力を受け付けていないと判定した場合には(ステップS16のNO)、上記ステップS17の処理を行うことなくステップS18の処理へ進む。コード情報の入力は、例えば予め作成されたコード進行列を演奏テンポに従って順次に読み出すことにより行われてもよいし、演奏者のメロディなどの演奏を元に自動検出されたコードを入力することにより行われてもよい。
ステップS18は、伴奏パターンデータを元に生成した再生波形信号を再生するタイミングか否かを判定する。再生波形信号を再生するタイミングでないと判定した場合には(ステップS18のNO)、ステップS2の処理へ戻る。再生波形信号を再生するタイミングであると判定した場合には(ステップS18のYES)、「楽音生成処理」(ステップS19)を実行してから、ステップS2の処理へ戻る。楽音生成処理については後述する(図10参照)。
「オーディオ波形データの読込処理」(図5のステップS15参照)について、図6〜図9を用いて説明する。図6〜図9は、オーディオ波形データの読込処理の一実施例を示すフローチャートである。ただし、ここでは図示の都合上、一連のオーディオ波形データの読込処理を4つに分けて示してある。
図6に示すように、ステップS21は、読み出したスタイルデータから推奨テンポ(基準テンポ)情報を取得する。ステップS22は、テンポ倍率を求める。テンポ倍率は、現在の演奏テンポ情報の推奨テンポ情報に対する倍率(比)を算出することにより求まる。ステップS23は、読込パートを「なし」に初期設定する。ステップS24は、ミュートフラグ(MuteF15とMuteF16)が共にリセット状態「0」であるか否かを判定する。ミュートフラグの何れか一方でもリセット状態にないと判定した場合には(ステップS24のNO)、図7に示すステップS41の処理にジャンプする。ミュートフラグ(MuteF15とMuteF16)が共にリセット状態であると判定した場合には(ステップS24のYES)、テンポ倍率がパート15及びパート16の各複数時の限界値(この例では上限値、以下同じ)よりも小さいか否かを判定する(ステップS25)。なお、テンポ倍率と各限界値との比較は図4に示した演奏テンポ限界値テーブルに基づき行われる。テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいと判定した場合には(ステップS25のYES)、読込パートを「パート15とパート16」に設定して(ステップS26)、図9に示すステップS34の処理に進む。
テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さくないと判定した場合には(ステップS25のNO)、テンポ倍率がパート15及びパート16のうち優先順位の高いいずれかのパートの単独時の限界値よりも小さいか否かを判定する(ステップS27)。テンポ倍率がパート15及びパート16のうち優先順位の高いいずれかのパートの単独時の限界値よりも小さいと判定した場合には(ステップS27のYES)、優先順位の低い方のパートのミュートフラグを「1」にセットすると共に(ステップS28)、読込パートを優先順位の高いいずれかのパートにセットする(ステップS29)。それから、図9に示すステップS34の処理に進む。
一方、テンポ倍率がパート15及びパート16のうち優先順位の高いいずれかのパートの単独時の限界値よりも小さくないと判定した場合には(ステップS27のNO)、テンポ倍率がパート15及びパート16のうち優先順位の低いいずれかのパートの単独時の限界値よりも小さいか否かを判定する(ステップS30)。テンポ倍率がパート15及びパート16のうち優先順位の低いいずれかのパートの単独時の限界値よりも小さいと判定した場合には(ステップS30のYES)、優先順位の高い方のパートのミュートフラグを「1」にセットすると共に(ステップS31)、読込パートを優先順位の低いいずれかのパートにセットする(ステップS32)。その後、図9に示すステップS34の処理に進む。テンポ倍率がパート15及びパート16のうち優先順位の低いいずれかのパートの単独時の限界値よりも小さくないと判定した場合には(ステップS30のNO)、ミュートフラグ(MuteF15とMuteF16)を共に「1」にセットして(ステップS33)、本処理を終了する。
図7に示すように、ステップS41は、ミュートフラグ(MuteF15とMuteF16)の何れかがリセット状態「0」であるか否かを判定する。ミュートフラグの何れかがリセット状態であると判定した場合には(ステップS41のYES)、図8に示すステップS54の処理に進む。
ミュートフラグの両方ともがセット状態「1」であると判定した場合には(ステップS41のNO)、テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいか否かを判定する(ステップS42)。テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいと判定した場合には(ステップS42のYES)、ミュートフラグ(MuteF15とMuteF16)をリセットしてMuteF15とMuteF16のいずれをもリセット状態にすると共に(ステップS43)、読込パートを「パート15とパート16」に設定し(ステップS43)、図9に示すステップS34の処理に進む。
テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さくないと判定した場合には(ステップS42のNO)、テンポ倍率がパート15及びパート16の各単独時の限界値より小さいか否かを判定する(ステップS45)。テンポ倍率がパート15及びパート16の各単独時の限界値より小さいと判定した場合には(ステップS45のYES)、優先順位の高い方のパートのミュートフラグをリセットすると共に(ステップS46)、読込パートを優先順位の高いいずれかのパートにセットして(ステップS47)、図9に示すステップS34の処理に進む。
テンポ倍率がパート15及びパート16の各単独時の限界値より小さくないと判定した場合には(ステップS45のNO)、テンポ倍率がパート15の単独時の限界値より小さいか否かを判定する(ステップS48)。テンポ倍率がパート15の単独時の限界値より小さいと判定した場合には(ステップS48のYES)、セット状態のMuteF15をリセットすると共に(ステップS49)、読込パートをパート15にセットして(ステップS50)、図9に示すステップS34の処理に進む。
テンポ倍率がパート15の単独時の限界値より小さくないと判定した場合には(ステップS48のNO)、テンポ倍率がパート16の単独時の限界値より小さいか否かを判定する(ステップS51)。テンポ倍率がパート16の単独時の限界値より小さいと判定した場合には(ステップS51のYES)、セット状態のMuteF16をリセットすると共に(ステップS52)、読込パートをパート16にセットして(ステップS53)、図9に示すステップS34の処理に進む。テンポ倍率がパート16の単独時の限界値より小さくないと判定した場合には(ステップS51のNO)、本処理を終了する。
図8に示すように、ステップS54は、テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいか否かを判定する。テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さいと判定した場合には(ステップS54のYES)、セット状態のミュートフラグをリセットしてMuteF15とMuteF16のいずれをもリセット状態にすると共に(ステップS55)、読込パートを「パート15とパート16」に設定し(ステップS56)、図9に示すステップS34の処理に進む。
テンポ倍率がパート15及びパート16の各複数時の限界値よりも小さくないと判定した場合には(ステップS54のNO)、テンポ倍率がミュートフラグがリセット状態であるいずれかのパート(15又は16)の単独時の限界値より小さいか否かを判定する(ステップS57)。テンポ倍率がミュートフラグがリセット状態であるパートの単独時の限界値より小さいと判定した場合には(ステップS57のYES)、読込パートをミュートフラグがリセット状態のパートにセットして(ステップS58)、図9に示すステップS34の処理に進む。
テンポ倍率がミュートフラグがリセット状態であるパートの単独時の限界値より小さくないと判定した場合には(ステップS57のNO)、テンポ倍率がミュートフラグがセット状態であるいずれかのパート(15又は16)の単独時の限界値より小さいか否かを判定する(ステップS59)。テンポ倍率がミュートフラグがセット状態であるパートの単独時の限界値より小さいと判定した場合には(ステップS59のYES)、読込パートをミュートフラグがセット状態のパートにセットする(ステップS60)、リセット状態のミュートフラグをセットする(ステップS61)、読込パートのミュートフラグをリセットする(ステップS62)。その後、図9に示すステップS34の処理に戻る。テンポ倍率がミュートフラグがセット状態であるパートの単独時の限界値より小さくないと判定した場合には(ステップS59のNO)、リセット状態のミュートフラグをセットする(ステップS63)。その後、本処理を終了する。
図9に示すように、ステップS34は、上述のようにして設定された読込パートに「パート15とパート16」がセットされているか否かを判定する。読込パートに「パート15とパート16」がセットされていると判定した場合には(ステップS34のYES)、記憶装置4等からパート15とパート16の各波形データを現在のタイミングにあった位置からそれぞれ読み出して、パート15とパート16の各一時記憶部3a(Data15とData16)に対してそれぞれのデータ書き込みポインタによって示される記憶位置から上書きすると共に、それぞれのデータ書き込みポインタを更新する(ステップS35)。その後、本処理を終了する。
読込パートに「パート15とパート16」がセットされていないと判定した場合には(ステップS34のNO)、読込パートに「パート15」がセットされているか否かを判定する(ステップS36)。読込パートに「パート15」がセットされていると判定した場合には(ステップS36のYES)、記憶装置4等からパート15の波形データを現在のタイミングにあった位置から読み出して、パート15の一時記憶部3a(Data15)に対してデータ書き込みポインタによって示される記憶位置から上書きすると共に、データ書き込みポインタを更新する(ステップS37)。このようにData15へのオーディオ波形データの書き込み処理にあわせて、パート16の一時記憶部(Data16)と共通のデータ書き込みポインタを更新する。その際には、記憶装置4等からの波形データの読み出しを止めることによってパート16の一時記憶部(Data16)へのオーディオ波形データの書き込み処理が停止されることから、Data15においてオーディオ波形データが上書きされた区間に対応するData16の該当区間に記憶されていたオーディオ波形データを消去する。その後、本処理を終了する。
読込パートに「パート15」がセットされていないと判定した場合には(ステップS36のNO)、読込パートに「パート16」がセットされているか否かを判定する(ステップS38)。読込パートに「パート16」がセットされていないと判定した場合には(ステップS38のNO)、本処理を終了する。
読込パートに「パート16」がセットされていると判定した場合には(ステップS38のYES)、記憶装置4等からパート16のオーディオ波形データを現在のタイミングにあった位置から読み出して、パート16の一時記憶部(Data16)に対してData16のデータ書き込みポインタによって示される記憶位置から上書きすると共に、Data16のデータ書き込みポインタを更新する(ステップS39)。このようにData16へのオーディオ波形データの書き込み処理にあわせて、パート15の一時記憶部(Data15)と共通のデータ書き込みポインタを更新する。その際には、記憶手段4からのオーディオ波形データの読み出しを止めることによってパート15の一時記憶部(Data15)へのオーディオ波形データの書き込み処理が停止されることから、Data16においてオーディオ波形データが上書きされた区間に対応するData15の該当区間に記憶されていたオーディオ波形データを消去する。その後、本処理を終了する。
このように、オーディオ波形データの読込処理では、読込パートであるパートについては記憶装置4等からオーディオ波形データを読み出して一時記憶部3aへの書き込みを行うが、読込パートでないパートについては記憶装置4等からオーディオ波形データを読み出さずに一時記憶部3aへの書き込みを行わない。上述したように、読込パートはテンポ倍率と演奏テンポの限界値によって決まることからすれば、指定された演奏テンポに応じた再生波形信号を生成するために必要なタイムストレッチ制御に係る処理負荷、つまりはオーディオ波形データの一時記憶部3aへの書き込み制御及び一時記憶部3aからの前記書き込まれたオーディオ波形データの読み出し制御に係る負荷が大きい、あるいは波形接続劣化が大きいと判定されるパートは読込パートにセットされない。
次に、「楽音生成処理」(図5のステップS19参照)について、図10及び図11を用いて説明する。図10及び図11は、楽音生成処理の一実施例を示すフローチャートである。ただし、ここでは図示の都合上、一連の楽音生成処理を2つに分けて示してある。
図10に示すように、ステップS71は、スタイルデータに含まれる伴奏パターンデータを割り当て済みの自動演奏パートのいずれかを対象パートとする。ステップS72は、対象パートの伴奏パターンデータがMIDIデータであるか否かを判定する。対象パートの伴奏パターンデータがMIDIデータであると判定した場合には(ステップS72のYES)、対象パートのMIDIデータから現在のタイミングにあるイベントデータ(音符イベント)を読み出し、直前のコード(和音)と現在のコード(和音)を基に必要に応じて音高を変更した再生波形信号を生成し出力する(ステップS79)。その後、図11に示すステップS85の処理へ進む。
対象パートの伴奏パターンデータがMIDIデータでないつまりオーディオ波形データであると判定した場合には(ステップS72のNO)、対象パートはパート15であるか否かを判定する(ステップS73)。対象パートがパート15でないと判定した場合には(ステップS73のNO)、図11に示すステップS80の処理へ進む。一方、対象パートがパート15であると判定した場合には(ステップS73のYES)、MuteF15がリセット状態「0」であるか否かを判定する(ステップS74)。MuteF15がリセット状態であると判定した場合には(ステップS74のYES)、Data15に書き込まれたオーディオ波形データを現在の演奏テンポ情報に合うように読み出してタイムストレッチ制御を行うことにより再生波形信号を生成し、出力する(ステップS78)。その後、図11に示すステップS85の処理へ進む。
MuteF15がセット状態にあると判定した場合には(ステップS74のNO)、「フェードアウト処理」を実行する(ステップS75)。フェードアウト処理については後述する(図12参照)が、このフェードアウト処理は場合によって行わなくてもよい。ステップS76は、対象パートのオーディオ波形データに対応するMIDIデータがあるか否かを判定する。対象パートのオーディオ波形データに対応するMIDIデータがないと判定した場合には(ステップS76のNO)、図11に示すステップS85の処理へ進む。対象パートのオーディオ波形データに対応するMIDIデータがあると判定した場合には(ステップS76のYES)、対象パートのオーディオ波形データに対応するMIDIデータから現在のタイミングにあるイベントデータ(音符イベント)を読み出し、直前のコードと現在のコードを基に必要に応じて音高を変更し、再生波形信号を生成し出力する(ステップS77)。その後、図11に示すステップS85の処理へ進む。
図11に示すように、ステップS80は、MuteF16はリセット状態「0」であるか否かを判定する。MuteF16がリセット状態であると判定した場合には(ステップS80のYES)、Data16に書き込まれた波形データを現在の演奏テンポ情報にあうように読み出してタイムストレッチ制御を行って再生波形信号を生成し出力する(ステップS84)。その後、ステップS85の処理へ進む。一方、MuteF16がセット状態にあると判定した場合には(ステップS80のNO)、「フェードアウト処理」を実行する(ステップS81)。フェードアウト処理については後述する(図12参照)が、このフェードアウト処理は場合によって行わなくてもよい。
ステップS82は、対象パートのオーディオ波形データに対応するMIDIデータがあるか否かを判定する。このオーディオ波形データに対応するMIDIデータとは、オーディオ波形データの演奏パターン(伴奏パターン)とそっくり同一であることを要せず、オーディオ波形データの演奏パターン(伴奏パターン)に代替し得る演奏パターン(伴奏パターン)を持つMIDIデータであればよい。対象パートのオーディオ波形データに対応するMIDIデータがないと判定した場合には(ステップS82のNO)、ステップS85の処理へ進む。対象パートのオーディオ波形データに対応するMIDIデータがあると判定した場合には(ステップS82のYES)、対象パートのオーディオ波形データに対応するMIDIデータから現在のタイミングにあるイベントデータ(音符イベント)を読み出し、直前のコードと現在のコードを基に必要に応じて音高を変更した再生波形信号を生成し出力する(ステップS83)。
ステップS85は、上記処理を行っていない自動演奏パートがあるか否かを判定する。上記処理を行っていない自動演奏パートがあると判定した場合には(ステップS85のNO)、上記処理を行っていない自動演奏パートを対象パートとして(ステップS86)、図10に示すステップS72の処理に戻って上記したステップS72〜S86までの処理を繰り返す。上記処理を行っていない自動演奏パートがないと判定した場合には(ステップS85のYES)、本処理を終了する。
次に、「フェードアウト処理」(図10のステップS75及び図11のステップS81参照)について説明する。図12は、フェードアウト処理の一実施例を示すフローチャートである。
ステップS91は、現在の演奏テンポ情報に基づきフェードアウトの時間範囲を算出する。ステップS92は、現在のタイミングはフェードアウトの時間範囲内であるか否かを判定する。現在のタイミングはフェードアウトの時間範囲内でないと判定した場合には(ステップS92のNO)、「無音」の再生波形信号を生成し、現在の演奏テンポ情報にあわせて出力して(ステップS96)、本処理を終了する。
他方、現在のタイミングはフェードアウトの時間範囲内であると判定した場合には(ステップS92のYES)、ミュートフラグ(MuteF15とMuteF16)に基づきミュート対象のパートがパート15(MuteF15が「1」である場合)又はパート16(MuteF16が「1」である場合)のいずれであるかを判定する(ステップS93)。ミュート対象パートがパート15であると判定した場合には(ステップS93のYES)、MuteF15に「1」がセットされる直前までにData15に書き込まれたオーディオ波形データを、現在の演奏テンポ情報にあうように読み出してタイムストレッチ制御を行って再生波形信号を生成すると共に、音量を現在のタイミングのフェードアウトの時間範囲内での時間位置に応じて調整しながら再生波形信号を出力する(ステップS94)。他方、ミュート対象パートがパート16であると判定した場合には(ステップS93のNO)、MuteF16に「1」がセットされる直前までにData16に書き込まれたオーディオ波形データを、現在の演奏テンポ情報に合うように読み出してタイムストレッチ制御を行うことにより再生波形信号を生成すると共に、音量を現在のタイミングのフェードアウトの時間範囲内での時間位置に応じて調整しながら再生波形信号を出力する(ステップS95)。
楽音制御回路10では、波形再生時に或るまとまったサンプル数分の再生波形信号を一度に受け取り、それを自動的に直接1サンプルずつ取り出して、MIDIデータのイベントに応じて生成された複数トラック分の再生波形信号を信号混合回路(図示せず)により混合(加算)してD/A変換回路(図示せず)に供給する。また、楽音制御回路10は、再生波形信号を混合する際に各トラックの音量を制御するための乗算回路(図示せず)を有する。さらに、楽音制御回路10は、1サンプルずつ読み出した再生波形信号を音量制御するための乗算回路(図示せず)をトラック毎に有しており、そこに「音量0」を示すパラメータをCPU1が指示するようにすればフェードアウト制御を実現することができる。フェードイン制御の実現には、ユーザ操作の値や伴奏パターンデータにおける設定値など目標音量を示す情報をミュート解除時にCPU1が供給するようにすればよい。
なお、上述した実施例においてはテンポアップされたときにオーディオ波形データの再生を制限する制御を例に説明したが、テンポダウンされたときにもオーディオ波形データの再生を制限するようにするとよい。演奏テンポが推奨テンポ(基準テンポ)よりかなり遅く設定された場合には、CPU1の負荷の点では問題ないが音質が劣化する点では問題である。そこで、演奏テンポが遅くなる場合における演奏テンポの限界値(図4に示した下限値)を設定しておき、これによってオーディオ波形データに基づく楽音の発生を実行するか否かを判断することのできるようにしてよい。すなわち、図4に示したように演奏テンポの限界値として上限値と下限値とを設定しておき、設定された演奏テンポに基づくテンポ倍率がこれらの範囲内に収まる場合にオーディオ波形データの読み出しを継続させ、これらの範囲を外れた場合にオーディオ波形データの読み出しを停止させるようにするとよい。
なお、上記実施例では、演奏テンポと基準テンポ(推奨テンポ)との関係(例えば演奏テンポの基準テンポに対する比)に応じて、オーディオ波形データの再生を制限すべきか否かが判定され、再生を制限すべきと判定された場合は、該オーディオ波形データの再生を停止するようにしているが、これに限らず、再生処理の分解能を下げてオーディオ波形データの再生を持続するようにしてもよい。例えば、再生処理の分解能を下げるために、時間軸制御部8bによるオーディオ波形データの時間軸伸縮制御の分解能を下げるようにするとよい。例えば、オーディオ波形データの時間軸伸縮制御の分解能を下げることは、時間軸伸縮制御の対象として記憶装置4から読み出すオーディオ波形データのサンプリング周波数を低下させることに基づき実現できる。このように、記憶装置4から読み出すオーディオ波形データのサンプリング周波数を下げ、これに伴い時間軸伸縮制御の分解能を下げることにより、CPU1の処理負荷を軽減することができる。この場合は、時間軸伸縮制御の分解能の低下によりデジェネレートされたオーディオ波形データが生成されることになるが、全く再生停止してしまう場合に比べて、演奏音を出すことができるので、幾分有利かもしれない。例えば、再生停止したオーディオ波形データに代替し得る同じ演奏パートの同じ又は似たようなMIDIデータが存在していない場合は、そのようなデジェネレートされたオーディオ波形データの生成が有利に活用し得る。そのためには、具体的には、上記実施例における各パートのミュートフラグのセット状態に応答して、当該パートについて時間軸伸縮制御の分解能を下げる制御を行えばよい。
なお、請求の範囲で言う「波形データ」とは、以上説明した実施例及び変形例で言う「オーディオ波形データ」に対応している。また、以上説明した実施例及び変形例において、スタイルデータと共にオーディオ波形データを記憶している記憶装置4(あるいはROM2又はその他の記憶手段)は、請求の範囲で言う「任意の基準テンポに従う音楽演奏の波形データを記憶する記憶部」として機能する。また、CPU1及びそれによって実行されるステップS21(図6)等による処理は、請求の範囲で言う「可変の演奏テンポを指定する情報を取得する取得部」として機能する。また、CPU1及びそれによって実行されるステップS22,S25,S27,S28,S30,S31,S33(図6)等による処理は、請求の範囲で言う「前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定する判定部」として機能する。また、オーディオ再生部8、CPU1及びそれによって実行されるステップS74,S75,S78(図10)、ステップS80,S81,S84(図11)等による処理は、請求の範囲で言う「前記記憶部に記憶された前記波形データを再生するオーディオ再生部であって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定部が再生を制限すべきと判定した場合は、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記オーディオ再生部」として機能する。
また、上述した実施例におけるテンポアップされたときにオーディオ波形データの再生を制限する制御に関与する前記CPU1及びそれによって実行されるステップS22,S25,S27,S28,S30,S31,S33(図6)等による処理は、請求の範囲で言う「前記演奏テンポが前記基準テンポに比べて速過ぎるという所定の第1の条件を充足する場合、前記波形データの再生を制限すべきと判定する判定部」として機能し、これに応じた前記CPU1及びステップS74,S75,S78(図10)、ステップS80,S81,S84(図11)等による処理は、請求の範囲で言う「前記判定部による前記第1の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うオーディオ再生部」として機能する。
また、上述した変形例におけるテンポダウンされたときにオーディオ波形データの再生を制限する制御に関与するCPU1及び各ステップの処理は、請求の範囲で言う「前記演奏テンポが前記基準テンポに比べて遅過ぎるという所定の第2の条件を充足する場合、前記波形データの再生を制限すべきと判定する判定部」として機能し、かつ、「前記判定部による前記第2の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止することを行うオーディオ再生部」として機能する。
また、上記実施例におけるMIDI音源部9及びこれに関連するCPU1による処理は、請求の範囲で言う「MIDI形式データのような楽音発生命令データに基づき楽音波形を生成する楽音発生部」として機能し、オーディオ再生部8、CPU1及びステップS77(図10)等の処理は、請求の範囲で言う「前記判定部による再生を制限すべきとの判定に応じて、前記波形データの再生を停止することを行い、かつ、前記楽音発生部は、前記再生停止する波形データに対応する楽音波形を、前記楽音発生命令データに基づき生成するオーディオ再生部」として機能する。
以上のように、本発明に係る自動演奏装置によると、任意の基準テンポに従って演奏されたオーディオ波形データに基づいて任意の演奏テンポのオーディオ波形データを生成するために時間軸伸縮制御を行う場合に、取得した演奏テンポと基準テンポとの関係に基づいて該オーディオ波形データの再生を制限するか否かを判定する。ここで、演奏テンポと前記基準テンポとの間に、時間軸伸縮制御の処理の遅れの影響により、該演奏テンポよりも遅れた楽音を生成させ得るような、又は音質の低い楽音を生成させ得るような、あるいは処理システムをフリーズさせるような、乖離がある場合に、該オーディオ波形データの再生を制限すべきと判定される。オーディオ波形データの再生を制限すべきと判定された場合、該オーディオ波形データの再生を停止すること及び再生処理の分解能を下げて該オーディオ波形データの再生を持続することの一方が行われる。演奏テンポと基準テンポとの関係が、処理の遅延又は音質の劣化を来すような演奏テンポでオーディオ波形データを再生することになるような関係である場合、該オーディオ波形データの再生を停止することにより、該所望の演奏テンポよりも遅れた楽音の生成あるいはノイズ性の断続的な音切れ若しくは音質の著しく低下した楽音の生成等の問題を解決することができ、さらには、処理システムがフリーズすることを防止してフリーズに伴う種々の不都合が発生することを未然に防止することができる。一方、再生処理の分解能を下げることは、例えば、波形データの時間軸伸縮制御の分解能を下げることからなる。このように、再生処理の分解能を下げるにより、処理の遅れを防ぎ、所望の演奏テンポから遅れることを防止することができる。
以上、図面に基づいて実施形態の一例を説明したが、本発明はこれに限定されるものではなく、様々な実施形態が可能であることは言うまでもない。例えば、スタイルデータが伴奏パターンデータとしてオーディオ波形データと当該オーディオ波形データに対応するMIDIデータとを有する場合、上述した実施例では、オーディオ波形データの読み出しを停止することによりオーディオ波形データに基づく楽音を発生させない代わりに、MIDIデータの再生により楽音を発生させるようにしたがこれに限らない(図10のステップS79参照)。例えば、自動演奏の開始にあわせてMIDIデータに基づく楽音生成制御を開始させておき、演奏テンポによってMIDIデータに基づき生成される楽音をミュートするかミュートしないかを制御するようにしてもよい。すなわち、演奏テンポがオーディオ波形データに基づく楽音発生に影響がないテンポであれば、MIDIデータに基づき生成された楽音をミュートしておき、オーディオ波形データに基づく楽音を発生させる。他方、演奏テンポがオーディオ波形データに基づく楽音の発生に影響するテンポであれば、MIDIデータに基づき生成された楽音のミュートを解除してMIDIデータに基づき生成された楽音を発生させる。
なお、この自動演奏装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。
なお、自動演奏の開始/停止は再生/停止ボタンのユーザ操作に応じて指示されるものに限らず、ユーザ演奏操作の開始を自動検出することにより自動演奏の開始を指示し、ユーザ演奏操作の終了を自動検出することにより(例えば10秒程度演奏入力がない場合など)自動演奏の停止を指示するようにしてもよい。自動演奏の停止が指示された場合、直ちに自動演奏を停止するようにしてもよいし、あるいは伴奏パターンデータを最後まで若しくは適当な音の区切れ目などまで自動演奏を行ってから停止するようにしてもよい。

Claims (16)

  1. 任意の基準テンポに従う音楽演奏の波形データを記憶する記憶部と、
    可変の演奏テンポを指定する情報を取得する取得部と、
    前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定する判定部と、
    前記記憶部に記憶された前記波形データを再生するオーディオ再生部であって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定部が再生を制限すべきと判定した場合は、前記波形データの再生を停止すること又は再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記オーディオ再生部と
    を具備する自動演奏装置。
  2. 前記判定部は、前記演奏テンポが前記基準テンポに比べて速過ぎるという所定の第1の条件を充足する場合、前記波形データの再生を制限すべきと判定し、
    前記オーディオ再生部は、前記判定部による前記第1の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止すること及び再生処理の分解能を下げて前記波形データの再生を持続することの一方を行う、請求項1に記載の自動演奏装置。
  3. 前記判定部は、前記演奏テンポが前記基準テンポに比べて遅過ぎるという所定の第2の条件を充足する場合、前記波形データの再生を制限すべきと判定し、
    前記オーディオ再生部は、前記判定部による前記第2の条件に基づく再生を制限すべきとの判定に応じて、前記波形データの再生を停止することを行う、請求項1又は2に記載の自動演奏装置。
  4. MIDI形式データのような楽音発生命令データに基づき楽音波形を生成する楽音発生部をさらに備え、
    前記判定部による再生を制限すべきとの判定に応じて、前記オーディオ再生部は、前記波形データの再生を停止することを行い、かつ、前記楽音発生部は、前記再生停止する波形データに対応する楽音波形を、前記楽音発生命令データに基づき生成する、請求項1乃至3のいずれかに記載の自動演奏装置。
  5. 前記オーディオ再生部は、前記時間軸伸縮制御を行う際に、前記波形データを一時記憶部に書き込む制御と、前記一時記憶部から前記書き込んだ波形データを読み出す制御とを行う、請求項1乃至4のいずれかに記載の自動演奏装置。
  6. 前記判定部は、前記演奏テンポが前記基準テンポに比べて速すぎるという所定の第1の条件を充足する場合、前記一時記憶部を介しての波形データの書き込み制御及び読み出し制御に係る負荷が大きい見做して前記波形データの再生を制限すると判定する、請求項5に記載の自動演奏装置。
  7. 前記判定部は、前記演奏テンポが前記基準テンポに比べて遅すぎるという所定の第2の条件を充足する場合、前記一時記憶部を介して波形データを読み出す波形位置を調整することに伴う波形接続劣化が著しいと見做して前記波形データの再生を制限すると判定する、請求項5に記載の自動演奏装置。
  8. 前記オーディオ再生部は、前記判定部により前記波形データの前記一時記憶部への書き込み制御及び前記一時記憶部からの読み出し制御に係る負荷が大きいと看做して、あるいは、前記一時記憶部を介して波形データを読み出す波形位置を調整することに伴う波形接続劣化が著しいと見做して、前記波形データの再生を制限すると判定された場合に、前記一時記憶部への波形データの書き込みを停止する一方で、前記判定部により前記波形データの再生を制限すると判定されなくなった場合に、前記一時記憶部への波形データの書き込みを再開する、請求項6又は7に記載の自動演奏装置。
  9. 前記オーディオ再生部が前記波形データの再生を停止するとき、該再生停止すべき波形データに対応する楽音をフェードアウト制御する楽音制御部をさらに備える請求項1乃至のいずれかに記載の自動演奏装置。
  10. 前記楽音制御部は、前記オーディオ再生部が再生停止していた前記波形データの再生を再開するとき、該再生再開すべき波形データに対応する楽音をフェードイン制御する、請求項に記載の自動演奏装置。
  11. 前記オーディオ再生部は、前記判定部が再生を制限すべきと判定した場合に、前記波形データの時間軸伸縮制御の分解能を下げることにより、前記再生処理の分解能を下げて前記波形データの再生を持続することを行う、請求項1に記載の自動演奏装置。
  12. 前記波形データの時間軸伸縮制御の分解能を下げることは、時間軸伸縮制御の対象として前記記憶部から読み出す前記波形データのサンプリング周波数を低下させることからなる、請求項11に記載の自動演奏装置。
  13. 前記記憶部に記憶される前記波形データは、或る演奏パターンに対応する所定長さを持ち、
    前記オーディオ再生部は、前記波形データを繰り返し再生することが可能である、請求項1乃至12のいずれかに記載の自動演奏装置。
  14. 前記オーディオ再生部は、複数の演奏パートの波形データを同時に再生することが可能であり、
    前記判定部は、各演奏パート毎に独立に定義される条件に従って、各演奏パート毎に該演奏パートの前記波形データの再生を制限すべきか否かを判定する、請求項1乃至13のいずれかに記載の自動演奏装置。
  15. 記憶部に記憶されている波形データを使用して自動演奏を行うための、コンピュータによって実行される方法であって、前記記憶部は、任意の基準テンポに従う音楽演奏の波形データを記憶しており、前記方法は、
    可変の演奏テンポを指定する情報を取得するステップと、
    前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定するステップと、
    前記記憶部に記憶された前記波形データを再生するステップであって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定するステップで再生を制限すべきと判定された場合は、前記波形データの再生を停止すること又は再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記ステップと
    を具備する方法。
  16. 一時的でないコンピュータ読み取り可能な記憶媒体であって、記憶部に記憶されている波形データを使用して自動演奏を行うための方法をプロセッサに実行させるための命令群を内容としており、前記記憶部は、任意の基準テンポに従う音楽演奏の波形データを記憶しており、前記方法は、
    可変の演奏テンポを指定する情報を取得するステップと、
    前記演奏テンポと前記基準テンポとの関係に応じて、前記波形データの再生を制限すべきか否かを判定するステップと、
    前記記憶部に記憶された前記波形データを再生するステップであって、前記演奏テンポに従って前記波形データを再生するために、前記演奏テンポと前記基準テンポとの関係に応じて、再生すべき前記波形データの時間軸伸縮制御を行うものであり、かつ、前記判定するステップで再生を制限すべきと判定された場合は、前記波形データの再生を停止すること又は再生処理の分解能を下げて前記波形データの再生を持続することの一方を行うように構成された前記ステップと
    を具備する記憶媒体。
JP2013535171A 2012-06-26 2013-06-26 オーディオ波形データを使用する自動演奏技術 Expired - Fee Related JP6191459B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012142890 2012-06-26
JP2012142890 2012-06-26
PCT/JP2013/067566 WO2014003072A1 (ja) 2012-06-26 2013-06-26 オーディオ波形データを使用する自動演奏技術

Publications (2)

Publication Number Publication Date
JPWO2014003072A1 JPWO2014003072A1 (ja) 2016-06-02
JP6191459B2 true JP6191459B2 (ja) 2017-09-06

Family

ID=49783213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013535171A Expired - Fee Related JP6191459B2 (ja) 2012-06-26 2013-06-26 オーディオ波形データを使用する自動演奏技術

Country Status (5)

Country Link
US (1) US9613635B2 (ja)
EP (1) EP2866223B1 (ja)
JP (1) JP6191459B2 (ja)
CN (1) CN104412320B (ja)
WO (1) WO2014003072A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3208795B1 (en) * 2014-10-17 2020-03-04 Yamaha Corporation Content control device and content control program
US9721551B2 (en) 2015-09-29 2017-08-01 Amper Music, Inc. Machines, systems, processes for automated music composition and generation employing linguistic and/or graphical icon based musical experience descriptions
US10854180B2 (en) 2015-09-29 2020-12-01 Amper Music, Inc. Method of and system for controlling the qualities of musical energy embodied in and expressed by digital music to be automatically composed and generated by an automated music composition and generation engine
JP6428689B2 (ja) * 2016-03-23 2018-11-28 カシオ計算機株式会社 波形読込み装置、方法、プログラム、及び電子楽器
WO2018016637A1 (ja) * 2016-07-22 2018-01-25 ヤマハ株式会社 制御方法、及び、制御装置
GB201620838D0 (en) 2016-12-07 2017-01-18 Weav Music Ltd Audio playback
GB201620839D0 (en) * 2016-12-07 2017-01-18 Weav Music Ltd Data format
JP7124371B2 (ja) * 2018-03-22 2022-08-24 カシオ計算機株式会社 電子楽器、方法及びプログラム
CN109671433B (zh) 2019-01-10 2023-06-16 腾讯科技(深圳)有限公司 一种关键词的检测方法以及相关装置
JP7285175B2 (ja) * 2019-09-04 2023-06-01 ローランド株式会社 楽音処理装置、及び楽音処理方法
US10964299B1 (en) 2019-10-15 2021-03-30 Shutterstock, Inc. Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions
US11024275B2 (en) 2019-10-15 2021-06-01 Shutterstock, Inc. Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system
US11037538B2 (en) 2019-10-15 2021-06-15 Shutterstock, Inc. Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4542675A (en) * 1983-02-04 1985-09-24 Hall Jr Robert J Automatic tempo set
JP2512997B2 (ja) * 1988-06-28 1996-07-03 ヤマハ株式会社 自動伴奏装置
US5521323A (en) * 1993-05-21 1996-05-28 Coda Music Technologies, Inc. Real-time performance score matching
JP2970396B2 (ja) 1994-04-22 1999-11-02 ヤマハ株式会社 波形処理装置
US5792971A (en) * 1995-09-29 1998-08-11 Opcode Systems, Inc. Method and system for editing digital audio information with music-like parameters
JP3725247B2 (ja) * 1996-05-20 2005-12-07 ローランド株式会社 楽音生成処理方法
SG65729A1 (en) * 1997-01-31 1999-06-22 Yamaha Corp Tone generating device and method using a time stretch/compression control technique
JP3399297B2 (ja) * 1997-05-22 2003-04-21 ヤマハ株式会社 電子楽器
JP4240575B2 (ja) * 1998-05-15 2009-03-18 ヤマハ株式会社 楽音合成方法、記録媒体および楽音合成装置
US6207885B1 (en) * 1999-01-19 2001-03-27 Roland Corporation System and method for rendition control
JP4293712B2 (ja) * 1999-10-18 2009-07-08 ローランド株式会社 オーディオ波形再生装置
US7792681B2 (en) * 1999-12-17 2010-09-07 Interval Licensing Llc Time-scale modification of data-compressed audio information
US6673995B2 (en) * 2000-11-06 2004-01-06 Matsushita Electric Industrial Co., Ltd. Musical signal processing apparatus
KR100385331B1 (ko) * 2000-12-19 2003-05-27 주식회사 코스모탄 변속재생 시에도 음색변화를 유발하지 않도록 하는오디오신호 재생방법과 이를 위한 재생장치
DE10164686B4 (de) * 2001-01-13 2007-05-31 Native Instruments Software Synthesis Gmbh Automatische Erkennung und Anpassung von Tempo und Phase von Musikstücken und darauf aufbauender interaktiver Musik-Abspieler
US7094965B2 (en) * 2001-01-17 2006-08-22 Yamaha Corporation Waveform data analysis method and apparatus suitable for waveform expansion/compression control
US7461002B2 (en) * 2001-04-13 2008-12-02 Dolby Laboratories Licensing Corporation Method for time aligning audio signals using characterizations based on auditory events
US7610205B2 (en) * 2002-02-12 2009-10-27 Dolby Laboratories Licensing Corporation High quality time-scaling and pitch-scaling of audio signals
US7521623B2 (en) * 2004-11-24 2009-04-21 Apple Inc. Music synchronization arrangement
US7189913B2 (en) * 2003-04-04 2007-03-13 Apple Computer, Inc. Method and apparatus for time compression and expansion of audio data with dynamic tempo change during playback
JP4201679B2 (ja) * 2003-10-16 2008-12-24 ローランド株式会社 波形発生装置
JP5243042B2 (ja) * 2005-12-09 2013-07-24 ソニー株式会社 音楽編集装置及び音楽編集方法
JP2007188598A (ja) * 2006-01-13 2007-07-26 Sony Corp コンテンツ再生装置およびコンテンツ再生方法並びにプログラム
US20080131075A1 (en) * 2006-12-01 2008-06-05 The Directv Group, Inc. Trick play dvr with audio pitch correction
JP5007563B2 (ja) * 2006-12-28 2012-08-22 ソニー株式会社 音楽編集装置および方法、並びに、プログラム
JP4306754B2 (ja) * 2007-03-27 2009-08-05 ヤマハ株式会社 楽曲データ自動生成装置及び音楽再生制御装置
US8865991B1 (en) * 2008-12-15 2014-10-21 Cambridge Silicon Radio Limited Portable music player
US8655466B2 (en) * 2009-02-27 2014-02-18 Apple Inc. Correlating changes in audio
US8153882B2 (en) * 2009-07-20 2012-04-10 Apple Inc. Time compression/expansion of selected audio segments in an audio file
US8903730B2 (en) * 2009-10-02 2014-12-02 Stmicroelectronics Asia Pacific Pte Ltd Content feature-preserving and complexity-scalable system and method to modify time scaling of digital audio signals
JP2012103603A (ja) * 2010-11-12 2012-05-31 Sony Corp 情報処理装置、楽曲区間抽出方法、及びプログラム

Also Published As

Publication number Publication date
CN104412320A (zh) 2015-03-11
EP2866223A4 (en) 2015-12-30
WO2014003072A1 (ja) 2014-01-03
EP2866223A1 (en) 2015-04-29
EP2866223B1 (en) 2017-02-01
JPWO2014003072A1 (ja) 2016-06-02
US9613635B2 (en) 2017-04-04
CN104412320B (zh) 2017-11-17
US20150154979A1 (en) 2015-06-04

Similar Documents

Publication Publication Date Title
JP6191459B2 (ja) オーディオ波形データを使用する自動演奏技術
JP6011064B2 (ja) 自動演奏装置及びプログラム
JP4274152B2 (ja) 楽音合成装置
JP6019803B2 (ja) 自動演奏装置及びプログラム
JP3601371B2 (ja) 波形生成方法及び装置
JP4802857B2 (ja) 楽音合成装置及びプログラム
JP4561636B2 (ja) 楽音合成装置及びプログラム
JP2010113278A (ja) 楽曲処理装置およびプログラム
JP3654084B2 (ja) 波形生成方法及び装置
JP2006126710A (ja) 奏法決定装置及びプログラム
JP3904012B2 (ja) 波形生成装置及び方法
JP4552769B2 (ja) 楽音波形合成装置
JP4270102B2 (ja) 自動演奏装置及びプログラム
JP5104414B2 (ja) 自動演奏装置及びプログラム
JP4816441B2 (ja) 楽音合成装置及びプログラム
JP3637782B2 (ja) データ生成装置と記録媒体
JP2000214852A (ja) 波形再生装置および波形記憶媒体
JP4007374B2 (ja) 波形生成方法及び装置
JP3933162B2 (ja) 波形生成方法及び装置
JP5104415B2 (ja) 自動演奏装置及びプログラム
JP3933161B2 (ja) 波形生成方法及び装置
JP3674527B2 (ja) 波形生成方法及び装置
JPH10254448A (ja) 自動伴奏装置及び自動伴奏制御プログラムを記録した媒体
JP2005010462A (ja) 自動演奏装置及び自動演奏処理プログラム並びに自動演奏パターンデータを記録したコンピュータ読み取り可能な記録媒体
JP2006133464A (ja) 奏法決定装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R151 Written notification of patent or utility model registration

Ref document number: 6191459

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees