第十五号 3月
発行者:和田重人
[email protected]

http://www.geocities.com/ swmusicstudio/


目次

新しいMAX i MUMホームページ!
MAXの基本的な使い方(第十二回)
MAXi MUM創刊に当たって
MAXについて
奥付


次回の配送は4月6日の予定です。
回線を切ってお 読みになる方は
こちらから本誌を
ダウン ロードできます。

この月刊メールマガジンは"まぐまぐ"によって無料配信されています。
マガジン名称 : MAX i MUM ...J version...
データタイプ : HTML
まぐまぐマガジンID : 0000013823

登録・解除は MAX i MUM Home Page から行えます。また御意見・御要望また投稿等ございましたら和田 重人までメール下さ い。




NEW MAX i MUM HOMEPAGE!!
 新しい世紀が明けましておめでとうございます。(随分遅くなってし まったなぁ・・・すいません・・。)
 二十世紀終わってから四分の一を過ごしましたが、色々変なことが起きなければ二 十一世紀の半分は見ることになるんですね。
 どうにも不思議な気分です。
 最初ッから二十一世紀を生きるべき時期に生まれたんですね。やっと自分の時代が 来たという感じがします。

 さて、十月号から止まってしまっていたMAX i MUMですが、以前より企画していた新 しいアドレスとホームページを公開することに致しました。理由と致しましては、思って いたよりも遙かに反響が大きかったと言うこと(嬉しい限りです。数々のサポート本当に ありがとうございます。)と、Cycling'74及 び私の大学を中心に行われているAriada Project、そして夏に行って参りましたHypermusic Project共にMAXを使用する機会が増えて、そちらからのリンクが張られることも多く なったことが理由です。そしてMAX関係のメールを他のトピックと区別して一括管理したい という狙いもあります。
 ブックマーク等に記録してしまった方には面倒をおかけいたしますが、よろしく変 更願えると幸いです。

 新しいホームページはマクロメディア社 のフラッシュ5.0を使用して作成されておりますので、ネットスケープのバージョ ン4.7以前、またはインターネットエクスプローラの5.0以前を使用されている方はプラグ インをダウンロードする必要があるかも知れません。マクロメディア社のホームページに ダウンロードの仕方・インストールの仕方を始め、問題が起きたときの解決法などについ て詳しく図入りで書いてあるページがあります。新しいホームページをお楽しみ下さい。
 マッキントッシュ版では画面の一番左上にあるリン ゴマークをクリックして、一段下がったところにある"About Communicator"や"About ・・・"となっている所を選んでいただくと、バージョンが出て参 ります。ウィンドゥズ版は・・・どうやるんだろう。プロパティを見たって出てないです よね。確か。
 新しいバージョンはNetscape社のホーム ページMicrosoft社のホームページか らダウンロードできます。
 現在はまだ英語版のみとなっておりますが(要求が既に来てしまったため)近日中 に日本語版も公開いたします。

 2001年以降のバックナンバーは全て新ホームページからの閲覧とし、また同時に MAX, MSP, Pluggoを使用したソフトウエアをダウンロードできる場所を作りました。

 1999年に立ち上げた際にはHTMLでの配信に関して色々な議論がありましたが、今 回のフラッシュ導入においても考えることが色々ありました。最終的に導入を決定したの は、フラッシュが2大ブラウザであるナビゲータ、エクスプローラ共にサポートされてい るという点からです。そして、MAXやMSPを扱う間に私も新しいことに対して背を向けるこ とを一切否定するようになり(また、それはおかしな懐古心であり)、皆様に対する情報 発信をする者として「標準化した」レベルであることを前提に新しい技術を取り入れて行 きたいと考えておりました。無論テキストベースを初めとしたシンプル一貫のホームペー ジもあってしかるべきです。しかしマガジンのテーマとしてマルチメディアな活動を促進 すると言うこともあります。フラッシュが多くのホームページで使われているだけでな く、インターネットという様々な制限のある世界においての表現活動を飛躍的に発展させ たフォーマットでもある以上、取り入れてゆくのが姿勢として正しいと考えます。

 これを踏まえ、ゆくゆくはMAXiMUM誌上においてもフラッシュによるアニメーション やサウンドを使用してよりMAXの扱い方が判り易く伝えられるマガジンを創って行きたいと 考えてます。例えばこれまでは「ボタンを押すと・・・になる」といったパッチの解説は 固定された画面ゆえにそのおもしろさを伝えにくいと言う不便がありました。フラッシュ を使用することでこれらのダイナミックな動作を伝えることが可能になります。

 とはいえ、いまだにパソコンを買った当時のブラウザをそのまま使っていらっしゃる 方もおられるでしょう。また何か変なことをしないと行けないと思われる方も多くいると 思います。それはソフトウェアを新しいバージョンに書き換える(アップデート)作業が 複雑であるということと、それをインターネット上で無料サービスとして行えると言うこ とを合わせて、きちんとパソコンがよく解らない人に解説するメディアが存在しないせい でしょう。普段最新の技術というモノをなんでもなく使っていらっしゃる方からすれば驚 く事かも知れませんが、使える人間が先走ってしまうことがいかに危険かを考えますと、 やはり一から順番に解説するという作業は必要です。

 その点において、先にも書いたようにマクロメディア社は一歩進んでいるといっても 良いかと思いますが、そのページまでたどり着くのが大変なのはよろしくありません。

 そこで、今回のフラッシュ導入に合わせてインターネットを見るために必要なエクス プローラなどのソフトウェア(ブラウザと言います)の手に入れるページとフラッシュな どを見る際に必要になるプラグインを手に入れるページ、そしてインストールの仕方を解 説しているリンクを同時に紹介いたします。また、お返事に時間がかかってしまうかも知 れませんが問題が起きた際には質問を受け付けるつもりですのでよろしくご協力をお願い いたします。


 ホームページを見るソフト(ブラウザ)をアップデートするときに は・・・・
 ネットスケープを使うならNavigator6かCommunicator4.75をダウン ロードしましょう。
 マイクロソフトを使うならInternet Explorer 5をダウンロードしま しょう。
 マック版とウィンドウズ版を選ぶ必要があります。
 ネットスケープ社How to Install Softwareページ(英語): http:// home.netscape.com/download/install_instructions.html
 ネットスケープ社ダウンロードページ(日本語): http://home.netscape.com/ja/download
 マイクロソフト社IEヘルプページ(日本語): http:// www.microsoft.com/windows/ie_intl/ja/download/instruct.htm
 マイクロソフト社ダウンロードセンター(日本語): http:// www.microsoft.com/isapi/gomscom.asp?target=/japan/download.htm
 ブラウザを変えずにフラッシュを見られるようにするに は・・・・
 ダウンロードセンターのフラッシュを選んだ状態のリンクですが、 マッキントッシュ版しかありません・・・。ひょっとして自動的に機種情報を得てジャン プするんでしょうかね!もしも下をクリックしたときにマック版しかでなかったら、ここをクリックしてか らWeb Player、Macromedia Flash Playerと進んでみて下さい。
 マクロメディア社フラッシュインストレーションページ(日 本語) : http://www.macromedia.com/jp/support/shockwave/ts/nav/contents.html
 マクロメディア社フラッシュダウンロードセンター(日本語):
            http://www.macromedia.com/jp/ shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash
 しかしネットスケープ、マイクロソフトどちらも判り易い方法は 書いていないんですね。ダウンロードさせてしまえば後はわかるだろうと思っているあた りがいやです。フラッシュだって、これらブラウザと同じくらい判り易くインストールで きますが、きちんと全ての解説を行っているというのに。。。そのあたりにインターネッ トソフトウェアの中で地位を確立した秘密があるのではないかなぁ。無くたって困らない ソフトだけに、それが急速に広まるのは不思議なことですね。
 英語でしかサポート情報を載せていないネットスケープもどうかと思いますが、ダ ウンロード自体はずっとわかりやすいように思います。と言うのもエクスプローラをダウ ンロードする際にはメニューからあれこれ選ばないといけないのが解りにくく感じたから です。Internet Explorerの場所を探すだけでも面倒なのに、バージョン2.0から載ってます(笑)バー ジョンという言葉だって専門用語なのに・・・。以前「バージョンって何?」と聞かれ て、「そりゃそうだ・・・・!解るわけがない!」と改めて不親切さに、そして自分が慣 れ親しんでいるがゆえに気付かぬ不親切な言動に気付いたことがあります。例えばリンク と言う言葉だって、一から説明するとなるとなかなか難しいですよね。

 そこでFlash導入について「なんじゃそりゃ」という方から「良い点は・・悪 い点は・・・」と言う方までアンケートに答えて下さると幸いです。全体としてこういっ た新しいことに対してどうお考えかはとても興味のあるところなのです。
 よろしくご協 力下さい。

 さて、新しいホームページのアドレスは・・・・

