RSS Twitter Facebook


« 2017年05月 | 2017年06月のアーカイブ | 2017年07月 »

2017/06/29

NPD NGD NBD NAD NSD NDD


最近ギターエフェクター系の海外コミュニティなんかを覗くようになったのですが、NPDとかNGDとか言う謎の略語が頻出していて何のことやらわからなかったのですが、ようやく判明しました。

「New Pedal Day」、「New Guitar Day」、なるほど!!

この N*D という言い回しには幾つか種類があるのですがすべて「New *** Day」の略で「新しい楽器を手に入れたぜ!!」という報告で使われるようです。

そう言えばTwitterでは新しい楽器(楽器以外の場合もある)を手に入れた時には「New Gear!!」というのが流行りだったと思うのですが、ギターコミュニティにはギターコミュニティの文化があるのかなあ、とかw

NPD ... New Pedal Day 「新しいペダル(エフェクター)を手に入れたぜ!」頻出する
NGD ... New Guitar Day「新しいギターを手に入れたぜ!」頻出する
NBD ... New Bass Day 「新しいベースを手に入れたぜ!」ギター程ではないけど時々見る
NAD ... New Amp Day 「新しいアンプを手に入れたぜ!」時々見る
NSD ... New Synth Day 「新しいシンセを手に入れたぜ!」あまり使われない
NDD ... New Drum Day 「新しいドラムを手に入れたぜ!」あまり使われない

なお、NSD NDD については使われないことはないのですが多分あまり通じないと思います。大抵「NSD(New Synth Day)」みたいに注釈付きだったりします(それでようやくあーそういう事か、と理解したのですが)。


posted by g200kg : 12:15 PM : PermaLink

2017/06/26

やたら変数の多い連立一次不等式を解きたい


「太郎君は、1000円持ってりんごを3個とみかんを2個買ってきました。
りんごとみかんを3個ずつ買いたかったのですが1000円では足りませんでした。
みかん6個なら1000円で買えたのに。」

こんな奴。ただし、変数が200個ほどある。こういうのが得意なのはMathematicaだっけ? とか思いつつ取りあえず使えそうなMaximaとかWolframAlphaなんかを試しつつ、ちょっと求めてるものとは違うので、手作業で地道に進めていい感じに収束してきたかと思った所で解が存在しなくなるという致命的な間違いに気づいた。どうやらどこかで計算間違いをしてエラーが混入してそれが伝播したらしく、日曜日の半分くらいを費やしたデータがゴミクズと化した。

これはやはり人間が手作業でやるべき事ではなかった...と更に半日ほど反省しつつ、この問題を解くためだけのプログラムを書く。一般的に使えるように実装すると大変な事になるのはわかっているので、式の形式を固定して

x + 2*y + 3*z ... > 0

みたいな奴だけ。左辺は 数値 * 変数の積算、不等号は > または < のどちらかで右辺は定数。これをバカバカと逐次で入れていって変数の取り得る値を収束させるという感じのもの。



何でこんな事を、と言うとマルチエフェクターの各エフェクトのDSP消費量の見積もりなのだけどな。相当脱線している。
「OrangeLimとSweetDriveを入れたらもうShimmerReverbはDSPがフル状態で入んないや」
とか
「SeeetDriveをGreatMuffに変えたら入るな」
みたいな事態が頻発するので、それぞれの正確なDSP消費状況を把握しようとしてこのざまです。


多分真面目に実装すれば、何か使い道があるソフトになるかも知れないけど、とりあえずいいや。
http://www.g200kg.com/demo/inequalitysolver/

posted by g200kg : 9:23 PM : PermaLink

2017/06/21

ZOOM パッチエディタが MSシリーズ3機種に対応


思いのほか手こずったのだけど、ZOOM MS用のパッチエディタが MS-60Bにも対応し、これで MS-50G / MS-60B / MS-70CDR の3機種対応になりました。

MS-50G と MS-70CDR は実はデータの形式がほとんど同じで多分も 60B も似たようなものだろうと思っていたのですが、50G と 70CDR は同時使用エフェクト数が6なのに対して 60B は4、これに起因してデータフォーマットが少し違います。

詳細はここに書いてあります : https://github.com/g200kg/zoom-ms-utility/blob/master/midimessage.md

なぜわざわざ変えたのかはいまいちわかりません。エフェクト数が4なのはDSP能力とかに違いがあるのか? とも思ったがそうでもなく、他の機種にも入っている同じエフェクトを処理できる数で比較しても同じようです。ベース用だから4つもあれば良いだろ、的な?

