以下、本発明の実施の形態について図面を参照して説明する。図1は、本発明の電子楽器の一実施形態であるオルゴール10を斜め上方から見た斜視図である。本実施形態において、オルゴール10の上方とは、オルゴール10が非図示の設置平面に設置される際の上方(略鉛直上方)である。図1に示すオルゴール10は、演奏機構部100を収容する筐体34を備えている。演奏機構部100は、後述する電源500から電力が供給されることにより、駆動される。筐体34には、複数の操作部と、表示部72とが設けられる。複数の操作部は、入力操作部70と、楽曲選択操作部71とを含む。入力操作部70は、後述する楽曲データが演奏される演奏テンポを変更指示するために操作可能である。楽曲選択操作部71は、後述する楽曲データベース96に記憶された複数の楽曲データから再生させる楽曲を選択するために操作可能である。入力操作部70の詳細は後述する。表示部72は、後述する楽曲データベース96から読み出された情報を表示する。
図2は、オルゴール10を、図1に示す線L―Lに従って上下方向に切断し、第1軸12の軸心方向である矢視方向に視た断面図である。図3は、オルゴール10の筐体34内に設けられた演奏機構部100の構成を斜め上方から見た斜視図である。オルゴール10の演奏機構部100は、第1軸12と、スターホイール14と、第2軸26と、ストッパ22と、第3軸20と、サンホイール28と、フレーム29と、電磁石24とを一組とした演奏機構組を、複数組備える。図4は、図1に示す演奏機構部100の二組の演奏機構組の構成を、斜め上方から見た斜視図である。図5は、一組の演奏機構組と、振動板16と、台座30とを、第1軸12の軸心方向に視た図である。振動板16が、台座30に固定される。台座30と、第1軸12と、第2軸26と、第3軸20とが、フレーム29に固定される。演奏機構部100は、筐体34にフレーム29が固定されることにより、筐体34の内部に配置される。また、筐体34の内部では、演奏機構部100の電磁石24が、後述する制御部60と電気的に接続されている。
演奏機構部100では、複数のスターホイール14が、第1軸12に挿入される。複数のスターホイール14は、第1軸12を中心に回転可能に設けられる。第1軸12に沿って、振動板16が設けられる。振動板16は、スターホイール14の数に対応する複数の振動弁18を備える。本実施形態では、40個のスターホイール14に対して、40弁の振動弁18が、第1軸12に沿って設けられる。振動弁18は、後述するスターホイール14の爪に弾かれて発音する。
また、第1軸12に平行に並んで、第2軸26と第3軸20とが設けられる。第3軸20には、複数のスターホイール14に対応する複数のストッパ22が配列される。複数のストッパ22は、板部材50と、スナップばね56とを備え、第3軸20を中心に回動可能に設けられる。第2軸26には、複数のスターホイール14に対応する複数のサンホイール28が配列される。複数のサンホイール28は、第2軸26に固定され、第2軸26の回転とともに回転する。フレーム29は、第1軸12と、第2軸26とを、それぞれの軸心まわりに回転可能に支持する。フレーム29は、第3軸20を、軸心まわりに回転不能に支持する。フレーム29には、複数のストッパ22にそれぞれ対応する複数の位置に、複数の電磁石24が配置される。演奏機構部100は、フレーム29が図1の筐体34に組み付けられることにより、筐体34の内部に収容される。
図3に示すように、オルゴール10は、モータ32を備える。モータ32は、第1軸12と第2軸26とを、それぞれの軸心まわりに回転駆動させる駆動部である。モータ32の出力軸のトルクは、第2軸26に伝達される。第1軸12と、第2軸26とは、それぞれの軸端が図示外の駆動ギアにより連結される。モータ32の出力軸のトルクは、第2軸26から、駆動ギアを介して第1軸12に伝達される。駆動ギアのギア比は、スターホイール14とサンホイール28とについて、モータ32の出力軸の回転転送度に対するそれぞれの回転速度の減速比が等しくなるように設定される。これにより、モータ32は、第1軸12と、第2軸26とを等しい回転速度で回転駆動させる。
図6は、第2軸エンコーダ80と、スターホイール14と、サンホイール28とを、第2軸26の軸心方向に視た図である。図3に示すように、オルゴール10の演奏機構部100は、サンホイール28と隣接する位置に、第2軸エンコーダ80を備える。第2軸エンコーダ80は、第2軸26の回転量を検出することにより、サンホイール28の回転量を検知する。図6に示すように、第2軸エンコーダ80は、回転盤82と、タイミングセンサ86とから構成される。回転盤82は、円盤状である。回転盤82は、第2軸26の軸端に固定されており、第2軸26の回転駆動により、回転される。回転盤82は、後述する複数のスリット84を備える。タイミングセンサ86は、回転盤82に対して所定の位置に設けられる。タイミングセンサ86は、回転盤82の反対側からLED等により照査される光を受光することにより、回転盤82のスリット84の通過を検出する。タイミングセンサ86は、フォトセンサなどの光学式センサである。
回転盤82の複数のスリット84は、第2軸26に挿入されるサンホイール28の複数の外周歯40の配置に対応して、周方向に所定の角度間隔で設けられる。サンホイール28の外周歯の歯数は、スリット84の数の整数倍である。本実施形態では、サンホイール28の外周歯40の歯数が20歯であり、スリット84の数が10個である。このとき、隣り合う2つの外周歯40の間の角度は18°であり、隣り合う2つのスリット84の間の角度は、36°である。すなわち、2つの外周歯40につき、1つのスリット84が配置される位置関係である。サンホイール28の外周歯40は、後述する楽曲データに従って演奏される音の最短音長に対応する回転量を第2軸エンコーダ80が検出可能な間隔で、サンホイール28の外周部に設けられる。
スターホイール14は、間欠歯車を備える。スターホイール14は、間欠歯車の歯として2つの歯を1組とするギア部38と、歯が設けられない間欠部分39とを備える。図6では、スターホイール14の間欠部分39において、実際には歯切りされていないギア部38に対応する歯車の歯を破線で示す。図6に示すように、スターホイール14の間欠歯車は、間欠部分39に歯が設けられているのであれば、サンホイール28の外周歯40の歯数と等しい。すなわち、スターホイール14は、1組のギア部38の2つの歯の間隔が、サンホイール14の外周歯40の間の角度と等しい角度を開けて設けられる。また、スターホイール14の間欠部分39には、サンホイール28の外周歯40の4つの歯が収まり、回転盤82の2つのスリット84が収まる。スターホイール14の間欠部分39の角度は、回転盤82の2つのスリット84間の角度の整数倍である。本実施形態では、スターホイール14の間欠部分39の角度は、回転盤82の2つのスリット84間の角度の2倍である。
オルゴール10が作動されるとき、第1軸12および第2軸26は、モータ32の駆動により、それぞれの軸心まわりに常時回転される。第1軸12および第2軸26は、相互に逆回りに回転される。第1軸12は、スターホイール14に設けられた爪36が、振動板16の振動弁18を下方から上方に向けて弾く方向に回転される。第2軸26は、サンホイール28の外周歯40とスターホイール14のギア部38とが噛み合った状態において、スターホイール14を回転駆動する方向に回転される。複数のサンホイール28は、第2軸26に対して相対回転が不能に設けられる。複数のサンホイール28は、オルゴール10が作動されるとき、第2軸26の回転に伴い第2軸26の軸心まわりに常時回転される。
次に、図5と、図7とを用いて演奏機構部100の動作の詳細を説明する。演奏機構部100においては、後述する楽曲データであるMIDIデータに従って、電磁石24の通電の有無が制御される。演奏機構部100のストッパ22は、ストッパ22と対応して設けられた電磁石24の通電の有無により、停止状態または非停止状態となる。電磁石24の通電の制御に応じて、ストッパ22の駆動が制御されることにより、スターホイール14の回転が制御される。図5は、電磁石24に通電がされず、ストッパ22が停止した停止状態を示している。ストッパ22と対応する電磁石24に対する通電が行われず、電磁石24が非励磁の状態である場合は、ストッパ22の板部材50が、スナップばね56により付勢される。これにより、ストッパ22は、スターホイール14へ向かう方向に回動し、スターホイール14に設けられた複数の爪36のうちの1つの爪36と係合可能な状態である停止状態となる。そして、停止状態にあるストッパ22の板部材50の先端部は、第1軸12の回転に伴ってその回転方向に回転したスターホイール14の1つの爪36と当接する。
図5に示すように、ストッパ22が停止状態であるとき、スターホイール14と第1軸12との間の接触部位における摩擦力に逆らって、スターホイール14が第1軸12とともに追従回転することが阻止される。換言すれば、第1軸12の軸心を中心とするスターホイール14と、振動弁18との位置関係が固定されたまま、そのスターホイール14における組付穴と第1軸12との接触面が軽い負荷をもって滑り、第1軸12と、スターホイール14とが相対回転される。このとき、スターホイール14のギア部38は、サンホイール28の外周歯40と噛み合わない位置とされ、サンホイール28の回転は、スターホイール14の回転に影響しない。第1軸12を中心に回転するスターホイール14が、ストッパ22により停止するとき、サンホイール28の外周歯40は、スターホイール14の間欠部分39において空転させられる。
一方、図7は、ストッパ22によるスターホイール14の停止が解除され、ストッパ22が停止状態から非停止状態へ切り替えられる場合における作動を説明する図である。図5に示す状態から、電磁石24が通電されると、通電された電磁石24が励磁状態となる。ストッパ22は、電磁石24の磁力により、板部材50がスナップばね56による付勢に逆らい、第3軸20を中心にスターホイール14から離隔する方向に回動する。ストッパ22は、板部材50による爪36の停止が解除される非停止状態となる。スターホイール14は、第1軸12との接触部位における摩擦力により第1軸12に追従回転する状態とされる。図5に示す状態から、電磁石24に通電が行われ、ストッパ22によるスターホイール14の回転の停止が解除されると、図7に示すように、板部材50はスターホイール14から離隔する。
ストッパ22が非停止状態とされ、板部材50による爪36の停止が解除されると、スターホイール14が、第1軸12に追従回転する。スターホイール14が回転し、複数の爪36のうち1つの爪36が振動板16の振動弁18に接触するとき、接触する爪36と隣接する回転方向側の爪36と対応するギア部38がサンホイール28の外周歯40と噛み合う。サンホイール28の外周歯40とスターホイール14のギア部38とが噛み合った状態において、スターホイール14は、爪36が振動板16の振動弁18を下方から上方に向けて弾く方向に回転される。そして、スターホイール14の爪36が、対応する振動弁18を弾く。これにより、振動弁18が、爪36により弾かれ、振動弁18に対応する音階の音が奏でられる。
爪36が振動弁18を弾いた後、スターホイール14は、更に第1軸12に追従回転する。一方、サンホイール28は、第2軸26に追従回転する。これにより、ギア部38とサンホイール28の外周歯40とが再び噛み合わない状態となる。ギア部38と外周歯40とが噛み合わない状態への移行過程において電磁石24の通電が停止され、電磁石24が非励磁状態となる。ストッパ22は、スナップばね56の付勢により、スターホイール14に向けて回動し、再び図5に示す状態に復帰する。
図8は、オルゴール10の電気的構成を示す概略ブロック図である。オルゴール10は、筐体34内に、図2に示す制御部60を備える。制御部60は、図8に示すように、CPU61と、フラッシュメモリ62と、RAM63とを備える。CPU61は、例えばASICなどの集積回路であってもよい。複数の電磁石24と、モータ32と、フラッシュメモリ62と、RAM63と、表示部72と、操作エンコーダ75と、第2軸エンコーダ80と、SDカードリーダ92と、電源500とが、CPU61に接続される。CPU61は、楽曲データと、入力操作部70による演奏テンポの変更指示とに従い、モータ32を回転させる回転速度と、スターホイール14の停止状態を解除するタイミングとを決定する処理を行う。フラッシュメモリ62には、CPU61により実行される後述の演奏テンポ変更プログラムと、後述する速度制御テーブルとが記憶される。
SDカードリーダ92には、SDカード(Secure Digital Card)94が挿入される。SDカード94には、SDカード本体を識別する本体認証情報が記憶されている。本体認証情報は、SDカード94が、オルゴール10により使用されることを許可したことを示す情報である。また、SDカード94には、楽曲データベース(楽曲DB)96が記憶され、オルゴール10による演奏の対象となる曲にそれぞれ対応する複数の楽曲データ(楽譜データ)が記憶される。本実施形態では、楽曲データのそれぞれには、楽曲データの提供元が、オルゴール10により再生されることを許可したことを示すデータ認証情報が、対応付けられている。また、楽曲データベース96には、SDカード94に記憶された楽曲データの一覧を示す楽曲リストが記憶される。楽曲データベース96には、楽曲リストと対応付けて、楽曲リストをオルゴール10により読み出し可能であることを示すリスト認証情報が、記憶されている。CPU61は、SDカードリーダ92により、SDカード等の記憶媒体に記録されたデータを読み取り可能である。楽曲データは、例えば、MIDI(Musical Instrument Digital Interface)形式のデータであり、予め定められた複数種類の楽器毎に、その楽器に対応する音の出力タイミング及び音階等が定められた複数のトラック(チャンネル)を含んでいる。楽曲データベース96の楽曲リストには、SDカード94に記憶された各楽曲データを示す情報と対応付けて、後述する入力操作部70により指示される演奏テンポの変更指示値が記憶される。変更指示値は、例えば、楽曲データに予め定められた基準の演奏テンポに対して変更指示がされないとき、「0」が対応付けて記憶されている。以下、楽曲データとして、MIDIデータを用いた例を説明する。
楽曲データベース96に記憶された楽曲データは、その楽曲データに対応する楽曲の演奏テンポを含む。この演奏テンポは、例えば、MIDIデータのヘッダ(ヘッダチャンク)におけるコンダクタ(Conductor)トラックに定められた値であり、例えば40〜120bpm(bit per minute)の範囲で定められる。楽曲データベース96に記憶された楽曲データは、音の発音タイミングとして、所定の音を鳴らすタイミングデータと、楽曲を演奏する基準の演奏テンポを示すテンポデータとを含む。音の発音タイミングは、例えば、MIDIデータのノート・オンイベントで定められる。楽曲データに定められた所定の音のノート・オンイベントと、次の音のノート・オンイベントとの間の音長が、例えば、時間の単位としてのティック(tick)により表される。このティックは、楽曲データのテンポ及びタイムベース(分解能)によって定められる。例えば、1ティックの時間(秒)=60/(テンポ×タイムベース)である。楽曲データに定められた楽譜情報において、4分音符に対応する基準のタイムベースを480(tick)と定めた場合、16分音符の長さが120ティックに相当する。本実施形態では、楽曲データにおいて、音の最短音長を、16分音符の音長の3分の1に相当する長さと定める。すなわち、スリット84の通過が検出された後、次のスリット84の通過が検出されるまでが40ティックである。楽曲データに定められた楽譜情報において、最短音長は40ティックに相当する。また、基準の演奏テンポは、例えば、MIDIデータのテンポ変更イベントで定められる。テンポ変更イベントにより、テンポ変更イベントが定められた演奏位置以後に演奏される音の基準の演奏テンポが定められる。タイムベースが所定値に定められているときには、演奏テンポと、複数の音のノート・オンイベントの間の音長とにより、所定の音を鳴らしてから次の音を鳴らすまでの時間が決まる。すなわち、振動板16に備えられた振動弁18が弾かれてから、次の振動弁18(同一或いは他の振動弁18)が弾かれるまでの時間が求められる。
CPU61は、タイミング決定機能として、複数のストッパ22のそれぞれが、スターホイール14の爪36の停止を解除する動作開始タイミングを判定する。換言すれば、複数のストッパ22のそれぞれについて、対応する電磁石24への通電を実行または停止するタイミングが判定される。例えば、楽曲データベース96に記憶された複数の楽曲データのうち、再生する所定の楽曲データに対応する曲の演奏において、その楽曲データに定められた音の発音タイミング及び音階に基づいて前記判定が行われる。具体的には、複数の音階にそれぞれ対応する複数の振動弁18を、楽曲データに定められた音のノート・オン・タイミングで弾くために、ストッパ22によるスターホイール14の爪36の停止を解除するタイミングが判定される。
CPU61は、第2軸エンコーダ80により検出されるスリット84の通過に基づいて、スターホイール14の回転の停止を解除するストッパ22の動作タイミングを制御する。サンホイール28の回転軸である第2軸26に設けられた第2軸エンコーダ80のスリット位置とサンホイール28の外周歯40の歯先位置との位置関係は決められている。第2軸エンコーダ80により検出されるスリット84の通過から、サンホイール28の歯先位置を特定することにより、スターホイール14が回転し始めるタイミングを決定する。すなわち、CPU61は、楽曲データに従って演奏される曲のテンポに対応して第2軸26を回転させる回転速度と、第2軸エンコーダ80により検出されるサンホイール28の回転量とに、基づいて、スターホイール14の回転の停止を解除するストッパ22の作動タイミングを制御する。
CPU61は、第2軸エンコーダ80により検出されるスリット84の通過に基づいて、スターホイール14のギア部38とサンホイール28の外周歯40とが正確に噛み合うように、スターホイール14の回転の停止を解除するストッパ22の動作開始タイミングを判定する。例えば、演奏対象となる楽曲データにおける所定の音の出力タイミングが経過した後、第2軸エンコーダ80により、少なくとも1つのスリット84の通過が検出されたことをきっかけとして、スターホイール14の回転の停止を解除するストッパ22の動作開始タイミングが判定される。好適には、楽曲データに定められた16分音符の音長の3分の1に相当する最短音長に対応する回転量が第2軸エンコーダ80により検出されたとき、ストッパ22によるスターホイール14の回転の停止を解除するタイミングが判定される。例えば、第2軸エンコーダ80により検出される、楽曲データに定められた40ティック(演奏テンポ120で演奏される場合は、約40ms)に相当する回転量に基づいて、ストッパ22によるスターホイール14の回転の停止を解除するタイミングが判定される。図8に示す例では、CPU61は、楽曲データに定められた40ティックの音長の音の演奏に際して、第2軸エンコーダ80により1つのスリット84の通過が検出されたことに基づいて、ストッパ22によるスターホイール14の回転の停止を解除する動作開始タイミングが判定される。1つのスリット84の通過とは、1つのスリット84の通過が検出された後に、次の1つのスリット84が通過することである。
CPU61は、好適には、楽曲データが演奏されるテンポに従って、その楽曲データに定められた音の音長と、第2軸エンコーダ80により検出されるサンホイール28の回転量とに、基づいて、第2軸エンコーダ80が、楽曲データに従って演奏される音の音長に対応する回転量を検出したとき、ストッパ22によるスターホイール14の回転の停止を解除する動作開始タイミングを判定する。例えば、第2軸エンコーダ80により検出される、楽曲データに定められた120ティック(演奏テンポ120で演奏される場合は、約120ms)に相当する回転量に基づいて、ストッパ22によるスターホイール14の回転の停止を解除する動作開始タイミングが判定される。図8に示す例では、楽曲データに定められた120ティックの音長の音の演奏に際して、第2軸エンコーダ80により4つのスリット84の通過が検出されたことに基づいて、ストッパ22によるスターホイール14の回転の停止を解除する動作開始タイミングが判定される。4つのスリット84の通過とは、1つのスリット84の通過が検出された後、3つのスリット84が通過することである。
楽曲データに定められた所定の音を鳴らしてから次の音を鳴らすまでの時間は、演奏テンポにより異なる。ある音長に対応する所定の音を鳴らしてから次の音を鳴らすまでの時間は、演奏テンポが速いほど短く、演奏テンポが遅いほど長い。タイムベースと、楽曲データに記憶される基準の演奏テンポと、入力操作部70による演奏テンポの変更指示とに応じて、1ティックあたりの時間が決定される。決定された時間に応じて、第2軸エンコーダ80により所定のスリット84の通過が検出された後、次のスリット84の通過が検出されるまでの時間で、目的の演奏テンポに応じた時間となるようサンホイール28が回転駆動される。
CPU61は、データ読み書き機能と、モータ回転速度制御機能と、タイミング決定機能と、停止解除制御機能とを備える。CPU61は、データ読み書き機能として、オルゴール10による楽曲の演奏に際して、演奏の対象となる楽曲データを楽曲データベース96から読み出す。例えば、演奏の対象となる楽曲データに対応するMIDIデータを楽曲データベース96から読み出し、制御部60に備えられたRAM63等に展開する。オルゴール10による演奏の進行に伴い、MIDIデータにおける演奏対象となる部分を楽曲データベース96から随時読み出すものであってもよい。また、CPU61は、オルゴール10のSDカードリーダ92に、SDカード94が装着されたとき、SDカード94に記憶された本体認証情報と、楽曲データベース96のリスト認証情報とにより、SDカード94および楽曲リストの認証を行う。SDカード94が装着されたとき、本体認証情報と、リスト認証情報とのいずれか一方の認証情報により、認証が行われてもよい。CPU61により、SDカード94および楽曲リストの認証が行われると、楽曲データベース96から楽曲リストを読み出し、RAM63に展開される。CPU61は、その楽曲リストに従って、SDカード94の楽曲データベース96に楽曲データが記憶された複数の楽曲を一覧形式で表示部72に表示させる。CPU61により楽曲リストが読み出され、表示部72に複数の楽曲が一覧に表示されたとき、楽曲選択操作部71により、再生させる楽曲が選択される。
CPU61は、モータ回速度制御機能として、モータ32の回転速度を制御する。すなわち、モータ32により駆動される第1軸12及び第2軸26の回転速度を制御する。具体的には、楽曲データベース96に記憶された所定の楽曲データに対応する演奏に際して、その楽曲データに定められた基準の演奏テンポと、テンポの変更指示とに基づく速度で第1軸12及び第2軸26が回転するようにモータ32の回転速度が制御される。モータ32は、例えば、DCモータである。CPU61が、DCモータをPWM制御することにより、モータ32の回転速度を制御する。CPU61は、演奏テンポが速いテンポに変更されると、モータ32の回転速度を速くし、演奏テンポが遅いテンポに変更されると、モータ32の回転速度を遅くする。CPU61は、演奏対象となる楽曲データにおける演奏テンポが速いほど、モータ32の回転速度が速くなるように制御する。換言すれば、第1軸12及び第2軸26は、楽曲データが演奏される演奏テンポに基づく速度で回転する。モータ32の回転速度は、演奏テンポごとに、図9(A)に示す速度制御テーブルに定められて記憶されている。CPU61は、速度制御テーブルから、読み出されたMIDIデータに定められた基準の演奏テンポと、テンポの変更指示とに基づいて定められた演奏テンポに応じてモータ32の回転速度を読み出し、その回転速度となるようにモータ32の駆動を制御する。また、CPU61は、予め定められた計算式等に従って、読み出されたMIDIデータに定められた基準の演奏テンポと、テンポの変更指示と基づいて定められた演奏テンポに応じて、モータ32の回転速度を算出するものであってもよい。
CPU61は、楽曲データに定められた基準の演奏テンポが変更された場合、および楽曲データに定められた基準の演奏テンポに基づいて再生するテンポを変更する変更指示がされた場合、そのテンポの変更に応じてモータ32の回転速度が変更される。例えば、MIDIデータに基づく演奏において基準の演奏テンポを変更するテンポ変更イベントが読み出され、その実行タイミングとなった場合、そのテンポ変更イベントにおける基準の演奏テンポの変更に応じてモータ32の回転速度が変更される。また、基準の演奏テンポが変更されない場合において、基準の演奏テンポに基づいて再生するテンポを変更する変更指示が、入力操作部70により行われたことを、後述する操作エンコーダ75が検知し、CPU61が、その検知信号を受信したとき、テンポを変更する変更指示に応じてモータの回転速度が変更される。すなわち、基準の演奏テンポの変更、および操作入力部70による変更指示がされた場合、それらのテンポ変更に応じてモータ32により駆動される第1軸12及び第2軸26の回転速度が変更される。
オルゴール10は、演奏機構部100の演奏テンポを変更する変更指示を行う入力操作部70を備えている。入力操作部70は、時計回りと、反時計回りとに回転する操作が可能である。入力操作部70が時計回りへ回転されることで、演奏テンポを速くする変更指示がされる。入力操作部70が反時計回りへ回転されることで、演奏テンポを遅くする変更指示がされる。入力操作部70は、時計回りおよび反時計回りに、回転角度範囲に制限なく回転が可能な構成である。入力操作部70は、演奏機構部100の演奏テンポを、MIDIデータに定められた基準テンポから、所定の間隔で定めた複数段階に遅くする、または速くする変更指示の入力操作を行えるようになっている。本実施形態では、演奏機構部100により演奏される演奏テンポは、MIDIデータと対応付けて定められている基準の演奏テンポを変更指示値「0」として、遅くする方向に20段階に変更可能とする構成である。すなわち、変更指示値の下限は「−(マイナス)20」である。演奏機構部100により演奏される演奏テンポは、MIDIデータと対応付けて定められている演奏テンポを変更指示値「0」として、速くする方向に10段階に変更可能とする構成である。すなわち、変更指示値の上限は「+(プラス)10」である。段階の数を制限せずに演奏テンポを変更可能とするものであってもよい。MIDIデータに定められた基準の演奏テンポが一定の場合においても、入力操作部70により演奏テンポを変更する変更指示が行われた場合、演奏機構部100の演奏テンポが変更される。CPU61は、入力操作部70により演奏テンポを変更する変更指示が行われた場合、その演奏テンポの変更指示値に応じてモータ32の回転速度を変更する。
CPU61は、フラッシュメモリ62に記憶された図9(A)に示す速度制御テーブルに従って、モータ32の回転速度を変更する。図9(A)に示す速度制御テーブルでは、オルゴール10の演奏可能な範囲として設定された演奏テンポ60から演奏テンポ120までに対応するモータ32の回転速度が、1テンポごとに対応付けて記憶されている。各演奏テンポに対応するモータ32の回転速度は、各演奏テンポで演奏されるときの4分音符の演奏時間に応じて定められる。具体的には、図9(A)に示す速度制御テーブルでは、モータ32の回転速度が、第2軸エンコーダ80が検出するスリット84の通過間隔が、最小分解能である4分音符の3分の1を演奏する演奏時間となる速度に定められている。速度制御テーブルに定められるモータ32の回転速度は、モータ32と第2軸26との間に介在された駆動ギアの減速比と、第2軸26に設けられた回転盤82のスリット84が設けられた間隔とに基づいて決定される。
入力操作部70と接続された操作エンコーダ75が、入力操作部70が回転されたことを検知する。この回転の検知により、入力操作部70により変更指示がされたことが検出される。操作エンコーダ75には、入力操作部70が回転されたことを検知するために、例えばインクリメンタル形のロータリーエンコーダが用いられる。操作エンコーダ75は、操作されることにより入力操作部70が回転されることで、図10に示すようにA相とB相との2つのパルスを出力する。操作エンコーダ75により出力されたパルス信号は、CPU61に送られる。CPU61は、操作エンコーダ75により出力されたパルス数から、入力操作部70が回転された回転量を判断する。CPU61は、操作エンコーダ75により出力されたA相とB相との2つのパルスの出力パターンから、入力操作部70が回転された回転方向を判断する。CPU61は、入力操作部70が回転された回転量と、回転方向とに基づいて、MIDIデータの基準の演奏テンポに対して指示された変更指示値を判断し、演奏テンポを決定する。入力操作部70が回転されると、図10のA相に示すように、方形波信号が入力される。入力操作部70の回転が連続して操作されると、方形波信号が連続して入力される。入力操作部70が操作されたとき、CPU61は、操作エンコーダ75からのA相の方形波信号が高レベル状態であるときに、B相の方形波信号が、図10(A)に示すように立ち上がり状態となっている場合、入力操作部70は時計回りに操作されたと判断する。CPU61は、操作エンコーダ75からのA相の方形波信号が高レベル状態であるときに、B相の方形波信号が、図10(B)に示すように立ち下がり状態である場合、入力操作部70は反時計回りに操作されたと判断する。CPU61は、入力操作部70が回転された回転方向から、MIDIデータに従って再生される演奏テンポを、加速させるか、または減速させるかを決定する。
入力操作部70は、所定角度の回転量だけ操作される度に、操作エンコーダ75は、1つの方形波分のA相およびB相のパルス信号を出力する。CPU61は、入力操作部70が連続して回転された角度の回転量に応じた方形波の数を計数する。そして、CPU61は、計数された方形波の数に対応するMIDIデータの演奏テンポの変更比率を算出する。図9(B)は、MIDIデータに定められた基準の演奏テンポを変更指示値「0」として、入力操作部70が操作される回転量に応じて演奏テンポの変更比率が定められた値を示すテンポ変更比率テーブルを示す。本実施形態では、図9(B)に示すように、MIDIデータに定められた基準の演奏テンポに対して、入力操作部70が操作される回転量と対応する1つの方形波ごとに1パーセント(0.01倍)の変更比率で、演奏テンポが変更されるように設定されている。CPU61は、入力操作部70の操作された回転量に応じて算出される演奏テンポの変更比率に従って、MIDIデータの曲が再生される演奏テンポの変更量を決定する。CPU61は、決定されたMIDIデータに従って再生される演奏テンポの変更量と、加速または減速とに応じて、MIDIデータに従って再生される変更テンポを決定する。
[演奏テンポ変更処理]
次に、図11、および図12を用いて、本実施形態のオルゴール10により実行される演奏テンポ変更処理を説明する。図11は、オルゴール10のCPU61により実行される演奏テンポ変更処理の処理手順を説明するフローチャートである。図12は、演奏テンポ変更処理のサブルーチンである操作量反映処理の処理手順を示すフローチャートである。演奏テンポ変更処理は、図示しない電源スイッチによりオルゴール10の電源500がオンにされ、CPU61により、フラッシュメモリ62に記憶される演奏テンポ変更プログラムが実行されることにより、図11に示すステップS601〜ステップS642の処理が実行される。オルゴール10のSDカードリーダ92に、SDカード94が装着されたとき、SDカード94に記憶された本体認証情報と、楽曲データベース96のリスト認証情報とにより、SDカード94および楽曲リストの認証が行われ、表示部72に、楽曲が一覧形式で表示されると、ステップS601の処理が実行される。
ステップS601では、SDカード94に記憶された複数の楽曲データから、再生する楽曲が楽曲選択操作部71により選択されたか否かが判断される。再生する楽曲が選択されたと判断されると(ステップS601:YES)、ステップS602の処理が実行される。再生する楽曲が選択されたと判断されないとき(ステップS601:NO)、ステップS601の処理が繰り返し実行される。
ステップS602では、ステップS601において選択された楽曲について、楽曲データと、楽曲データと対応付けられた変更指示値とが読み出される。読み出された変更指示値は、表示部72に表示される。ステップS602が実行されると、ステップS610の処理が実行される。
ステップS610では、入力操作部70による演奏テンポの変更指示が行われたか否かが判断される。入力操作部70の変更指示が行われると(ステップS610:YES)、ステップS620の処理が実行される。入力操作部70の変更指示が行われないと(ステップS610:NO)、ステップS612の処理が実行される。
ステップS610において、入力操作部70の変更指示が行われないとき(ステップS610:NO)、ステップS612において、楽曲の再生指示がされたか否かが判断される。ステップS612において判断される楽曲は、ステップS601の処理で楽曲選択操作部71により選択された楽曲である。楽曲の再生指示がされたと判断されると(ステップS612:YES)、ステップS614の処理が実行される。楽曲の再生指示がされたと判断されないと(ステップS612:NO)、ステップS610の処理が繰り返し実行される。
ステップS614では、楽曲データに対応付けられた基準の演奏テンポと、楽曲データに対応付けられた変更指示値とが、設定値として読み出される。ステップS610において入力操作部70により演奏テンポの変更指示がされたと判断されず、ステップS612において楽曲の再生指示がされたとき、ステップS614では、SDカード94の楽曲データが展開されたRAM63から、楽曲データに対応付けられた基準の演奏テンポと、楽曲データに対応付けられた変更指示値とが読み出される。
ステップS616では、演奏再生指令が実行される。ステップS616の演奏再生指令では、ステップS601において選択されたと判断された楽曲の楽曲データに対応付けられた基準の演奏テンポに、楽曲リストにおいて楽曲データと対応付けられた変更指示値に応じた比率を積算することにより、楽曲データを演奏する演奏テンポが決定される。楽曲リストにおいて楽曲データと対応付けられた変更指示値に応じた比率は、その変更指示値を「設定値」として図9(B)に示すテンポ変更比率テーブルに基づいて決定される。ステップS616が行われるとき、CPU61は、SDカード94に記憶された本体認証情報と、楽曲データのデータ認証情報とにより、SDカード94および楽曲データの認証を行う。CPU61により、SDカード94および楽曲データの認証が行われると、変更指示値を「設定値」として、テンポ変更比率テーブルに基づいて決定された演奏テンポで、楽曲データの再生が指令される。なお、ステップS616では、少なくとも楽曲データのデータ認証情報により、認証が行われればよい。なお、認証が行われないときは、エラーメセージなどを表示部72に表示し、ステップS601に戻る処理を実行してもよい。
ステップS618では、モータ制御指令が実行される。ステップS618のモータ制御指令では、図9(A)に示す速度制御テーブルに従って、ステップS616において決定された演奏テンポで演奏するためのモータ32の回転速度が決定される。ステップS618では、モータ32に、決定された回転速度で回転させるように指令される。ステップS618が実行されると、ステップS640が実行される。
ステップS610において、入力操作部70の変更指示が行われると(ステップS610:YES)、ステップS620の処理が実行される。ステップS620では、入力操作部70が操作される各回転方向における回転量が蓄積される。具体的には、時計回り方向の回転量が蓄積され、また、反時回り方向の回転量が蓄積される。すなわち、ステップS610において、入力操作部70の操作が行われてから、所定時間以上、入力操作部70の操作が行われなくなるまでに、入力操作部70が時計回りに回転された回転量と、反時計回りに回転された回転量とが算出される。所定時間以上、入力操作部70の操作が行われなくなったとき、ステップS620の処理が終了し、ステップS622の処理が実行される。
ステップS622では、図12に示すステップS6222〜ステップS6244の操作量反映処理が実行される。操作量反映処理では、まず、ステップ6222において、入力操作部70の操作が行われたとき、変更指示値が変更される操作がされたか否かが判断される。変更指示値が変更される操作がされたか否かは、ステップS620の処理が終了されたときに、ステップS610において入力操作部70による操作が行われたときから、入力操作部70の設定値が変化しているか否かにより、判断される。具体的には、ステップS6222では、ステップS620において蓄積された入力操作部70の操作量が時計回りに回転された回転量と、反時計回りに回転された回転量との差分として決定されることにより、入力操作部70の設定値が変化しているか否かが判断される。入力操作部70が時計回りに回転された回転量と、反時計回りに回転された回転量とが同量であれば、入力操作部70の設定値が変化していないと判断される。入力操作部70が時計回りに回転された回転量と、反時計回りに回転された回転量とのうち、いずれかの回転量が多ければ、入力操作部70の設定値が変化していると判断される。入力操作部70の設定値が変化していると判断され、変更指示値が変更される操作がされたと判断されるとき(ステップS6222:YES)、ステップS6224の処理が実行される。入力操作部70の設定値が変化していると判断されず、変更指示値が変更される操作がされたと判断されないとき(ステップS6222:NO)、ステップS6244の処理が実行される。
ステップS6224では、現在設定されている変更指示値が、上限であるか否かが判断される。「現在設定されている変更指示値」とは、RAM63において、楽曲データに対応付けられて記憶されている変更指示値を指す。現在の変更指示値が、上限であると判断されると(ステップS6224:YES)、ステップS6226の処理が実行される。現在の変更指示値が、上限であると判断されないと(ステップS6224:NO)、ステップS6228の処理が実行される。ステップS6224では、現在設定されている変更指示値が、上限である「+10」であると判断されるとき、ステップS6226の処理が実行される。
ステップS6226では、表示部72に、現在設定されている変更指示値が上限であることを示す通知が表示される。これにより、入力操作部70を操作するユーザは、表示部72を見て、現在設定されている変更指示値より加速する変更指示ができないことを知ることができる。
ステップS6228では、現在設定されている変更指示値が、下限であるか否かが判断される。現在の変更指示値が、下限であると判断されると(ステップS6228:YES)、ステップS6230の処理が実行される。現在の変更指示値が、下限であると判断されないと(ステップS6228:NO)、ステップS6232の処理が実行される。ステップS6228では、現在設定されている変更指示値が、下限である「−20」であると判断されるとき、ステップS6230の処理が実行される。
ステップS6230では、表示部72に、現在設定されている変更指示値が下限であることを示す通知が表示される。これにより、入力操作部70を操作するユーザは、表示部72を見て、現在設定されている変更指示値より減速する変更指示ができないことを知ることができる。
ステップS6232では、ステップS6222において、変更指示値が変更される操作がされたと判断されたとき(ステップS6222:YES)、RAM63の楽曲データと対応付けて記憶された変更設定値が、入力操作部70が操作されてステップS6222において変更される操作がされたと判断されたときの変更指示値に置き換えられて、RAM63に記憶される。
ステップS6234では、ステップS6222において、変更指示値が変更される操作がされたと判断され、ステップS6232において、RAM63に更新記憶された変更指示値が、表示部72に表示される。
ステップS6236では、更新された変更指示値が、上限であるか否かが判断される。更新された変更指示値が、上限であると判断されると(ステップS6236:YES)、ステップS6238の処理が実行される。更新された変更指示値が、上限であると判断されないと(ステップS6236:NO)、ステップS6240の処理が実行される。ステップS6236では、更新された変更指示値が、上限である「+10」であると判断されるとき、ステップS6238の処理が実行される。
ステップS6238では、表示部72に、更新された変更指示値が上限であることを示す通知が表示される。これにより、入力操作部70を操作するユーザは、表示部72を見て、入力操作部70により変更指示がされ、更新された変更指示値より加速する変更指示ができないことを知ることができる。
ステップS6240では、更新された変更指示値が、下限であるか否かが判断される。更新された変更指示値が、下限であると判断されると(ステップS6240:YES)、ステップS6242の処理が実行される。更新された変更指示値が、下限であると判断されないと(ステップS6240:NO)、ステップS6244の処理が実行される。ステップS6240では、更新された変更指示値が、下限である「−20」であると判断されるとき、ステップS6242の処理が実行される。
ステップS6242では、表示部72に、更新された変更指示値が下限であることを示す通知が表示される。これにより、入力操作部70を操作するユーザは、表示部72を見て、入力操作部70により変更指示がされ、更新された変更指示値より減速する変更指示ができないことを知ることができる。
ステップS6244では、RAM63に記憶されている変更指示値が、楽曲データに対応付けられた基準の演奏テンポに対して演奏テンポを変更する変更指示値と決定される。ステップS6244の処理が実行されると、ステップS624の処理が実行される。
ステップS624では、楽曲が再生中であるか否かが判断される。楽曲が再生中であると判断されると(ステップS624:YES)、ステップS626の処理が実行される。楽曲が再生中であると判断されないと(ステップS624:NO)、ステップS632の処理が実行される。
ステップS626では、ステップS601において選択された楽曲の楽曲データに対応付けられた基準の演奏テンポと、ステップS6244において決定された変更指示値とが、設定値として設定される。
ステップS628では、ステップS616と同様の演奏再生指令が実行される。具体的には、ステップS601において選択された楽曲の楽曲データに対応付けられた基準の演奏テンポに、楽曲データと対応付けられた変更設定値に応じた比率を積算することにより、楽曲データを演奏する演奏テンポが決定される。決定された演奏テンポで、楽曲データの再生が指令される。
ステップS630では、ステップS618と同様のモータ制御指令が実行される。ステップS630では、図9(A)に示す速度制御テーブルに従って、ステップS628において決定された演奏テンポで演奏するためのモータ32の回転速度が決定される。ステップS630では、モータ32に、決定された回転速度で回転させるように指令される。ステップS630が実行されると、ステップS632が実行される。
ステップS632では、ステップS6244において決定された設定値が、RAM63から読み出され、SDカード94の楽曲リストに、楽曲データと対応付けて、更新記憶される。具体的には、ステップS601において選択された楽曲について、SDカード94に記憶された楽曲データに対応付けられた変更指示値が、RAM63から読み出された設定値に変更される。ステップS632の処理が実行されると、ステップS640の処理が実行される。
ステップS640では、楽曲の再生が終了されたか否かが判断される。楽曲の再生が終了されたと判断されると(ステップS640:YES)、ステップS642の処理が実行される。楽曲の再生が終了されたと判断されないと(ステップS640:NO)、ステップS610の処理が実行される。
ステップS642では、図示しない電源スイッチによりオルゴール10の電源500をオフにする指示がされたか否かが判断される。オルゴール10の電源500をオフにする指示がされたと判断されると(ステップS642:YES)、演奏テンポ変更処理が終了される。オルゴール10の電源500をオフにする指示がされたと判断されないと(ステップS642:NO)、ステップS601の処理が繰り返し実行される。
本実施形態では、SDカード94が装着されたとき、SDカード94に記憶された本体認証情報と、リスト認証情報とにより、SDカード94の認証が行われていたが、これに限らない。例えば、本体認証情報と、リスト認証情報と、データ認証情報との少なくともいずれか一つの認証情報により、SDカード94の認証が行われてもよい。
本実施形態では、着脱可能なSDカード94が楽曲データベースとして使用されたが、HDDなどの記録媒体がオルゴール10に内蔵される構成でも、インターネットなどの通信回線を通して取得したデータを一時記憶する記録媒体がオルゴール10に備えられる構成でもよい。
[本発明と本実施形態との対応]
本実施形態のMIDIデータが、本発明の楽曲データの一例である。本実施形態の入力操作部70が、本発明の操作部の一例である。本実施形態の入力操作部70が回転される回転量が、本発明の操作量の一例である。本実施形態の入力操作部70が回転される回転方向が、本発明の操作方向の一例である。本実施形態の入力操作部70が回転される回転量および回転方向が、本発明の変更操作値の一例である。また、本実施形態の楽曲選択操作部71が、本発明の指定手段の一例である。本実施形態の楽曲データに対応付けられた基準の演奏テンポが、本発明の基準テンポの一例である。本実施形態の楽曲データベース96が、本発明の記憶部の一例である。本実施形態のSDカード94が、本発明の着脱可能な記録媒体の一例である。
また、本実施形態のCPU61が、本発明の読出手段と、設定手段と、変更量決定手段と、テンポ決定手段と、記憶制御手段との一例である。本実施形態のCPU61と、演奏機構部100とが、本発明の再生手段の一例である。本実施形態のCPU61により実行されるステップS614の処理が、本発明の読出ステップの一例である。本実施形態のCPU61により実行されるステップS6232の処理が、本発明の設定ステップの一例である。本実施形態のCPU61により実行されるステップS620の処理が、本発明の取得ステップの一例である。本実施形態のCPU61により実行されるステップS622の処理が、本発明の変更量決定ステップの一例である。本実施形態のCPU61により実行されるステップS626の処理が、本発明のテンポ決定ステップの一例である。本実施形態のCPU61により実行されるステップS632の処理が、本発明の記憶制御ステップの一例である。