http://www.geocities.com/ maxmsp/
 メールアドレスは、
[email protected]
 そして待望のバナー(これだってある意味専門用語ですよね。banner : 垂れ幕、横断 幕、旗印というわけで、街にぶら下がっている「陥没商店街サマーセール」などといった 宣伝用の(商用とは限りません)絵や文字の入った画像のことをインターネットではバ ナーと呼んでいます。)は、

<a href="http://www.geocities.com/maxmsp"><img SRC="http:// www.geocities.com/maxmsp/http://www.geocities.com/maxmsp/mpict/maximumbn.gif" BORDER=0></a>
 となっております。下に書いてあるテキストを貴方のホームページ上ののせたい場所に コピー&ペーストしていただければ使うことができます。どうぞあちこちベタベタと張っ て下さいね(笑)

 ご覧の通り誌上はそれほど変わりがありませんが、新しいバックグラウンド画像をは じめとして、図とテキストを見比べる便利性を重視し、大きなウインドウで閲覧すること を基準としたデザイン(Flash導入が本格化した際にはマウスで図をクリックすると解説・ アニメーションが出る様にする予定)を始めとしてマイナーアップグレードを施して行く 予定です。
 さてそれではこれからもよろしくお願いいたします。また、新しく購読を開始して いただいた方、これからよろしくお願いいたします。

目次へ


MAXの基本的な使い方(第十二 回)
 基本的な使い方もはや12回ですか。
 と言うことはこれで1年やってきたと言うことになるんですね。
 既にMAXの基本はほとんど述べてしまったと言えば述べてしまったことになります。 終わりが見えてまいりました!
 これからは色々な例を見ながら役に立ちそうなところをピックアップしたり、困っ てしまったところについて質問を受け付けるなどの内容を中心とした「MAXの応用的な使い 方」にまいります。「MAXの基本的な使い方」も第一回から順に毎号再掲載して行く予定で す。
 それと平行して、以前行った「音列挟撃」の様な作曲にまとわりつく哲学的思考 と、それをどの様にパッチに著して行くかという具体・具現化についての考察・・・・な どという大それた内容について語りたいなぁなどと考えています。
 さらに近況報告というかEUプロジェクトについてもよりつっこんだところでリポー トしていきたいなぁ・・・・。
 何だいっぱいあるじゃん!(笑)

 そこで次回13号ではループについてのお話とDJミキサーの完成を。次次回14号で はずっと先延ばしになっていたrandomオブジェクトとその仲間達についてとMAXで扱うファ イルの種類についての解説をします。ファイルの種類を憶えておけば、仲間同士で交換で きるようなパッチが作れるようになりますよ。
 そして15号を最終回として、これまでに作ってきた楽器を使って何か音楽を演奏 してみようと思います。
 演奏は録音の後mp3ファイルにする予定でいます。
 今までに出てきた楽器は・・・・

・シーケンサのテンポに合わせて音を出すパッチ(99年7・8月号)
・ディレイパッチ(99年9・10・11・12月号)
・ノイズとサイン波(00年5月号)
・シグナルパニング(00年6月号)
・DJミキサー(00年9・10・11月・次号)
・「なにからんだむなもの」(次次号)
 そしてユーティリティーとして、