後少し気になる所は
* 古いバージョンのファームでもちゃんと動くか未検証、本体をアップデートすると戻せないのだよ
* オートセーブ周りの挙動が本体とリンクしない。このあたりの状態が取れるかはまだ不明
* 新しいエフェクトは重い奴が多くて「DSPフル」になりやすいのでこのあたりを定量的に表示できんかな

Zoom MS-50G / MS-60B / MS-70CDR Patch Editor

posted by g200kg : 11:16 PM : PermaLink

2017/06/15

ZOOM MS-50G/70CDR パッチエディタ


ちょっと何やってんだかという気もしなくはないのですが、ZOOM用パッチエディタが、ついにMS-50GだけじゃなくてMS-70CDRにも対応しました。
最新版にファームをアップデートすると両者のエフェクトにかなりの重複が出てきますので、どちらにも入っているエフェクトに関しては、パッチをファイルに落としてから他方に読み込めば、両者の間でパッチを交換する事も可能です。

後はどこかにMS-60Bは落ちてないかな...

https://g200kg.github.io/zoom-ms-utility/

posted by g200kg : 4:29 PM : PermaLink

2017/06/14

WebAudioAPI初心者向けハンズオン#2


先週日曜日 6月11日にWebAudioAPI初心者向けハンズオン#2が開催されました。昨年11月に開催された第一回と同じくプログラムを打ち込んで音を出しつつちょっとした加工をするあたりまでの内容をテキストに従って進める形式です。

Web Audio API 初心者向けハンズオン #2

主催はWebAudio.tokyoとかWebMusicDevelopersJPとかxsoundsjsとかWebAudioAPI関係でごにょごにょやってる人たちが適当に集まった感じです。会場は渋谷ヒカリエ17Fのイケてるオフィスをレバレジーズ様が提供してくださっています。

という事で私もメンター兼デモ担当をやってきましたが、当日のデモを録画してくれていましたので貼っておきます。WebAudio API、Web Speech Synthesis API、WebGL + Shader program、WebMIDI APIでエフェクターを制御という思いつくものをごった煮にして使っています。このプログラムは、いつも増築したりしながらドキュメントがまるで整備されていないので役に立たないかも知れませんが一応GitHub上に置いてあります。

https://github.com/g200kg/LiveBeats

なおテキストは@ryoyakawaiさんがまとめたものが公開されていますので、ハンズオンに参加できなくても、初めてWebAudio APIを触ってみるにはちょうど良い教材になると思います。

https://webmusicdevelopers.appspot.com/codelabs/webaudio/index.html

posted by g200kg : 3:30 PM : PermaLink

2017/06/01

ZOOM MS-50G のMIDIメッセージ詳細



さて、ZOOMのエフェクター、MS-50GのMIDI制御ですが現在こんな感じで、パッチの入れ替えや保存、エフェクトの編集など一通りできるようになっています。

https://g200kg.github.io/zoom-ms-utility/


問題のMIDIコマンドですが、PrgChgでパッチの切り替えができるというのはかなり知られているようなのですがそれ以上はなかなか判明せず、ちょっと難しいかと思っていた所、ガレスタさんのDIY日記に突っ込んだ情報があると教えていただいたのを手がかりに、詳細まで踏み込んで調べてみました。

PrgChgと一部にCtlChgが使われている以外はすべてSysExです。

パッチのやり取りをする際のメインとなる 146bytesのメッセージには全てのエフェクトのパラメータとパッチ名が含まれていて、この構造が肝心な部分なのですが、これがちょっと困った事に各パラメータのビットがバラバラに切り刻まれて配置されています。隠すためにスクランブルしているという風でもなく、見た感じでは機能の増築を繰り返した結果なのですかね?

基本的にこのデータを送り込むとエフェクトの種類、パラメータの指定、Effect/Bypassの切り替え、画面に表示されるエフェクトの番号などをまとめて設定できます。

146bytesの表が下の方にありますが、この中で「1p2b3」のような表記になっているのは、
[エフェクト番号]p[パラメータ番号]b[ビット]

を表し、パラメータ値を構成するビットを表します。ここで、エフェクト番号は 0-5、パラメータ番号は3ページ分で 0-8 となります。

表の抜けている部分等にもまだ詳細不明な部分も残っていますが、取りあえずここまで。

ZOOM MS-50G MIDI Mesasges

This is a non-official document based on a personal and non-strict experiments.

Short messages

Patch Select

[0xc0,pp] : Program Change

Select a patch. pp=patch number (0-49)

Tuner Mode On/Off

[0xb0,0x4a,mm] : Control Change CC#74

Tuner Mode On/Off. mm<64:off, mm="">=64:on

System Exclusives

Identity Request

[0xf0,0x7e,0x00,0x06,0x01,0xf7] : Identity Request

