電音の工場ブログ

当ブログは…

自作エフェクターシンセサイザ製作のネタや開発覚え書きなど、筆者の電音活動を記録しています。お探しの記事が見つからない方は、検索カテゴリ一覧をご利用ください。

スパマーが来訪すると、ときどきコメントをはてなユーザのみに絞ったり開放したりすることがあります。

2005-02-11MIDI FX SW'er まとめ

現在のラック

[完了] MIDI FX SW'er

|  [完了] MIDI FX SW'er - 電音の工場ブログ を含むブックマーク はてなブックマーク -  [完了] MIDI FX SW'er - 電音の工場ブログ  [完了] MIDI FX SW'er - 電音の工場ブログ のブックマークコメント

完成の喜びから語ってみるシリーズ。

昨年の8月に着手した MIDI FX SW が約5ヶ月の作業を経て、このたび完成した。


目次

背景

2000年頃にワンチップマイコンでのエフェクトループプログラマを思い立ち、製作(id:Chuck:20000107#p1)。このときの仕様は3ループを3プログラム記憶できるものであった(マニュアル選択も1系統、3-3-1と呼ぶ)。筆者の使っている BOSS のマルチエフェクタ GT-3 の外部ディストーションループに挿入して歪物の切り替えに使っていた。

この手の切り替え器の自作記事は意外と無かったので、WEBサイトにまとめて公開し、コア部品のワンチップマイコンを希望者に頒布した。お渡しした方々はみな作られたのではないかと思う。海外からも引き合いを貰った。しばらくしてだいたい引き合いが無くなったころに頒布を終了し、この製作で培ったノウハウを基にもっと大掛かりなものを作りたくなっていた。

だが、ちょっと考えては他のプロジェクトに浮気することを繰り返し、3年ほど放置していた。

しかし常に「いつかやろう」と思っていたのは事実。2004年7月のアナログシンセ ミニオフ前後にプログラムスイッチに使いたくなるようなプロフェット調のLED内蔵タクトスイッチを見つけ、意を決して購入。「部品から始まるプロジェクト」を体現することとなった。

その仕様

まず 3-3-1 で採用していた足踏み式の形状を止めた。8つのスイッチをそれなりに頑強で美しくまとめ上げることが難しいと感じたためだ。制御にはMIDIを使うのはどうだろうか。そもそも GT-3 の loop send-return に入れることが目的だったわけで、GT-3 をマスターペダルにして、そのMIDI情報で loop を切り替えればいいだろう。

箱はEIAラックケースに組むことにした。2004年4月に組み上げたアナログ・マルチエフェクタと同じ面構えにしようと思ったからだ。アナログ・マルチは制御信号さえ送れば ON/OFF できるように仕込んである。

アナログ・マルチの制御には信号のルーティングは要らない。8-loop の ON/OFF 信号さえあれば良い。そうするとモジュール・システムエフェクタの立場は? 多々あるコンパクトエフェクタの立場は? これをクリアすべく、ワンチップマイコンを二つ載せ、8-loopの制御を2ポート用意することにした。19インチサイズのラックにもいい感じでスイッチが並ぶ。信号のルーティングには別箱を用意することにして今回のエフェクトループプログラマはプログラムとその呼び出しに特化する仕様とした。

まさにこれは、「エフェクター自作&操作術」に載っていた高中正義のあのシステムではないか。

なにができる

若干冗長になるが、なにができるかまとめておこうと思う。

このMIDI FX SW は、

  • 16ループをON/OFFするプログラムを512個覚えることができる
  • 8ループずつ PORT0/PORT1 と結線はグループ化されている
  • 覚えさせたプログラムは本機のロータリエンコーダで呼び出すことができる
  • 覚えさせたプログラムはMIDI CC#0/CC#32/PC を用いて呼び出すことができる
  • 対応MIDIペダルとして、Generic MIDI, BOSS GT-3/5/6/8 が使える(はず)
  • この機械には信号のルーティング部は入っていない
  • 以前作ったアナログ・マルチ・エフェクタは直結で制御可能 (ギャラリ)

といった特徴を持つ。

最終的な仕様はこちら id:Chuck:20050127#p1

この後は

今後のこのプロジェクトの展開としては、信号ルーティング用のリレーボックス作る

メカニカルリレーだと楽だけど、アナログスイッチを使う場合はどうなんだろう。しっかりした電源を入れるべきなのだろうか、スイッチング電源だとやはり「飛ぶ」のだろうか。

まぁ、メカニカルリレーにしておくかな。

作るときは「頑丈」をテーマにしようと思う。

年表

もっと知りたい

もっと知りたい、と思った方は この記事のコメント欄か本家ページからリンクされている掲示板にて、ご質問ください。

上から MIDI FX SW'er、アナログマルチエフェクタ、モジュールエフェクタ

追記

本家サイトにページを設け、回路図を置いた。

ChuckのMIDI FX SW'er

mochimochi2008/12/12 03:47はじめまして!突然のコメント失礼致します。
この自作システムを拝見した時、とてつもない衝撃を受けました。
自分もCAJ、CAE社の4×4やRS-10等のループシステム&FSWを一度
作ってみたいと常々感じてはいるのですが、この様な知識が全く
と言って良い程ありません。
勉強をするにもどの参考書を買っていいのやら…

くだらない質問になってしまいますが、是非オススメの参考書など
有りましたら教えて下さい。
やっぱりド素人にはかなり難しい事なんでしょうか?

不適切なコメントでしたら申し訳ありませんでした。

ChuckChuck2008/12/12 09:42ご興味を惹いたようで記事にした甲斐がありました。自分にとって使いやすいループ/スイッチングシステムを手がけてみたいというのはよくわかります。
実現するには「デジタル回路」を理解しておくのが良いと思いますが、最近では昔のようにデジタルICを並べるよりも「ワンチップマイコン」(省略してマイコン)に機能を集約してソフトウェア開発をすることで実現するやり方がより良いと考えます。
ちょうどマイコンに取り組もうとするときに役に立つかもしれない記事を書いたことがあるので参考になれば幸いです http://emusic.g.hatena.ne.jp/Chuck/20071018/p1
プログラマブルスイッチャは、ドンピシャの参考書というのはないと思います。でもマイコンの比較的入門に近い部分のテクニックで実現することができるものですので、やりたいことをマイコンのプログラムに置き換えていく作業になれることで作れるようになると思います。
実はこのシステムのマイコン部分を作り替えようかと思っており、その過程をブログ記事にするのもいいかもしれないとも考えています。

mochimochi2008/12/13 19:19ご返答ありがとうございます!
記事の方、参考にさせて頂きます!!
今後ともブログ等もマメにチェックさせて頂きますね!

またくだらない質問等してしまう事があるかもしれませんが
宜しくお願い致します。

2005-02-07

今度こそ できたー

|  今度こそ できたー - 電音の工場ブログ を含むブックマーク はてなブックマーク -  今度こそ できたー - 電音の工場ブログ  今度こそ できたー - 電音の工場ブログ のブックマークコメント

id:Chuck:20050206#p1で発覚した仕様の勘違い*1の対処。

PORT0側のLOOP 出力のオープンコレクタにプルアップした(抵抗内蔵ディジタル)トランジスタでオープンコレクタを接続して論理反転することにし、それを8回路並べたものを秋月C基板に実装して、箱入れ。土地があってよかったが、いまさら底板の穴あけ加工をするのも苦痛*2だったので、既にあるスタッドや100円ショップのスポンジ両面テープ*3を駆使して楽をとった。8-loop 出力に 10P のコネクタを奢っていたので、余った1ピン*4に+5Vを通して、見た目も綺麗に収まった。ホッ。

現状 PORT0 は アナログ・マルチ・エフェクタ用の論理(Loop ON で回路オープン)になっている。中のコネクタを差し替えれば Loop ON で回路クローズにできる。

FXSW+multi-FX

なにができる

そのうちにブログ上の記事をまとめて目次から一覧できるようにする予定だが、初めて飛んできた人のためになにができるか書いておこうと思う。

このMIDI FX SW は、

  • 16ループをON/OFFするプログラムを512個覚えることができる
  • 8ループずつ PORT0/PORT1 と結線はグループ化されている
  • 覚えさせたプログラムは本機のロータリエンコーダで呼び出すことができる
  • 覚えさせたプログラムはMIDI CC#0/CC#32/PC を用いて呼び出すことができる
  • 対応MIDIペダルとして、Generic MIDI, BOSS GT-3/5/6/8 が使える(はず)
  • この機械には信号のルーティング部は入っていない
  • 以前作ったアナログ・マルチ・エフェクタは直結で制御可能 (ギャラリ)

といった特徴を持つ。あくまでも、

  • イメージは昔々の高中正義 虹伝説ツアーの頃の装備*5

という感じである。

高中正義の機材やら昔のロクfの製作記事に感化されて自作をしすぎるとこうなってしまう、という顕れであろうか。それにしてもワンチップマイコンとその開発環境が安くなったことの寄与が大きい。5年前のコレに始まり、ようやく信号ルーティング関連も大団円を迎える(か?)。

機能などについてご質問があったら、コメント欄にお寄せください。

この後は

今後のこのプロジェクトの展開としては、「信号ルーティング用のリレーボックス作る」。

メカニカルリレーだと楽だけど、アナログスイッチを使う場合はどうなんだろう。しっかりした電源を入れるべきなのだろうか、スイッチング電源だとやはり「飛ぶ」のだろうか。

まぁ、メカニカルリレーにしておくかな。

作るときは「頑丈」をテーマにしようと思う。

以下 余談

ラックにマウントだ

さて、ラックにマウントだ、と思ったらスペースがない。中の小物を出さないといけないようだ。これから工作しようと溜め込んでいるCMU-800やらスプリングリバーブユニットやらを家族の目*6から隠す部品庫になっているのだ。このあとリレーボックスもくるというのに、どうしたものだろう。

さてこれで

さてこれで一段落つけて、シンセつくりに戻れるかな?

ちなみに、これから作成するシンセは、縦5Uサイズのモジュールにする予定。またSKBのラックを買わなくては。今度は10Uにする。両面で20U分のシンセモジュールがマウントできるでしょう?


追記

まとめページが完成しました。→ g:emusic:id:Chuck:20050211

*1:ひとりでやっておいて仕様を勘違いするのだから世話ない。

*2:全基板取り外しになるので。

*3:これがまた強力。

*4:もう1ピンはGND。

*5:あの時もアナログ・コンパクトエフェクタをノックダウンした箱とプログラム箱、リレー箱から構成されていましたね。

*6:ちなみに本機が完成して感慨に耽る一方で、家事の手伝いが少ないと叱られてひたすら謝る筆者の姿があった。

r0r0r0r02005/02/07 17:19完成おめでとうございますー。
身軽になったChuckさんの工作力に期待してます。
もちろん今年中に10Uのラックもうひとつ買うんですよね?ww

ChuckChuck2005/02/07 22:49ありがとうございます。ラック買いますよー。お小遣いがたまれば今年度中に。12Uにしちゃおうかな。しかしSKBは高い。最初に Classic PROにしておけばよかった…

analoganalog2005/02/11 13:48おめでとうございます。すごいです!
どんなものでも最後まで仕上げるって大変ですよね。途中でテンション下がったりもするし(仕事が忙しくなったりとか)。とにかくお疲れさまでした。

ChuckChuck2005/02/12 13:37ありがとうございます!
どんなものであれ完成するたびに感動している私です。大きいものは小さいものの積み重ねですから、小さい簡単なものもバカにはできません。ただ大きいものは総じて時間が掛かるので、analogさんがおっしゃるように途中で割り込みが入ったりテンションが下がったりするのを維持するのが大変ですね。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050207

2005-02-06

できたー、と思ったら

|  できたー、と思ったら - 電音の工場ブログ を含むブックマーク はてなブックマーク -  できたー、と思ったら - 電音の工場ブログ  できたー、と思ったら - 電音の工場ブログ のブックマークコメント

ブザーとLEDがふたつのCPUから制御できるようにロジックを追加。74HC00 って久しぶりに買ったなぁ。そして電源も箱入れし、完成。

そうそう、アナログ・マルチとの接続もチェックしなきゃね、と繋いでみたらバグ発覚。_| ̄|○

MIDI FX SW は loop ON で GNDに落ちる*1仕様なのだが、アナログ・マルチはオープンでエフェクトON、GNDに落としてOFF という仕様*2にしていたのだ。

どこかで論理を反転しなくては。ていうか MIDI FX SW に 出力制御信号の位相をパッチできるように機能追加する必要が出てきた。デジトラ8個かNOTゲートか。どこに押し込むか…

*1:オープンコレクタ。

*2:FX SWや外部SWが無い状態で全エフェクトがONになるように。

r0r0r0r02005/02/06 11:07かなり大掛かりな工事になりそうですね・・・

ChuckChuck2005/02/07 08:01なんとかなりましたー。

geniegenie2005/02/07 09:17DIPの横に並ぶとナローSSOPって小さいですねー。ところで、SASのI/Fスペックって固まっているんでしょうか?入出力電圧の範囲とか・・・

ChuckChuck2005/02/07 11:22いえ、確定はしていません。新年会マター?
UIとDACは先行(潜行)して使えるように準備をしておこうという意図です。今回のDAC LTC2600 は出力レンジが 5Vまでですので、そこもイッシューかと思います。

geniegenie2005/02/07 11:52新年会ですか?もう春分を過ぎたので忘れましょう。笑

analoganalog2005/02/07 22:41うわぁ~、すごい。私は変換基板は作りましたが、
肝心の2600を、まだ購入してません…、アイテムラボのやつって
パスコンパットもついてるのが考えられてますね、サンハヤトの
比べ物にならないくらい安いし

ChuckChuck2005/02/08 12:25変換基板ってなかなか高価ななか、アイテムラボのはありがたいです。
チップデュアルトランジスタ+チップTEMPCO がマウントできるような変換基板が欲しいですが、サンハヤトのシール基板か自分で作るかといった感じになりそうです。

2005-01-27

ハード完成の図

MIDI FX Switching System

|  MIDI FX Switching System - 電音の工場ブログ を含むブックマーク はてなブックマーク -  MIDI FX Switching System - 電音の工場ブログ  MIDI FX Switching System - 電音の工場ブログ のブックマークコメント

新着記事リストからoutしてしまったので、保守アゲ。この項は順次updateする。

以前にPICマイコンで作ったエフェクト・ループ・プログラマを大幅にバージョンアップ*1しようとするのがこのMIDI Controlled FX Switching System、旧名からの連続性で言うと プログラマブル・エフェクト・ループ・スイッチング・システム。

前作のあと何回か(5回目ぐらいか)検討するも、その都度 別プロジェクトへ浮気して完遂していなかった本プロジェクトも今度こそまじめに検討開始。白眉な仕様のVersion2、今ここに。

進捗

2005/02/06
対応して、今度こそ完成!
2005/02/05
2CPU対応の基板改修、ソフトウェア完 と思ったらバグ発覚
2005/01/23
ソフトウェアほぼ完成(もうちょっと基板改修と趣味の機能追加あり)
2004/12/26
ハードウェアほぼ完成(あとは電源を入れるだけ)
2004/12/23-26
LEDドライバ、ハーネス作業
2004/12/18-19
出力ポートドライバ完成、7セグメントLEDドライバ作成中
2004/12/xx
GT-8発売
2004/11/27
リアパネルの加工
2004/11/23
メインロジックボード完了
2004/11/20-21
ロジックボードの製作作業
2004/11/13
フロントパネルの加工
2004/11/07
フロントパネルの加工
2004/11/03
フロントパネルの検討・設計開始
2004/10/30
10月中はほとんど進まなかった。プロフェット調 LED付きタクトスイッチを基板に並べて、それにあったスリットをフロントパネルにあけなくてはならない部分で、フロントパネルの設計で二の足ふみふみ中。
2004/09/28
プログラマ部のロジックボードをstep by stepで組み上げ中。テストプログラムを組んでUI部分の実験中。
2004/09/04
プログラマ部のロジックボードをstep by stepで組み上げ中。ときどき他に浮気するので進みは鈍い。
2004/08/31
LED内蔵タクトスイッチ(プロフェット風)を万能基板に並べて悦に入る。

名称案

組み合わせて使うものなのでシステムであるとは言える。「プログラムしたエフェクタのループのパッチをMIDIで切り替えるシステム」なので、MIDI Controlled FX Switching Systemだけれど、名前が長ったらしいのが難点。

システム仕様

  • プログラマ部と信号ルーティング部とを分離する
  • それぞれ独立した1Uラックに組む
  • プログラマ部からの制御信号は port0 (8ループ) / port1 (8ループ) が出力される
  • ルーティング部は1-port分の制御信号を受け、8ループのON/OFF(ないしはA/B)を切り替える
  • 制御信号はオープンコレクタ出力

信号ルーティング部仕様

  • プログラマからの信号に従って8ループを切り替える(サイズの関係)
    • 1ループあたりはA/B boxとなっている
    • ところどころ send-return を挿入可能とする。挿入個数はパネルレイアウトして決める
  • 切り替えはメカニカルリレーを基本とする
    • 採用するリレーとピンコンパチブルにしたアナログ信号切り替え子基板を用意し、アナログスイッチングも採用できるような余地を残す
  • ついでに信号を引っ張り出して、BOSS FS-5L互換端子を設ける
    • 4個ぐらい用意すればいいだろう
      • その4個のときは selectable? 悩むぐらいなら8個出す考えも
    • 1ループあたりのA/B boxと同時動作で良い
    • いや、センターオフのSWを使って、切れるようにしておくべきか。
    • 位相切り替え(NO, NC)を設ける → P板上の実装で可とする(ケースの穴あけが面倒なので)

プログラマ仕様

  • 16ループをプログラムできるようにする
  • 出力は8ループずつ port0/port1に分ける
  • パッチ切り替え(通常)モードとエディットモードをもつ
    • 状態は、INIT, SELECTION, EDIT, POWER DOWN を想定。POWER DOWN を採用するかは検討中
  • パッチ切り替えはMIDI program change(MIDI PC) から行う
    • MIDI chは起動時に設定値を読み込む
  • コントローラは BOSS GT-3 と Generic MIDI(128プログラム)を考える
    • BOSS GT-5/GT-6/GT-8 対応もとりたいが、現物を持っていないので検証不能
    • コントローラ選択は起動時に設定値を読み込む
  • パッチ切り替えは内蔵ロータリ・エンコーダからも行う
  • 現在選ばれているパッチ番号を7セグメントLEDで表示する
  • そのパッチにおける16ループのON/OFF状態をLEDで表示する
  • エディットモード時に16ループのON/OFF選択をしてWRITEボタンで記録する
    • 記録したらパッチ切り替えモードへ移行する
    • 現在エディット内容のプログラム内容比較機能 →
    • エディットモード中のMIDI PCの取り扱い → 受信し表示を切り替えるが、プログラム内容を最終段レジスタにラッチしない。最終段レジスタはタクトスイッチでの選択内容を記録する
    • エディットモード中のロータリ・エンコーダ操作の取り扱い → MIDI PC によるものに順ずる
  • 電源断処理を行う
    • スーパーキャパシタでバッテリバックアップ (待機時消費電流しだい)
    • バックアップからの復帰と電源投入とで動作を変える
      • 完全に電源が切れているところからの Start-up RESET
      • バッテリバックアップに入っていて Power Down mode からの RESET

割り込み線は足りるのか? 足りるようだ (シリアル(MIDI)、ロータリ・エンコーダ割り込みやめスイッチ押されて wake-up、電源断検知)

プログラマ実装案

  • ポート数と内蔵EEPROMのワード幅に鑑み、マイコンは2個用意する
    • ひとつあたり8ループをプログラムできるようにする
    • clock/reset回路は共通のものを用いる
    • 2つのマイコンのプログラムは同一のもの
    • master/slave 動作をさせるかどうかは未定
  • 開発言語は avr gcc とする
  • MIDI ch/コントローラ選択のDIP SWは2つのマイコンで共有する(メドがたった)
  • マイコンAVRを選択する
    • AT90S8515 または AT90S8535。RTC / タイマーを3個 を使いたいときに8535を選択する
  • 7セグLEDはシリパラしてラッチして表示するタイプとする(ピン数節約のため)
    • 74HC595で行う
    • 8ループ出力のLEDについても同じようにするべきか → やらない。点滅させるにしても動作は同期させる
  • ロータリSW を回しても、一瞬の不感時間をおいてプログラムが有効になるようにする。ロータリSWをぐるぐると回す使い方に対して、信号ルーティング部がメカニカルリレーであった場合の寿命に鑑みて。
必要な部品
  • AT90S8515 or AT90S8535 ×2
  • ロータリ・エンコーダ 秋月のが安いのでアレを使おう
  • LED内蔵タクトスイッチ (Prophet調) ×18
  • 3-digit 4-digit 7セグメントLED
  • 74HC595 ×3 ×4
  • TLP552
  • 5pin DINジャック
  • DIP SW 6P or 8P
  • スーパーキャパシタ
  • コネクタ
    • DF1B-*S-2.5R
    • DF1B-*P-2.5DSA
実装方針

部分に分けて、ライブラリを作りながら、少しずつやる。

メモ
  • 74HC595
    • I_{o} (source/sink): Q_{n} ±35mA、Q_{7}' ±25mA
    • I_{cc}, I_{GND} (source/sink): ±70mA

*1:ていうか作り直し

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050127

2005-01-24

マスターペダルにしている

週末の作業 ― FX SW ソフト

|  週末の作業 ― FX SW ソフト - 電音の工場ブログ を含むブックマーク はてなブックマーク -  週末の作業 ― FX SW ソフト - 電音の工場ブログ  週末の作業 ― FX SW ソフト - 電音の工場ブログ のブックマークコメント

持ち帰り仕事もある中、逃避してソフトを書くの図。

ほとんど完成したっぽい。あとは解っているバグでの基板改修を伴うものと、趣味のチューンアップを何箇所か。電源断時の処理の部分もちゃんとやらなきゃね。

行った作業は、

  • MIDI の parser を入れて、
  • EEPROM書き込み部を書いて、
  • それらを main部に仕込んで…

といったところ。

port0用のAVRとport1用のAVRとで同期を取っていないので、立ち上がり時にマスタースイッチの種別(Generic MIDI/GT-3,6,8/GT-5)と MIDI channel の判定で、片方のAVRは取れるけど、もう片方が取りこぼすという現象があったので wait を噛ませて対処。

もうちょっといじるけど、とりあえず機能は実装できたということで。

あ、一般的なMIDIフットスイッチやGT-5での試験は、持っていないので、していない。誰か GT-5 をくれたりしないかなぁ…

GT-3 の仕様

そうそう、今回のMIDI FX SWで筆者がマスターペダルにしているGT-3 の仕様では、あるプログラムが選ばれているときに(例えば 18-2 とか)、もう一度そのペダル(18-2)を踏んでも、MIDIにはその情報が送られない。MIDIの信号をモニタ(id:Chuck:20000109)していても何も出てこない。bank up して、bank down して、GT-3 本体の 18-2 にあたる部分のLEDが点滅している状態で 18-2 をもう一度踏んでも MIDI にプログラム・チェンジ情報は送られない。

演奏中になんらかの事象(ロータリスイッチを回してしまったとか)により、マスターペダルのGT-3 と MIDI FX SW の状態がスリップしてしまったときに、GT-3 のペダルの再踏では元の状態に復帰できないということを意味する。

が、GT-3がそういう仕様*1であれば仕方ないなぁ…

ていうか、都合の良いMIDI情報を出力するフットペダルを作るモチベーションになる。ジャンクのMIDIペダルを探すことにしようと思う。もちろんその前に、リレーボックスが必要だが。

アイディア

案は二つ、

  • フル仕様のペダルを作り、GT-3もこれでコントロール
  • 再踏専用ペダル (MIDI IN/OUT) を作り、GT-3 と MIDI FX SW の間に挿入

後者の方が面白そうだ。

*1:例えば、プログラムチェンジ再送で送られた先のエフェクタの状態が変わることを避けようとするものなのではないか。ディレイ音が途切れたりってありそうだよね?

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050124

2005-01-18

今日の作業 ― FX SW ソフト

|  今日の作業 ― FX SW ソフト - 電音の工場ブログ を含むブックマーク はてなブックマーク -  今日の作業 ― FX SW ソフト - 電音の工場ブログ  今日の作業 ― FX SW ソフト - 電音の工場ブログ のブックマークコメント

忘れるのでメモ。

MIDI Program Change (PC)
CnH pp
MIDI Control Change (CC)
BnH cc vv

で、CC の 00H, 20H で、プログラムのバンクセレクトを選択できる。

  • CC#=00H bank MSB, BnH 00H mm
  • CC#=20H bank LSB, BnH 20H ll

GT-3 で出力される bank MSB の値範囲は 0~3で、bank LSB の値は 0 固定。なお出力されうる PC は 0~99 。

  • Reset All Controller BnH 79H 00H

これって、覚えているバンクセレクトを MSB/LSB ともに 0 にリセットしたほうがいいかな? しなくても良さそうだが、MIDI FX SW の仕様としてどうするか、ということか。

MIDI parser は

masa921さん(さらに元はK.Tanakaさん)のを改造して使うことにする。F1H/F2H/F3H/F6H/F8H/FAH/FBH/FCH/FEH/FFH の対処を追加して。基本的にはスキップするだけで無改造でも行けるかと思うが、F1H/F2H/F3H はパラメータを引き連れているので、これは対処しようと思う。FEH のアクティブセンシングは看ないつもり。FFH でシステムリセットは入れようと思うが、AVR でソフトリセットのニーモニックはなかったと思うので、Cのプログラムから $0番地に飛ばすってのもなんかイマイチっぽいので*1、Watch Dog Timer を動かしてみようか…

ただ仕事で火を噴いている*2ので、着手はしばらくあとになりそうだ。

*1:加えて言えば、レジスタ類がリセットされないと思われるので。

*2:その割にはブログは書いている奴。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050118

2005-01-16

今日の作業 ― FX SW ソフト

|  今日の作業 ― FX SW ソフト - 電音の工場ブログ を含むブックマーク はてなブックマーク -  今日の作業 ― FX SW ソフト - 電音の工場ブログ  今日の作業 ― FX SW ソフト - 電音の工場ブログ のブックマークコメント

BOSS GT-3/GT-5/GT-6*1のマニュアルを見て、それぞれのマルチエフェクタのペダルを踏んだときに出力される MIDI Program Change (MIDI PC#)を受信したときに、対応するプログラムを呼び出すEEPROM上のマッピングを考えて、それに沿った表示をするようなルーチンを組んでみた。

まだ MIDI の受信機能は取り入れていないが、ロータリエンコーダで対応するプログラムを呼び出して、GT-3/5/6 のデフォルト値*2と同じ表示をするはずである。

GT-5 に関してはデフォルトで出力される MIDI PC# のルールがイヤラシイので、MIDI受信部でも小細工が必要だ。もっとも筆者はGT-5/GT-6を所有していない。GT-3 を所有しているが、External loop の send-return 位置が DIST部固定なのでいまひとつである。GT-5を欲しいと思っているので中古で安く出ていないか探している。GT-8 もいいなぁ…

追記MIDI化対応

持ち帰り仕事の逃避行動として、UARTのルーチンを組み込み中。

Volker Oth の AVR の gcctest 09 を引っ張ってきて対応した。

  • Baud rate を 31250bps に
  • obsoleted な記法を define で修整*3
  • UART_RX_ONLY な define を作って TX関係関数をくくった

ぐらいの改造。

受信したMIDIメッセージのパース部分はこれから。

追記

みつばむしさんの情報にしたがって、ローランドのホームページのサポートコーナーからGT-8の取扱説明書(PDF)が入手できた。

GT-3/6 と 同じマッピングだということがわかった。

みつばむしさん、どうもありがとうございます。

*1:GT-8 は資料が無いので割愛した。

*2:GT-3/5/6 でマッピングを換えていないことが前提。

*3:u08 → uint8_t とか。

みつばむしみつばむし2005/01/18 23:25RolandのHPのサポート→ダウンロードから頂戴したGT-8のPDF取説がMIDI PC#の解説付きでした。参考になりますれば。

ChuckChuck2005/01/19 06:39ありがとうございます。ファイルをゲットしました。
ぱっと見、GT-3/6 と同一のマッピングのようですね>GT-8

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050116

2005-01-13

今日の作業 ― FX SW ソフト

|  今日の作業 ― FX SW ソフト - 電音の工場ブログ を含むブックマーク はてなブックマーク -  今日の作業 ― FX SW ソフト - 電音の工場ブログ  今日の作業 ― FX SW ソフト - 電音の工場ブログ のブックマークコメント

またまたちょっくら作業。

  • 電源断検出をポーリングから割り込みにする (そして終了処理して"Power-down"モードでSLEEP)

これの対処をしたプログラムを作成した。

最後のプログラム番号を覚えておいて、Power-down で sleep して super cap の電力で寝かせておいて、次の再立ち上げで最後の状態を restore しようという考え。

しかし再立ち上げ時に最終状態値からコロっと±1で値が動く。これはロータリエンコーダの最終状態に依存するように見えるのだが、しかし加えて、リセットボタンで復帰したときと電源断から再立ち上げしたときで微妙に振る舞いが違う。さて…

まずは sleep 直前の終了処理をきちんと見直すことにしよう。


しかしネタとしては ecraftsグループ的な記事が続く…

追記

ロータリエンコーダの処理を替えるという手もある。http://elm-chan.org/docs/te/te04.html

追記2

替えてみた。リセットボタン操作時に値が動くことは対処されたが、電源off-on ではまだ現象が出る。原因はわかったのでハードウェア改修で対応可能。

しかし…

Power-down sleep で寝かしておくってのは、電源断直前のプログラム値を次の電源投入時に保全してほしいという仕様のためにやっている。テスト時やループのエディット時はともかく、ライブなどの実使用時には使われることはないだろう。そもそも super cap の容量を使い切って一晩ももたなかったりしたら泣ける…

ま、技術的興味ということで。

追記3

一晩も持たないみたい。く~。

追記4

Reset during EEPROM Write のバグ、すなわち「書き込み中にリセットがかかったときに0x00番地にデータが書き込まれてしまう」に、スーパー cap で対応できるぞ!と思っていたのdが、AT90S8535 の errata にはこの項目が書かれていないようだ。この不具合はないということ?

http://www.atmel.com/dyn/products/datasheets.asp?family_id=607

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050113

2005-01-12

今日の作業 ― FX SW ソフト

|  今日の作業 ― FX SW ソフト - 電音の工場ブログ を含むブックマーク はてなブックマーク -  今日の作業 ― FX SW ソフト - 電音の工場ブログ  今日の作業 ― FX SW ソフト - 電音の工場ブログ のブックマークコメント

ちょっくら作業。

  • ゼロからの立ち上がりなのか、sleepからの復帰なのかを判別できる機構の整備

入れてみた。スーパーキャパシタの完全放電に時間が掛かるので、この機構のチェックに手間取った。完全に電源を切り離すスイッチを入れれば良かったのだけれど、N.C. (Normally Closed)のスイッチが手持ちに無かったもので…

えーと、次はなんだっけ。

  • 電源断検出をポーリングから割り込みにする (そして終了処理して"Power-down"モードでSLEEP)

これか。

r0r0r0r02005/01/12 08:47ELKITのTU-894っていう真空管アンプキットでも使ってますね。
超3結という方式に改造している例が多いので、やってみたのですがちゃんと計算して定数決めないと、そのままでは9Vで動きませんでした・・・orz

ChuckChuck2005/01/12 16:03昔エレキットの真空管アンプキットを組み立てたことがありますが、型番や球種をすっかり忘れてしまいました。

takedatakeda2005/01/14 16:146BM8はその筋では結構有名な球。安いキットに使われてて、最近のキットはいかに、みんなが使ってるこの球を使わないでやるか工夫するぐらい有名。もともとはTVの球らしいんだけど、結構音も良いらしい。
僕はこれのヒーターが50Vの50BM8というやつを数本手に入れてます。2本直列にすれば、AC100Vに直結できるので、ヒータートランス使わなくて済むのよ。
リバーブのドライブ、どーすんのかしらね。一般に、スピーカードライブするのと変わらないぐらいの負荷だから、6BM8をもう一本入れて同じ回路でスピーカーの替わりに、リバーブのコイルをドライブするのが正解ぐらいかも。回路より、スピーカとか、ボックスとかの工夫のほうが難しいかもしれない。

takedatakeda2005/01/14 16:44そうそう、真空管アンプの中で一番安価なパーツは消耗品であるところの球です。
手持ちの球を生かして何か組み立てみようと、部品買い始めると、結局トランスが一番高いの。せっかく高価なトランスを手に入れるのなら、安い球を使うのがもったいなくなって、球買いに走り、気が付くと膨大な球のコレクションになってたりします。
僕もこれではまりました、要注意です。それにつけても、6BM8は人気の球です。
ギターアンプには低い周波数を通す必要が無い(ギターからは出ない..)ので、あえて安い(一般のハイファイオーディオ用じゃないやつ?!)を手に入れるべきで、これが逆に、意外に入手がむずいかもしれません。
ギターアンプでは、リバーブユニットいまだに現役で、先日出た新製品にも、バネ入ってたり結構普通で、ユニットそのものもその筋で入手が可能です。
例の回路、スピーカーと並列だと、発振しそうな気がします。一方、負帰還の量を換えて、リバーブの深さというか長さというか、調整するテクニックを見たことも有ります

ゆうゆう2007/01/12 21:35色々検索して、たどり着きました。私の最近の気になるモノですが、
2007.1・24発売のコンピCDが良いとの事です!!
ジャケットもキラキラ光って、ラグジュアリー&キュートです!
トランスにダイヤモンドのきらめき『トランス・スーパー★シャイニー』
是非、チェックしてみて下さいね!http://shiny.jp/

ChuckChuck2007/01/13 08:17おお、日本語のコメントスパムだ。「{キーワード} ブログ」でググって出てきたブログにコメントをつける、そして「{キーワード} BBS」で次に… (一連の手順が全部ログに残ってた)

しばらく残しておこうっと。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050112

2005-01-10

今日の作業 ― FX SW ソフト

|  今日の作業 ― FX SW ソフト - 電音の工場ブログ を含むブックマーク はてなブックマーク -  今日の作業 ― FX SW ソフト - 電音の工場ブログ  今日の作業 ― FX SW ソフト - 電音の工場ブログ のブックマークコメント

この連休に出来たこと。

  • プログラムを動かして配線チェック
  • 7seg LED表示のサブルーチン (愚直にパラ-シリしてI/Oポート叩く)
  • ループon/off タクトSW のサブルーチン (timer0 で 約1msec 割込みでエッジ検出)
  • モード切替え タクトSW のサブルーチン (timer0 で 約1msec 割込みでエッジ検出)
  • ロータリエンコーダのサブルーチン (timer0 で 約1msec 割込みでエッジ検出)
  • 書込み タクトSW のサブルーチン (timer2 で 約1msec 割込みでエッジ検出、長押し検出)
  • ループon/off タクトSWのLED のサブルーチン (timer1 で 割込んでトグル)
  • キー、ロータリENC クリック音、長いアラーム音処理
  • 内蔵EEPROM 読み出し処理
  • ポーリングによるテストプログラムでの電源断検出 (→本番では割込みにする)

ここまでで、.text は約1K Byte *1AVR AT90S8535 のプログラム領域は 4K Byte(2K word)なので、どれだけ機能を盛り込めるか…

これ以外にフレームワークとして対応すること。

  • シリアルI/F サブルーチンの整備
  • ゼロからの立ち上がりなのか、sleepからの復帰なのかを判別できる機構の整備

*1avr-gcc の サイズ優先最適化済。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20050110