・サウンドファイルノーマライザー(本号)
 があることになりますが・・・・
 はぁ。結構あるもんですねぇ。一つの楽器として一つのパッチにまとめるとしま しょうか。
 MIDIで使用する楽器はもっていない人のことも考えてQuickTime音源だけにしようか な・・・・それともあれこれ使うかな・・・。

 何はともあれ今回はサウンドファイルのノーマライズについてです。
 長いお休みをいただいたので、かなり長いですが一気に行きますよ!


 さて、ノーマライズとは何でしょうか。
 ノーマルは「普通」・・・・じゃぁライズ??
 -lizeは名詞を動詞化しますので、つまり「普通にする」・・・・なんかこれでも はっきりしませんね(笑)

 例えば何かをテープやMDにダビングする時にノーマライズは大事になります。
 とても小さい音で録音してあるMDと大きな音で録音してあるMDが混ざってたら、聞 くときにいきなり耳元で大きな音が出てビックリしたり、何も聞こえなかったりと言うこ とが起こります。経験のある人も多くいるのではないでしょうか。

 ノーマライズというのは録音した音を一定の音量に統一して、こういった不便を無く すことが目的です。「普通にする」と言うのも何となくわかりますね。「一般化する」と か「統一する」と言う言葉の方がいいかも。
 一般には、録音できる最も大きな音に統一します。

 そうすれば、例えばDJなどをするときにどんどん新しい曲をかけても音量をいちいち 動かす必要が無く、とても便利です。
 また、ここでは省きますが録音したときに混ざる「サーー」というノイズを大幅に 減らすこともできます。今はデジタルで録音するのが当たり前ですのであまり気にする必 要はないのですが(まぁでも大いに気にした方がいいんですけど)、カセットテープなど に録音していた頃には正しい音の大きさ、つまり入力する音のレベルをきっちり合わせな いといけませんでしたね。ああ、懐かしきドルビーB(笑)あまり使わなかったドルビー C。そして導入してから数年も経たずにデジタルに駆逐されたドルビーSよ。dbxなん てのもありませんでした?
 私は中学の頃最初に買った録音機器がDATの人なので、テープ関係に関しては無知そ のものです。

 ま、それはともかくどうやったら最も大きな音を作ることが出来るでしょうか。
 デジタルで考えると録音できる音(数字)の幅がマイナス1からプラス1だという 話を以前しました。
 ということは、録音するときに入力が1を超えないすれすれで録音すればよいと言う ことになりますね。でもそんなことできるでしょうか?できないことはないですが、はっ きり言って面倒です(笑)ましてや生ライブの録音などでこれを厳密に行うのは不可能に 近いでしょう。
 そもそも入力が-1<x<1の時はMDなどの音量表示はどうなっているのでしょ う?

 MDを初めとしたデジタル録音をするときにはレベル表示が機械によって異なりますが (メモリのある物、無い物、書いてある数字が違う等々)デジタル録音はカセットテープ などとは違い、何となく見た目でもわかります(笑)
 デジタルで録音する際には"OVER"という赤ランプがつかないように録音すればよい のです。つまり、レベル表示が右端にくっつかなければそれでよいと言うことになります ので、非常に楽と言えば楽なのですが、それでもやはり何度も何度も同じ音を聞きながら 録音レベルのつまみと格闘するのはあまり嬉しい作業ではありません。

 そこでコンピュータの登場です。ここでは何も-1<x<1を狙わなくても大丈夫。 できる限り大きな音で赤ランプOVERがつかないように録音しておけば後で-1<x<1 ぴったりにすることができるのです(!?)

 ではどうやるのでしょうか・・・・。
 次の波形を見てみて下さい。

 見ての通り、-1& lt;x<1の範囲にはありますが一番大きな波の部分が0.4しかありません。
 うーん。もうちょっと大きな音で録音した方が好ましいと言えば好ましいのですが (笑)まぁ、とにかくこれを1.0にしたいという訳です。
 以前も解説したように、この波形はCDと同じ音質ならば一秒間に44100回波を数字に 置き換えていると言うことになります。つまり、この波は ......0.98,-0.2,0.123,0.99,0.98,0.875......という様に数字の集まりです。
 純粋にかけ算で考えてみましょう。0.4を1にするには2.5を掛ければいいですよね。
 そこで波形として記録されている数字達全てに2.5を掛けてやります。そうすれば、 波の形を変えずに波の幅だけを縦に伸ばす、つまり音を大きくすることができるのです!
 右の図を見てみましょう。
 一つ一つの数字全てに2.5を掛けているのがわかります。

 そして左側の図が掛け終わった後の波形です。縦に伸 ばされて最大が1.0になっているのがわかりますね!!

 ではどの様にすれば波形にかけ算をすることができるのでしょう??

 幸いにもMSPには波形の数字を一つ一つ取り出す事ができるindex~インデックスオブ ジェクトと、数字を逆に一つ一つ書き込むことができるpoke~ポークオブジェクトがあるの です!
 ですので、波形を初めから順番に読み込み、一番幅の大きな所、即ち一番絶対値が 大きな所を探しだし、それを1にするようにかけ算してやればいいと言うわけです。

 従って作業順序は、