This is a MIDI Universal System Exclusive message, 'Identity Request'. MS-50G returns ID code and version number : [0xf0,0x7e,0x00,0x06,0x02,0x52,0x58,0x00,0x00,0x00,0x33,0x2e,0x30,0x30,0xf7]

Send Patch

[0xf0,0x52,0x00,0x58,0x28,effect1,effect2,...effect6,patch-name,0xf7] (146bytes)

Write 146bytes patch-data to current program. It consist of effect1-6 parameters and patch-name. Details are described later.

Request Patch

[0xf0,0x52,0x00,0x58,0x29,0xf7]

Request patch-data of current program. it returns 146 bytes patch-data (same as Send Patch command)

Parameter Edit

[0xf0,0x52,0x00,0x58,0x31,nn,pp,vvLSB,vvMSB,0xf7]

Parameter value edit. nn=effect#(0-5) pp=param#(0-10) vv=value. It seems effective only for effect1-3
value range is depends on each effect.

pp=0 : switch Effect/Bypass vv=0:off / vv=1:on.
pp=2 : page1-knob1
pp=3 : page1-knob2
.
.
pp=10: page3-knob3

Store Patch

[0xf0,0x52,0x00,0x58,0x32,0x01,0x00,0x00,0x2c,0x00,0x00,0x00,0x00,0x00,0xf7]

Force store to memory. Message [Storing...] is displayed

Request Current Program

[0xf0,0x52,0x00,0x58,0x33,0xf7]

Request current bank & program. MS-50G returns bank select and program change :
[0xb0,0x00,0x00, 0xb0,0x20,0x00, 0xc0,pp]
here the pp=program#(0-49), bank is always 0

Parameter Edit Enable

[0xf0,0x52,0x00,0x58,0x50,0xf7]

Parameter value edit enable. This is needed before Parameter Editing.

Parameter Edit Disable

[0xf0,0x52,0x00,0x58,0x51,0xf7] Parameter value edit disable.

??? :

[0xf0,0x52,0x00,0x58,0x60,0xf7]

Not yet sure

Patch Data Format

Patch-data is MIDI system exclusive data. It starts with F0 and ends with F7 consist of :

F0 52 00 58 28.. eff1 eff2,... eff5 eff6 patchName F7

eff1 to eff6 include the on/off state, type of each effect, parameter values. bit arrangement is scrambled rather than fixed format

In the following table, the notation like '1p2b3' means [Effect number(0-5)] p [Parameter number(0-8)] b [bit].
Other notation means :
0t ... Effect1 Type Bits
0EfOn ... Effect1 On/Off
c0 ... Current Effect Focus 6-n => 0-5
n0 ... Max Effect Number
N0-N9 ... Patch Name (max 10char)