1.サウンドファイルの頭から順に数字を取り出し、一番大きな絶対値を得 る。
2.得た値をかけ算によって1にするための定数を得る。
3.もう一度頭から順番にファイルを読み込み、得た定数を掛ける。
4.掛けて得られた数字を別のサウンドファイルとして出力する。
 と言うことになります。これらはどうやら見たところ自動的に行うことができそうです ね。

 そして・・・あれ?サウンドファイルの頭から順に数字を取り出す・・・と言うのは つまり再生するのと一緒ですね(笑)

 操作が必要なのは対象になるサウンドファイルを選ぶという作業と、ノーマライズ後 のサウンドファイルを保存するときに名前を付けることぐらいでしょう。
 今回はついでに見た目や操作性、終了時に音を出したりするような機能も考えてみ ましょう(笑)

 さて理論が終わったところで実践です。
 作り始めましょう!長いっスよー。まじで。
 ステレオ対応のモノにするとさらに大きくなってしまうし、それでいてコピーと ペーストで何とかなってしまったりするので(笑)モノラルサウンドをノーマライズする パッチを作りました。

 さてまたもやバカでっかいパッチになりましたが、どんなことが起きているか見て解 る部分もあるかと思います。機能に従って色分けを行いましたが、順番や実際のつながり と色の近似が一致してはいませんのであしからず。
 解説の順番ですが、緑色ユーティリティの部分はなくてもきちんと動く部分ですの で、肝心なノーマライズを行っている部分を解説します。ユーティリティーは「役に立つ モノ」と言う意味から来て、コンピュータでは便利な機能を実現するソフト達のことをさ しています。
 だから、まぁ、その、役には立つけど絶対必要ではないと言うことでもあります (笑)

 黄色ルーティング、つまり道順づくりをしている場所は最後にして、まず各部品を理 解するところから始めましょう。
 スタートはパッチ上で一番上にあるBang!です。信号は右から順に送られて行きます ので、clear, replace, info~, 1, そしてcounterという順に入ります。

 右端にあたるオレンジ色の部分はAIFF フォーマットのサウンドファイルをパッチの中に取り込むためと、一番大きな絶対値を格 納するための格納庫です。格納庫はバッファbuffer~というオブジェ クトによって作ることが出来ます。

 buffer~は色々なメッセージを受け付けますが、ここで使われている"clear"メッセー ジは格納庫を空っぽにし、"replace"メッセージは新しいサウンドファイルを読み込むよう 指示しています。この二つ以外はあまり使ったことがないなぁ・・・・。buffer~に続けて 入力する文字は、まず名前、次に長さ(ミリセカンドで指定します)最後にチャンネル数 となっています。例えば "buffer~ magmag 2000 4" とすれば、ステレオが2チャンネル(つまりモノラル4チャン ネル)2秒間録音できるmagmagと言う名前の格納庫が作成されます。ここでは1msの長さを 持ったmaximumと言う名前の格納庫とsampleと言う名前の格納庫が造られていますね。

 ここで大事なのは「シグナル」を格納するスペースだという点です。int や float、table に coll など、数値を格納するオブジェクトはいっぱいありますが、こ れらは黒い線であらわされるMIDIを初めとした普通のデータを扱うためのオブジェクトな ので、シグナルプロセッシングでは使用できません。collなどには"~"もついていませんよ ね!
 そして1msの長さは何を意味するでしょう。先にも述べたようにデジタルサウン ドは数値の集まりです。
 ですので一秒間に44100の数値変換を行っている状態では、千分の一秒のbuffer~が 格納できる数字は44個と言うことになりますね。端数の.1がどうなるのかは知りませ ん・・・・何方かご存じですか??

 では実際に何が起きてるでしょう。
 まず"clear"によって、最大値が格納されるバッファ"maximum"が初期化、つまり0 に設定されます。そしてノーマライズを施したいサウンドファイルがバッファ"sample"に 読み込まれることになるわけです。読み込む際には左図のような、シンプルな選択ダイア ログが現れます。ここでサウンドファイルを指定するわけですね。

 (もしもサウンドファイルがとても大きなファイルの場合にはメモリのことを考えな くてはいけません。
 何故かと言えば、パッチに読み込まれるのが10分のステレオファイルだとする と、なんと100メガ(フロッピー100枚分!)ものメモリが消費されます。
 これを解決するにはハードディスクからの直読みと直書込が重要になります。なぜ ならメモリをほとんど使わないからです。
 今回の例では読込においてバッファを使用したメモリからの再生を、そして書込に おいては後に解説するsfrecord~を使ったハードディスクへの直接録音を紹介することにし ました。)

 バッファが準備されたら次は紫色プレイバック、つま り再生機能に入ります。
 インフォinfo~はインフォメーションの略です。特定のバッファに ついての情報、例えばチャンネル数、長さ、音質、最後に読み込まれたファイル名等々、 info~に続いてバッファの名前を指定してからBang!を送ると情報を送り出します。
 ここでは右から2番目のアウトレット、全体の長さを出力しています。先ほど読み 込んだサウンドファイルの長さが出力されると言うわけです。

 ここでバリューvalueというオブジェクトが登場します。
 valueは数字やシンボル(文字のことです)を受け取り、指定された名前と一緒に値 を取っておいてくれるオブジェクトです。箱にラベルで名前を派って、その中に何か入れ ておくと思えばいいでしょう。ここではslengthと言う名前が付いています。sample lengthの略です。
 valueはパッチ上にいくつでもおくことができ、名前が同じならば中身も一緒です。
 例えば"value bird"を5つ作ったとして、そのうち一つに「鳥」というシンボルを 入れておくと、残りの4つからもそれを取り出すことができるのです。ドラエもんの4次 元ポケットを思い出しますね。中でつながっているあたりが(笑)
 取り出し方は至って簡単。上からBang!を送れば、下から現在入っている数字・シン ボルを出力します。

 さてバリューslengthの中には変換するサウンドファ イルの長さが入りましたが、どこで取り出されているでしょうか。

 少し下にある同じ色、紫色プレイバックの部分を見て下さい。
 value slengthがありますね!そしてBang!が上につながっています。どうやら"0, $1 $1"という怪しげなメッセージに送られているようですが・・・。

 ここでポイントになるのはプレイplay~とラインline~ のコンビネーションです。なぜなら、これら二つは切っても切れない仲だからです!? (笑)

 play~オブジェクトは指定された格納庫に入っている音を再生します。格納庫の指定 はbuffer~で与えた名前を使用し、数字はミリセカンドで与えます。左の例では"play~ sample"ですのでsampleという名前のbuffer~から音が再生されることになります。再生 は、再生する時間をミリセカンドで連続的に受け取る事で行われます・・・・といって も、これじゃいまいち解らないですよね。

 簡単に言ってしまえば、0から順に1.2.3.4.5.6.7.8.9........と数字を与えると、 その時間にあたる部分を再生するというわけです。MSPではこれをスムーズに再生すること ができるように、line~を使用します。なぜなら、一つ一つがスムーズに繋がっていないと 音が切れてしまうからです。

 さてline~の登場です。line~は「スター トする数字, ゴールの数字 終了までにかかる時間」という書式で数字を受け取ると、指定した時間を 掛けて初期値から到達値までの連続的な数値を出力します。たとえば "1000, 500 2000"を与えると1000から500まで減少する連続的な数字を2秒間かけて出力し ます。
 line~のMAXバージョンlineもありますが、使い方は全く一緒です。違いと言えば、 line~はシグナルを扱うためより高速かつ精密に動くと言うことぐらいかな?

 では"0, $1 $1"の$1ってなんでしょう??

 これはメッセージボックス内で使うことができる特殊な記号で、$1には上から受け 取った数字やシンボルが自動的に入り、下から出力がなされます。
 例えば2000という数字を"0, $1 $1"に送ると、出力は"0, 2000 2000"と言うことに なります。それを受け取ったline~は0から2000まで増加する連続的な数値を2秒間かけて 出力します。

 メッセージボックスで使われる書式として注意が必要なのはコンマ","とスペース"  "の違いです。コンマは数字を別々に送るのと一緒です。だから"2000, 2000, 2000"は"2000"を三回送るのと一緒です。
 しかしスペースを入れた場合には数値はリストとして、つまり、ひとまとまりのモ ノとして認識されます。ですので、かなり前の号で解説した・・・・と思ってチェックし たのにないぞ!?(笑)pack と unpack って解説してないんですね!?これは失敗。

 いままでに扱ったメッセージとして、数字(整数integerと小数float)、シンボル (文字)がありましたが、これの発展としてリストがあります。リストはいくつかの数字 を同時に送る時にとても便利です。packを使用してリストを作り、unpackを使用してリス トを分解します。10, 10, 10 >>pack>> 10 10 10 >>unpack>> 10, 10, 10の様になります。
 右のパッチで使われているpackでは、"i i i"がついてますね。これは整数3つを合 わせてリストにするという意味です。"pack f i s"なら最初が小数、次が整数、最後がシンボルというリストになります。そのうち 色々な例を出すことになるでしょう。

 右上に同じ機能を持った異なるパッチの例をのせましたので参考にしてみて下さい。

 さてすいぶん脇道にそれましたが元に戻りましょ う。

 valueの中に入っている数字を思い出して下さい。これは読み込んだサウンドファイ ルの長さでしたね?
 つまり、Bang!が送られると0からサウンドファイルの長さまでの数字がサウンド ファイルの長さをかけてline~から出力され、play~はsample(info~で分析されたサウンド ファイルと同じモノですね)をそれに合わせて再生することになります。
 平たく言っちゃえば、sampleが等速で再生されることになります(笑)数字が頭か ら順に読み込まれると言うわけです。

 これで半分ぐらいはできました。こっからが正念場ですので頑張りましょう!

 最大値を見つけるばしょはどこでしょうか。青色コンパリゾン、つまり比較機能の部 分になりますね。
 ここが一番複雑ではないかしら。何か同じ 所からあちこちに繋がっています。
 ちょっと整理しましょうね。abs~からは>~の左とselector~の一番右側に、sig~から はindex~、/~の左とpoke~の真ん中に、index~からは>~の右、selector~の真ん中、そして /~の右側に線が入っています。十分見やすいと思いますが念のため。

 これはちょっとしたループ回路になっています。一つのことを計算し、それによって 解った答えを使って次の計算をするという方式です。
 そこで常に動いている部分を最初に解説することにします。そうしないと解説が あっちこっちに飛びまくってしまいますので(笑)

 まずはシグナルsig~です。これは後に続く数字をシグナルとして 常に出力します。1がずっと送られていると考えて下さい。それがindex~とpoke~に入って いますね。ここがループです。

 インデックスindex~は先にも説明しましたようにバッファか ら数字を取り出すオブジェクトです。ここではmaximumバッファから数字が読み出されてい ます。読み出す数字の場所はサンプルで指定します。左上にシグナルまたは小数を受け取 ることで指定します。
 maximumバッファは1ms、つまり44サンプルがあるというのを説明しましたね。
 左上にはずっと1が送られていますので、常にサンプル1に記録されている数字が 送り出されることになります。

 つぎにポークpoke~です。ポークも先にちょろっと説明しましたが、バッ ファの指定箇所に数字を書き込むことができるオブジェクトです。左上から順に、書き込 む数字・書き込む場所(サンプルで指定)・書き込むチャンネルとなっています。
 ちょっと注意しなくてはいけないのは常に右から左に書き込まないといけないと言 う点です。先に左に数字を入れてから場所を指定しても、忌まし呈した場所には書き込ま れず、その前に入っていた場所に書き込まれます。これらインレットが複数あるオブジェ クトでは、一番左に何かを受け取った時点でオブジェクトが作動すると言うことです。憶 えておいて下さいね。
 poke~の真ん中には常に1が書き込まれていることになります。

 つまり、常にサンプル1にある数字が読み出さ れ、そして書き込まれていることになります。
 では書き込まれる数字はなんでしょうか?勿論最大値ですよね。そのためのパッチ ですもの。

 ここで>~、+~、そしてselector~の組み合わせが生きてきます。
 ビガー>~はロジカルオブジェクトとも呼ばれ、 常に0か1かで答えを出します。>~が示すように、左の数字と右の数字を比べるためのオ ブジェクトで、左が右より大きければ1、そうでなければ0を出力します。x > yという状態についての正誤の判断をするわけですね。

 左上に入っているのはabs~から出てきたシグナルです。そしてアブソルートabs~に入ってくるシグナルは先ほど行った再生されたサンプルファイルです。ア ブソルートは絶対値を作り出すMSPオブジェクトです。
 そして右上にはmaximumのシグナル1に書き込まれている数字が入っています。

 さてどういうことでしょうか?

 maximumバッファには「現時点での」最大値が書き込まれています。この「現時点」 が大事です。
 >~は「再生されたsampleからの数字>現時点での最大値」という比較を行い、もし もsampleからの数字の方が大きければ1、小さければ0を返します。

 1または0は+~によって1が足され、2か1となります。それがselector~の左側に 入っています。

 セレクターselector~は道順を作るスイッチのようなモ ノです。電車の路線変更機のようなモノだと思って下さい。selector~の後に続く数字が路 線の数で、ここでは2つになっていますね。そして、インレットが全部で3つあります。
 一番左側に1を受け取ると真ん中のインレットに入ってきたシグナルを左下から出 力し、2を受け取ると一番右のインレットに来たシグナルを出力します。そして0を受け 取ると出力をストップします。つまり、どの入力を使うかを選択できるわけですね。

 ここで真ん中(1の時出力)に入っているシグナルはindex~ maximumから来ている現 時点での最大値です。そして一番右(2の時出力)にはsampleから読み出された数字が 入っています。そして一番左側(選択)に入っている数字は>~から来ています!
 つまり、もしもsampleの数字が現時点の最大値より大きければsampleの数字が、現 時点の最大値の方が大きければ現時点での最大値がpoke~に送られると言うわけです。
 そしてpoke~は常にmaximumサンプル1に書込を行いますので、現時点での最大値が 更新されるわけですね。

 こうしてsampleバッファの頭から順番に、最も大きな数字を取り出して行くというわ けです。
 選ばれた最大値は若草色conversion、変換機能へと渡されます。

 /~は見ての通りわり算をするオブジェクトです。左側には1がsig~ 1.から、右側に は最大値がindex~ maximumより送られてきています。
 1を最大値で割ることで、1にするための定数を得るというわけです。この定数は *~の右側に定数として渡されていますね!

 さあ、これで最大値を元にノーマライズを行うための定数が得られました!!
 最後にサウンドファイルをもう一度読み込み、かけ算をしてやればノーマライズさ れたシグナルが得られます。もうちょっとですね!

 ここでこれまでの経過を全体図を見ながら整理しましょう。

 バッファが初期化されて(オレンジ)>>ノーマライズ対象サウンドの長さを得て(紫 上)>>それを元に対象が再生され(紫下)>>最大値が取り出され(青)>>定数が取 り出されかけ算をする準備ができた(若草)。
 残っているのは黄色と赤ですね。

 赤からまいりましょう。なぜならsfrecord~の説明そのものだからです。

 エスエフレコードsfrecord~はrecord~と言うオブジェクトの 直書き版。record~がバッファに書き込み(録音)を行うのに対し、sfrecord~は直接ハー ドディスクに録音をします。"open"を受け取ることで録音開始の準備が始まります。つま り、書き込むファイルの名前を指定するための選択ダイアログが現れます。
 そして1を受け取ると書込を開始し、0を受け取ることで書込を停止します。この パッチではトグルを使ってありますね。トグル憶えてますか?

 ああとうとう最後です!最後に黄色の部分を解説しましょう。counterとselect、そ してgate~です。

 カウンターcounterはその名の通り、数字を数えるオブ ジェクトです。一番左上に何かを受け取ると、そのたびに数を数えます。後に続く三つの 数字は数える方向(0なら正の方向に。0,1,2......・1なら負の方向に0,-1,-2....・2 なら最大値と最小値の間を行ったり来たり-1,0,1,2,1,0,-1,0...)、最小値、そして最大 値です。
 ここでは0 0 2ですので、最小値が0、最大値が2、数える方向は正の方向です。
 さらに、真ん中のインレットに1を受け取っていますね。このインレットは次に数 える数字を指定できます。
 例えば現在カウントが23だとします。ここで1を真ん中のインレットに送ると、 次に何かが左のインレットに入ったときには1からカウントが再開されると言うわけで す。

 スタート地点のbang!はまずこの1を真ん中のインレットに送り、それから左に bang!を送っています。つまり、開始時点では常に1が出力されているというわけです。
 この1はezdac~とselectとgate~に入っていますね。

 ezdac~は先号でも説明したように、ボタン型のMSPオンオフスイッチです。0で停 止。1より大きな数字で作動します。counterから出ている先の中では一番左にありますの で、それより右にあるselect, gate~へ1が送られてからMSPが作動します!

 セレクトselectは指定した数字を受け取るとbang!を送るオブジェク トです。ここでは1 2 0となっていますので、1を受け取って一番左からbang!が出力されています。
 このbang!がsampleバッファの再生(読み出し)を開始していますね!

 そしてゲートgate~ はselector~とそっくりの働きをします。今度は入力を選ぶのではなく、出力先を選ぶため のオブジェクトです。0で停止。1で一番左から、2で右から出力が行われます。入力さ れる数値は右のインレット。選択するのは左のインレットです。
 ここにcounterから1が送られていますね。右のインレットに入っているのは再生さ れたsampleバッファです。左のアウトレットは青へとつながっています。

 ということは、最初のbang! を押すと再生が開始され、読み出された数字は最大値を 取り出す為に青へと送られることになります。

 さてここで、line~に注目して下さい!右側のインレットからcounterに線がつながっ ています。赤い色で強調しておきました。

 先ほど説明したとおりline~は連続した数値を決められた長さの間に出力するオブ ジェクトですが、この作業が終了したことをbang!で知らせるようになっています。これが 右のアウトレットです。
 つまり、一度再生が終了した時点、言い換えれば最大値と定数が確定した時点で bang!がcounterに送られます。今度は何が出力されますか?
 そう。先ほどは1でしたので今度は2がcounterから出力されることになります!

 今度はselectとgate~は2を受け取ることになります。
 selectの左から2番目のアウトレットがbang!を出力し再び再生が開始されますが、 そのまえにsfrecord~へ"open"を、そしてトグルにbang!を送ります。トグルはオンの状態 になりますね。メッセージは右から順に送られますので、ファイルの指定、録音の開始、 そしてsampleバッファの再生と順に実行されることになります。

 再生されたsampleバッファはgate~の右側から出て(2を受け取っているからです ね!)*~の左側へ入ります。右側には既に定数が入っていますので、ここを通り抜ければ かけ算がなされて-1 < x < 1の幅にノーマライズされることになります。
 *~から出たシグナルはsfrecord~へと入り、ハードディスクに録音されてゆくので す!

 さてこれで終わりでしょうか?いやいや。まだですよね。なぜなら再生が終わった時 点でまたline~からbang!が送られるからです。

 counterは既に最大値2を送り出していますので、次に送られる数字は最小値0と言 うことになります。
 まずselectが0を受けて、左から3番目のアウトレットよりbang!を送り出します。 これはトグルに送られてトグルをオフにします。つまり、sfrecord~が録音を停止します ね。次にgate~が0を受けて出力を閉じます。そして最後にezdac~が0を受け取ってMSPス イッチをオフにします!

 これで全てが完了しました!!最初のbang!が送られてから最後まで、自動的に全て の動作が行われていますね!ノーマライズが完了しました!


 ここで中級の方にちょっとしたアドバイスです。

 この様な同じ事が数回行われるパッチにおいて、ファイルの長さが解った時点で metroに全体の長さを送り、それを各機能の起動合図として使うのをたまに見かけますが、 これは非常にまずいアイディアだということを憶えておいて下さい。metroは一定の間隔で bang!を送るのが目的ですので拍子を取ったり連続的な動作を促すのには向いていますが、 このパッチのように機能が順番に起動するようなパッチでは各機能の終了を受けて次の機 能が動作するようなアルゴリズムを組むのがより安定したプログラムを作る上で重要で す。
 個人的な経験ではmetro, send, receive, send~, receive~,valueに関してのむやみ やたらな使用はパッチの不安定な動作を引き起こすと感じています。 CPUに無駄な負担をかけやすいオブジェクトですので、なるべく使用は控えましょう。
 しかし一方で、見た目にはっきりと機能の解るパッチを作るのも大事だと言うこと も憶えておきましょうね。難しいですが、バランスを上手く取って下さい。


 さてさて、では緑色の部分は何をしているのでしょうか?順番にさ らっと解説しますね。

 このパッチは見ての通り、何かのサブパッ チだという事がわかります。なぜならインレットとアウトレットオブジェクトが使われて いるからです。
 そして左のアニメーションが、ノーマライズ開始から終了までのメインパッチの動 作を示したものです!どうでしょう?見やすいしコンパクトでしょ?
 これとは別に、先にも書いたように分析を始める前と書込が始まる前にはファイル の選択を行うダイアログが現れます。

 では順番に、こんなちょっとした表示を行うためのユーティリティーを解説します ね。

 それではまずダブルクリックを認識する パッチについてですが、これは思いの外簡単に作れます。ポイントはtimerオブジェクトと ifオブジェクトです。

 タイマーtimerはストップウォッチのようなオブジェクトで、と言う かホントにそのまんまで(笑)、左にbang!を受け取るとスタートし、右にbang!を受け取 ることでラップタイムをはじき出します。従ってこの例のようにbang!を両方につないでし まえば、bang!をクリックした間隔が解るというわけです。時間はミリセカンドで出てきま す。

 イフifは「もしも・・・なら・・・する」を実現するオブジェクトで す。書式としては"if 1.... then 2.... else 3......"となります。1の所に条件が入り、それが正しければ2 が実行され、そうでなければ3が実行されます。
 入力は$i1や$f1と言った記号であらわされます。メッセージボックスでは$1を使い ましたよね。これと一緒ですが、$と数字の間に整数か小数かを指定する i か f が入ります。数字はインレットを表し、左から順に第1インレット、第2インレッ ト・・・・となります。例えば "if $i1 == $i2 * $i3"とすると、「もしも第1インレットの整数が第2インレットと第3 インレットの積に等しければ」となります。

 積に等しければ・・・・何か懐かしい響きですね(笑)「かけた数」と一緒な ら・・・・とここ最近はずっと言っていたような・・・。

 まぁそれはともかく、ここでは$i1<200ですので、ボタンを押した間隔が200ミ リセカンド、つまり0.2秒よりも短ければbang!を送ることになります。つまりはダブル クリックのみを受け取るbang!が作れるわけですね!!

 次は「%分析が終了しました」と言う表示について ですが、これにはポップアップメニューPop-up menuというオブジェクトを使います。
 ポップアップメニューはいくつもの選択技をコンマで区切って入力することがで き、左上に対応する数字を受け取ると内容を表示します。また、内容を選択することで対 応する数字を出力することができます。

 ここでは"停止,%分析が終了しました,%書込が終了しました"と入力し、これを直接 counterとつないであります。counterのすぐ左ezdac~との間にアウトレットがあります が、これがつながっているのです。先の解説で1,2,0の順に何が起こるかやりました ね。

 選択技から選択する機能を主とするときにはNormalまたはScrollingモードを使用し ます。Normalでは右の図でモードを選んでいる時の様に選択技がリストになって現れま す。Scrollingではマウスをドラッグすることで選択技が切り替わります。
 数字を受け取って内容を表示する機能を主とするときにはLabelモードを使用しま す。選択することができなくなり、受け取った数字に従って内容を表示するのみとなりま す。外枠も消えて内容だけが文字として表示されるのでとても便利ですよ。

 さて最後に作業の進み具合を知らせる%の表示とバー の表示です。
 まずホリゾンタルバーの範囲を0から100に設定しておきます。次に100をサ ウンドファイル全体の長さで割ってやります。(send forbarによって送られていますね?)そしてline~オブジェクトから出てくる数値にこの定 数をかけてやれば、0から増加する数字がサウンドファイルの長さになったときに値は 100になりますね!これをそのままナンバーボックスとホリゾンタルバーに入力してい るというわけです。

 ここで出てくるのがexprオブジェクトとsnapshot~オブジェクトです。

 エクスプレッションexprはその名の通り「式」を作るためのオブ ジェクトです。特殊な書式(ifの書式にそっくりです)を使用することでとても複雑な計 算式を作ることが出来ます。
 if と同じく$i1,$i2などを使用してインレットを指定します。計算は+,-,*,/を初め として、sin(サイン), cos, tan, sqrt(平方根),log10(xxx)などなどCプログラミングで使えるものはほとんど 使えるようになっています。例えば2点間の距離を求める式は、

 expr sqrt ( (($i3 - $i1) * ($i3 - $i1)) + (($i4 - $i2) * ($i4 - $i2)) )......A ($i1,$i2)とB($i3,$i4)の距離を求める式

 という式で求めることができますね!ピタゴラスの三角形でしたっけ?最近使っても 誰の何ていう式だったか忘れ気味です(笑)
 この様に普通の+オブジェクトなどを使うとすごく長くなってしまう計算を一つのオ ブジェクトで行う事ができるのです。

 お次はスナップショットsnapshot~です。
 スナップショットはシグナルの数値を普通のMAXオブジェクトで使用できる数値に置 き換えてくれる変換オブジェクトです。左上にシグナルを受け取り、右上に変換するス ピードをミリセカンドで入力します。なぜそんなスピードがあるかというと、シグナル上 の数値はものすごく速いスピードで送られているので一定の時間をおいてシャッターを下 ろすみたいに数値を取り出していく必要があるのです。右上の数字に0を設定すると出力 を停止します。出力は小数です。

 さて最後に(とうとう最後です!)sndオブジェクト についての解説です。正直言ってこれは完全にお遊びの域ですので、使う方は相当に少な いかと思われますが(笑)一応解説しますね。

 sndはシステムリソースサウンドを使用する事ができるオブジェクトです。まだMSPが 無かった頃に録音しておいたサンプルを再生するにはこれを使うしかありませんでした。 MSPがある今でも、「パッチに効果音をつけたいけれども音声ファイルを一緒のフォルダに 入れておくのは面倒!!」という時には重宝するオブジェクトです。なぜならリソースサ ウンドのフォーマットであるsndファイルはパッチと一緒にコレクティブという形式で保存 できるのですが、Aiffファイルはできないからなのです!
 しかしくれぐれも演奏に使うようなパッチに使用するのは控えて下さいね。演奏中 に変な音がしたら困っちゃうでしょ?(笑)

 loadに続いて読み込むsndファイルを指定し、番号を与えることでその番号にあたる 音を再生します。そう!buffer~と違い、いくつもの音を取り込むこともできるのです。使 いようによってはものすごく便利かも知れないですね。モノのドラムマシンとか。

 ここではselectの0につながっています。つまり、ノーマライズが終了すると効果音 がするようにしてあるというわけです。さぁこれで終了だ!

 このnormalizerパッチはダウンロードすることが可能ですので、是非ダウンロードし て実際に動かしてみて下さい。MAXを持っていない方でも使えるようにアプリケーションと してセーブしてあるので、パワーマッキントッシュを持っていらっしゃる方であれば誰で も使えるはずですよ。ダウンロードはこちらからどうぞ!(normalizer1.0.sit.hqx/ 662519バイト)


 いやぁ、長かったですよね。お疲れさまでした。
 長くお休みさせていただいたことと、最近のストレスも相まって暴発でしょうか (笑)
 個人的にやることは一杯ありますので、関係がありそうなことは誌上に載せていき たいと思います。

 近況報告としましては・・・。
 そうそう。昨日26になりました(笑)
 オランダはアムステルダムでEUプロジェクトメンバー集結。コンサートとプレゼン テーションを行いました。Ethernetを使用してのアンサンブルをテスト。結構面白そうな のでさらに継続してリサーチ。
 7月に行われるソニックアートフェスティバルに出演予定。プロデュースを含めて プラン作成始まる。
 ノーリッジセンターでのギグはMAX+MSPのみを使用してのDJおよび即興ライブとして 出演。結構成功かな?楽器の輸送は相変わらず辛い。
 ついにRover 213Sはエンジンがかからなくなり三菱カリスマに乗り換えることにな りました。日本人返り咲きです。燃費を考えGDIに。
 最近カレーが旨いと感じる。こくまろカレーを売っている通販のサイトを発見。福 神漬けもあるのがニクい。
 食事ネタついでに-izeネタですがハンニバルという映画について。
 ハンニバルHannibalは前1世紀ごろのカルタゴの将軍の名前から来ているのかし ら。なにとって喰ってたんだろう。
 人肉食がテーマですよね。人肉食はCannibalと言うらしいです。西派駄洒落炸裂。 こちらはドラマでも何でもいつまでも続く。
 土曜夜8時から1970年代のコメディーを堂々と再放送するくらいですから。
 さらに友人に聞いたところcannibalizeと言う単語があり、動詞だそうですが「彼を 人肉食化する」と言った使い方はなく、純粋に「人の肉を喰う」という意味だそうです。
 人肉食嗜好は生まれつきのモノなのかしら。事故的に食べることはあっても常食化 するってのは聞いたこと無いし。

 いやぁ。まとまらないなぁ。
 ともあれ、次回は最も人気のある機能の一つでしょう!ループについて解説しま す。
 そういえばこの前UK初公開で「リング」を見てきました。今「リング2」もやって るみたいです。怖くて眠れない日々が続いたので、まだ「リング2」には行けないです が・・・・・・
 それでは。

目次へ


MAX i MUM 創刊に当たって
    MAX i MUM はIRCAMによって開発された音楽プログ ラミングソフトウエアMAXが人々に広く受け入れられるべく配信されます。

    従ってその内容はごく初歩的な各オブジェクトの使用法や用語解 説を含む一方、MAX及び周辺ソフトまた周辺機器によって実現されるインターフェースの紹 介を含みます。

    そしてまた上記に賛同する読者の参加はこれを歓迎致し ます。

    MAXは音楽により能動的立場で触れたいと考えている方々にごく理 論的かつ数学的思考に基づいて、言い換えるならば特殊技能である読譜 や楽器の演奏技能等に左右されずに音楽を創りだす機会を与えることができる数少ない優 れたソフトウエアであると考えています。

    創刊に当たり多くの読者がこれを機に作曲や編曲はては音響技能 に興味を持って下さることを、そして互いに楽しめる情報を交換する場となることを願い ます。

1999年7月1日
発行者 和田重人

 
目次へ


MAXについて 
        MAXは1986年後半にミ ラー・パケット氏が IRCAM (フランス国立音響音楽総合研究所) にて開発を始めた音楽のためのプログラミング言 語です。製品版MAXはデビッド・ジ カレリ (David Zicarelli) を開発メンバーに加えた後、1990年にOpcode System社から一 般向けに発売されました。 元はIRCAM内のパワフルX4シンセサイザーをコントロールするためのGUIによらな い言語でしたが、製品版ではGUIを効果的に取り入れることで独自のプログラミングスタイ ルを確立しています。MAXはC言語で書かれているのでCを用いて自分の用途にあったオブ ジェクトを作ることができますし、昔ながらのテキストベースでパッチをプログラムする ことも可能です。2000年にオプコード社の買収に伴ってMAX, MSP, Pluggo, Mを開発・販売する独立した会社、 Cycling'74社を設置しています。

  「MAXは従来のシーケンサーや和声付けをするプログラム(自動作曲ソフ ト)の限界にぶつかった人々に、グラフィックベースによる操作性を備えた音楽 プログラミング環境を提供するものである。」(ミラー・パケット, 1988年MAXリファレン スマニュアルより)