OffsetData
00xF0
10x52
20x00
30x58
40x28
b7b6b5b4b3b2b1b0
500t0p0b20p0b100p1b50p2b0
600t0t0t0t0t0t0EfOn
700t0t0t
80
900p0b10p0b00t0t0t0t0t
1000p0b90p0b80p0b70p0b60p0b50p0b40p0b3
1100p1b40p1b30p1b20p1b10p1b00p0b11
1200p1b100p1b90p1b80p1b70p1b6
1300p2b80p3b30p4b30p5b30p6b30p7b3
1400p2b70p2b60p2b50p2b40p2b30p2b20p2b1
1500p3b20p3b10p3b00p2b100p2b9
1600p4b20p4b10p4b00p3b70p3b60p3b50p3b4
1700p5b20p5b10p5b00p4b70p4b60p4b50p4b4
1800p6b20p6b10p6b00p5b70p5b60p5b50p5b4
1900p7b20p7b10p7b00p6b70p6b60p6b50p6b4
2000p7b80p7b70p7b60p7b50p7b4
2100p8b71t
220
230
2400p8b60p8b50p8b40p8b30p8b20p8b10p8b0
250
2601t1t1t1t1t1t1EfOn
2701t1t1t
28
2901p0b21p0b101p1b51p2b01p2b81p3b31p4b3
3001p0b11p0b01t1t1t1t1t
3101p0b91p0b81p0b71p0b61p0b51p0b41p0b3
3201p1b41p1b31p1b21p1b11p1b01p0b11
3301p1b101p1b91p1b81p1b71p1b6
3401p2b71p2b61p2b51p2b41p2b31p2b21p2b1
3501p3b21p3b11p3b01p2b101p2b9
3601p4b21p4b11p4b01p3b71p3b61p3b51p3b4
3701p5b31p6b31p7b31p8b7
3801p5b21p5b11p5b01p4b71p4b61p4b51p4b4
3901p6b21p6b11p6b01p5b61p5b51p5b4
4001p7b21p7b11p7b01p6b71p6b61p6b51p6b4
4101p7b81p7b71p7b61p7b51p7b4
420
4401p8b61p8b51p8b41p8b31p8b21p8b11p8b0
430
4502t2p0b22p0102p1b5
460
4702t2t2t2t2t2EfOn
4802t2t2t
490
5002p0b12p0b02t2t2t2t2t
5102p0b92p0b82p0b72p0b62p0b52p0b42p0b3
5202p1b42p1b32p1b22p1b12p1b02p0b11
5402p1b102p1b92p1b82p1b72p1b6
5302p2b02p2b82p3b32p4b32p5b32p6b32p7b3
5502p2b72p2b62p2b52p2b42p2b32p2b22p2b1
5602p3b22p3b12p3b02p2b102p2b9
5702p4b22p4b12p4b02p3b72p3b62p3b52p3b4
5802p5b22p5b12p5b02p4b72p4b62p4b52p4b4
5902p6b22p6b12p6b02p5b72p5b62p5b52p5b4
6002p7b22p7b12p7b02p6b72p6b62p6b52p6b4
6103t2p8b7
6202p7b82p7b72p7b62p7b52p7b4
630
640
6502p8b62p8b52p8b42p8b32p8b22p8b12p8b0
6703t3t3t3t3t3t3EfOn
660
6803t3t3t
6903p0b23p0b103p1b53p2b03p2b83p3b3
700
7103p0b13p0b03t3t3t3t3t
7203p0b93p0b83p0b73p0b63p0b53p0b43p0b3
7303p1b43p1b33p1b23p1b13p1b03p0b11
7403p1b103p1b93p1b83p1b73p1b6
7503p2b73p2b63p2b53p2b43p2b33p2b23p2b1
7603p3b23p3b13p3b03p2b103p2b9
7703p4b33p5b33p6b33p7b3
7803p4b23p4b13p4b03p3b73p3b63p3b53p3b4
7903p5b23p5b13p5b03p4b73p4b63p4b53p4b4
8003p6b23p6b13p6b03p5b73p5b63p5b53p5b4
8103p7b23p7b13p7b03p6b73p6b63p6b53p6b4
8203p7b83p7b73p7b63p7b53p7b4
830
840
8503p8b74t4p0b24p0b10
8603p8b63p8b53p8b43p8b33p8b23p8b13p8b0
870
8804t4t4t4t4t4t4EfOn
8904t4t4t
900
9104p0b14p0b04t4t4t4t4t
9204p0b94p0b84p0b74p0b64p0b54p0b44p0b3
9304p1b54p2b04p2b84p3b34p4b34p5b34p6b3
9404p1b44p1b34p1b24p1b14p1b04p0b11
9504p1b104p1b94p1b84p1b74p1b6
9604p2b74p2b64p2b54p2b44p2b34p2b24p2b1
9704p3b24p3b14p3b04p2b104p2b9
9804p4b24p4b14p4b04p3b74p3b64p3b54p3b4
9904p5b24p5b14p5b04p4b74p4b64p4b54p4b4
10004p6b24p6b14p6b04p5b74p5b64p5b54p5b4
10104p7b34p8b75t
10204p7b24p7b14p7b04p6b74p6b64p6b54p6b4
10304p7b84p7b74p7b64p7b54p7b4
1040
1050
10604p8b64p8b54p8b44p8b34p8b24p8b14p8b0
1070
10805t5t5t5t5t5t5EfOn
10905p0b25p0b105p1b55p2b05p2b8
11005t5t5t
1110
11205p0b15p0b05t5t5t5t5t
11305p0b95p0b85p0b75p0b65p0b55p0b45p0b3
11405p1p45p1b35p1b25p1b15p1b05p0b11
11505p1b105p1b95p1b85p1b75p1b6
11605p2b75p2b65p2b55p2b45p2b35p2b25p2b1
11705p3b35p4b35p5b35p6b35p7b3
11805p3b25p3b15p3b05p2b105p2b9
11905p4b25p4b15p4b05p3b75p3b65p3b55p3b4
12005p5b25p5b15p5b05p4b75p4b65p4b55p4b4
12105p6b25p6b15p6b05p5b75p5b65p5b55p5b4
12205p7b25p7b15p7b05p6b75p6b65p6b55p6b4
12305p7b85p7b75p7b65p7b55p7b4
1240
12505p8b7c1
1260
12705p8b65p8b55p8b45p8b35p8b25p8b15p8b0
1280
1290c2
1300n2n1n0c0
1310
132N0
1330x00
134N1
135N2
136N3
137N4
138N5
139N6
140N7
1410x00
142N8
143N9
1440x00
1450xF7

posted by g200kg : 8:46 AM : PermaLink


« 2017年05月 | 2017年06月のアーカイブ | 2017年07月 »

g200kg