Program written by Miller Puckette and David Zicarelli, �1990-2001 Opcode Systems, Inc. / IRCAM / Cycling'74.

  ちなみに日本語版はカメオインタラクティブ改めメガフュージョン社 (Megafusion, Ltd) が輸入代理店です。
  またMAXはMIDI情報を取り扱う為に作られていますが、ISPW (IRCAM Signal Processing Workstation)が基であるMSPと言う機能拡張ソフトウエア(オブジェクト群) を導入することでマイク入力やサウンドファイルなどにも対応します。さらにPluggoとい う機能拡張ソフトウェアを導入するとVSTプラグイン作成の環境が手に入ります。同時に多 数のVSTプラグインも付属しています。これらも日本語版 はメガフュージョン社が輸入代理店です。英語版であればMAX+MSPがCycling'74のホー ムページからダウンロード購入できます。この場合Pluggoはタダで付いてきます。

MSP(c)1997 David ZicarelliムAll rights reserved

based on Pd by Miller Puckette, (c)1997 The Regents of the University of California
MSP and Pd are based on ideas in Max/FTS, an advanced DSP platform (c)IRCAM. Used by permission.


pluggo, Plug-in Manager, and this manual are copyright (c) 1999 Cycling'74.

pluggo uses the runtime environment for MSP.

Cycling '74
1186 Folsom Street
San Francisco, CA 94103 USA
[email protected]
http:// www.cycling74.com



奥付
本誌で使われている文章・画像等は全て著作権 により保護されています。
これの一部または全部を無断で複写(コピー)することは、 著作権法上での例外を除き禁止されています。
本誌から複写される場合には下記発行者メールアドレスあて に確認下さい。
一方でホームページへのリンクや誌上への広告及び投稿はこ れを歓迎いたします。
同様に和田重人まで御連絡を願います。
誌名:MAX i MUM 第十五号 3月
著者・発行者:和田重人
発行: Shigeto Wada Music Studio
発行者メールアドレス: [email protected]
発行日:2001年 3月 5日
COPYRIGHT : 2001(c)ShigetoWada

 
Hosted by www.Geocities.ws

1