DDD ディストーション駆動開発

エレキギターと音楽とRubyを愛するフルテンエンジニアのblog

pedaltrainっぽいRockBoard by Warwickで全部乗せボードを作った

RockBoard Stage 

 Warwickが作ってるpedaltrainっぽい奴、RockBoardを買いました。

早速手持ちの機材を並べてそれっぽく連結してみました。

結構贅沢なスペース遣いです。61cm*32cmの RockBoard Stageは自分には一回り大きかったようですね。。。

写ってないですがRubyRedBoosterの右にはSoulPressが繋がってます。

右下の白い奴は延長コードです。A3GPとTRIOと電源で3つもアダプター使うのでボードの下に延長コード潜らせて全部繋いでます。

連結プラグはEBSのが安くなってたのでイケベでたくさん買ってきました。

 

EBS PL-10 ペダルボード用連結プラグ
EBS
売り上げランキング: 45,219
EBS PL-20 ペダルボード用連結プラグ
EBS
売り上げランキング: 24,461

パッチケーブルはamazonで爆安だったこれ。

かれこれ半年くらい使ってますが一本もダメにならないし、この価格びっくりします。ありがたいです。

全部乗せボードは賃貸住宅ギタリストの友

外に持って行くのは難しいですが、こうやって全部乗せボード作っておくと家で練習するときに便利です。
ケース開いて延長コード一本繋いだら使いたいもの全部使えますからね。片付けも一瞬です。コードをケースに納めたらそのままクローゼットのすみっこにin!で終わり。
まあでも本当は↓みたいな感じでアンプ鳴らせて機材出しっぱにできる部屋を作りたいなあ。。。

 

持ち運びたいものは一杯あるけど、絞らないと持ち運べない。このままだと持ち運び用のサブボードとか作りたくなりそう。。。

WARWICK エフェクターボード RockBoard Stage with Gig Bag
Warwick
売り上げランキング: 60,429
 収納関連ではこの吊るすタイプのギターハンガー、おすすめです。クローゼットにギターしまっておけるのは便利です。ただ、ギター同士ぶつからないように、とか、くれぐれも服を引っ掛けてダメにしてしまわぬよう。。。

 

Step-to-Rails-Expert.rb#13

Step-to-Rails-Expert.rb#13

Todoアプリを実装してきて、みんなでレビューしようぜ、という楽しそうな勉強会があったので参加してみました

step-to-rails-expert-rb.connpass.com

何を作るか、それが問題だ

仕事以外でなんか作ったり、新しい技術を使ってみたりすることを「素振り」って表現したりしますよね。

私も素振りしたくて新しいもの色々使ってみたりするのですが、brew install hogehogeとかやって、ちょっと触ってみて、そのあとどうしようか、ってなって、そのままHDDの片隅に、、、みたいなことが結構あります。

普段の開発で使うRailsだと、あまり使ったことのない機能を試してみたいけど、ちょうど良いチュートリアルもないしなあ、、、という感じで、素振りしようにもバットがねえなあ、という気分でした。

なので、この勉強会見つけて、ちょうど良いバットを手に入れた気分です。

参加してみて

今回は作ってきたものをレビューする会だったので、3名のコードを順番にレビューしました。

コードレビュー早っ

5分〜10分くらいでコードチェックしていくのですが、他の参加者の皆さんのコードチェックのスピードがすごく早い。自分が機能確認とコード読んでる間にガンガンコメントがついていく。結局自分は全くコメント残せませんでした。日頃のコードリーディング量だったり、チェックの勘所を掴んでるかどうかの差だったりするのでしょうが、修行不足を痛感しました。

テーマ同じだけど、皆違う

認証系を作るのがお題にあったので、自分は反射的にdevise入れたんですが、clearrance、sorceryを使っている方がいて、なかなか面白かったです。この先要件が追加された時にどういう差が出るのか、ちょっと楽しみです。

思いっきり素振りしよう

上の認証系gemもそうですが、せっかくの機会だから無難に作るだけじゃなくてチャレンジしてみないともったいないですね。次回までに色々トライしてみます。

http://press.forkwell.com/post/166961994182/interview-amatsuda

press.forkwell.com

ガンガン素振りしてコード書かないと。

Ebisu.rbでLTしてきた

Ebisu.rb #15

RubyKaigi2017関連でLT募集って書いてあったので、Ebisu.rbでまたHanamiについてLTしてみました。

ebisurb.connpass.com

RailsのつらみとHanami

Omotesando.rbで話した時とテーマは同じですが、Railsの辛いところに効くアイデアをHanamiは持ってないかな、というところにフォーカスして話しました。

Model下にDBアクセスしないものを置くことのアレルギー

LTへの反応で、「Model下にActiveRecord::Base(ApplicationRecord)じゃないものを置くことにアレルギー反応を示す人、うちにもいるわー」というのがありました。

MVCフレームワークにおけるMって、「ビジネスロジック」って役割のはずなので、DBアクセスをしないクラスがあっても別にMVCから外れることはないと思うのですよね。

Hanamiだと、ファイルなどから取ってきたデータをModelで扱うこともできるみたいです。なかなか面白いですね。

app下にディレクトリガンガン作ればいいよね

LTに対して「Validatorはapp下にディレクトリ掘ってる」「FormObjectは便利」という反応を頂きました。

こういうカスタマイズができるのRailsの良いところだな、と思います。 デフォルト設定でさっさと作り始めることができて、大きくなりすぎたら、チームが納得するルールを設けて分けていけばいいんですよね。

app下にクラスを整理するディレクトリを作ることくらいは、世に名高いphpのオレオレフレームワーク的な「魔改造Rails」じゃないと私は思います。

ただ、チームが納得するルール、というのが一番難しいのですが、、、

 

発表スライドはこちらです

gitpitch.com

そろそろHanamiで何か作ってみないといかんですね、、、

Ebisu.rb

恵比寿界隈で月一くらいで開催されるRuby勉強会で、暫く休眠していたのが最近復活したのだそうです。恵比寿界隈だと参加しやすいのでありがたい。

 

ギターの形が違うとどれだけ音が違うのか ストラトキャスター / テレキャスター / ジャズマスター / SG / レスポール

ギターによって音が違う、って知ってはいるけど

ストラトとレスポールは、形も材質もピックアップも違うから音が違う。って知ってはいますけど、実際同じフレーズを弾いた時にどれだけ違うのかを試したことはないですよね。

 8種類ものギターで同じフレーズを弾いてる動画がありました。


[検証] ギターの種類によって曲の雰囲気は変わるのか

Fender Stratcaster

USAのアメデラと書いてあるので、ノイズレスピックアップが載ったやつですかね。

リードはフロントピックアップですが、リズムはリアじゃなくてセンターですね。

リードのフロントは結構硬い音がするなあと思ったのですが、ピッキング位置を単音弾く時とカッティング時で変えてるのですね。ワザが光りますね。

Fender Telecaster

多分オールローズウッドではなく、表裏にローズウッドが貼られてるタイプの、Fender Japanのテレキャスター。なので多分セミホロウではなくソリッドのはず。

ストラトに比べるとリズムの音がきらびやかで歯切れがいいですね。

カッティングのジャキジャキ感、リードの弾けるクリアな音色。かなり曲の雰囲気が変わりますね。

Fender Jazzmaster

リズムはセンターで弾いてるように見えます。

テレキャスほど硬くないけど、ジャキジャキ感もあって、ふくよかでパワフルに感じます。リズムの音凄く好みで気持ちいいです。なんとなく、ストラト、テレに比べるとリズムにリードがのまれてる感があるなあ、と思いました。

Freedom シンラインテレキャスター

アタック感はテレキャスっぽいですが、他はテレキャスっぽくないと感じました。全体的にまるーい音で、ストラトを太く、丸くしたような感じに聞こえました。

リードのアルペジオは凄く綺麗な響きですね。全体としては、音が丸くなったからか、曲の疾走感がやや失われた感じはします。

Orville SG

ジャスマスのトーンを絞ったらこんな感じになるんじゃ?という印象。

見た目は今までで一番ヤンチャなのに、圧倒的に大人っぽい音ですね。

なんというか、曲が、初夏から秋に季節が変わったような印象を受けました。

Tokai Lespaul type

低音弦の音の聞こえ方がこれまでのギターと全然違って感じました。特にリズムのアルペジオのところ、低音弦の「ポーン」という音の印象が強く、これまでと違うフレーズのように聞こえました。

ここまで聞いてからfender系の音を聞き直してみると、fender系がトレブリーすぎるんじゃないかという気がしてきます。最初聞いた時はそうは思わなかったんですけどね。。。

Yamaha ES-335 type

レスポールよりブライトな音質だったのが意外でした。ホロウボディだし、シンラインテレに近いのかと思ってましたが、リズムはフェンダー系を厚くした感じにも聞こえます。シャキシャキした感じもあり、リードも程よく甘くていいですね。

Paul Reed Smith McCarty

満を持して登場、な感じがあります。フェンダー系のヤンチャな感じからギブソン系のハムバッカーに変わった時、随分と落ち着いた音になってしまって、なんだか物足りなく感じてしまったんですが、PRSは第一印象で「あ、綺麗な音だ」と思わされる何かがありました。凄くバランスの良いギター、という印象です。

結論:当然ながら全然音は違う

 全然音が違う、なんとも当たり前な結論ですね。ただ、思っていた印象と違うギターも結構ありました。特にPRSはアメリカのラウド系バンドが使ってる印象があったので(Linkin Parkとか)、クリーンな音質で聞くと全然印象違いました。見た目がヤンチャなSGも結構万能型なのかな、という印象を持ちました。

あと、最初に聞いてしまったせいか、ストラトは感想が出てこなかったです。。。

ところで、、、 

この方高校生なんですか、めちゃくちゃ上手いですね。

演奏も上手いし音も気持ちいいし、動画も綺麗に編集してあるしすごいな。。。


[Original] August / MOT [一人バンド]

関連記事

木材が違うとどれくらい音が違うのか

木材以外の条件をほとんど揃えて検証してみると、随分違うことがよくわかります。

www.hizumizm.com

フレットの材質で音が変わるのか

ステンレスフレットは音が変わるだけでなく、長持ちするという利点があるので検討してみるのも良いですね

www.hizumizm.com

表参道.rbでHanamiについてLTした

表参道.rb #27 ~ RubyKaigiのおさらい

表参道.rbにお邪魔して、RubyKaigiで聞いたHanamiというRubyで作られたwebフレームワークについてLTしてきました。

omotesandorb.connpass.com

Hanamiが気になる

先日のRubyKaigi2017で、Hanamiに関する発表を聞き、その思想、設計、使い方に触れました。

rubykaigi.org

Rails以外のRuby製WAF、名前は聞いたことあるものの触ったことはなかったので、もしかしたらRailsのつらみを何とかするヒントがあるんじゃないかなーと思ってセッション聞いてました。

Railsのつらみは整理整頓の問題?

LTでは、Hanamiの設計思想に触れて感じたこととして、自分にとってのRailsのつらみは整理整頓の問題なんじゃないか、という話をしました。

例えばHanamiは、Railsよりも、置く場所に厳格で、以下のような感じになってます。

  • ModelはRepository(データアクセス)とEntity(ドメインロジック)に分ける
  • Controllerはactionごとにファイル(Classも)を分ける
  • ViewはTemplateとView(helper的なロジックを抱えておけるクラス)に分ける

RailsはActiveRecordが優秀すぎる故にModelが太りがちで、太ると管理が辛くなる(分厚いので読むのが辛い、いつのまにかよく似た違うメソッドが生えてる、validationのコンテクストが乱立するetc...)と私は感じていて、Hanamiの、Modelの中身を分けてしまうという方法は良いなと思いました。

ただまあそれくらいなら、「RailsやめてHanamiを使うぞー」という話ではなく、自分たちで整理整頓のルールを追加したらいいだけなのですよね。

しかしながら、ルールを追加しても既存のコードは勝手に片付いてはくれないし、みんなが納得するルールを決めるの、ってそれ自体が難しいですよね。

引き続きカオスに秩序をもたらすべくがんばります。

発表スライドはこちらです。

gitpitch.com

Hanamiとmountable engine

Hamamiはrailsでいうappディレクトリがapp"s"ディレクトリになっていて、一つのシステムの中に複数のアプリを持つことができる、という設計になってます。

このcontributorsというアプリだと、webとAPIを別々のアプリとして格納してます。

github.com

他にもwebアプリと管理画面、という感じで使えるんじゃないか、という話をしたら、mountable engine使えばRailsでも似たようなことできるよ、と教えて頂きました。

qiita.com

Railsアプリをまるっと追加できるというのは面白いですね。ここぞというところで使ってみたいです。ちょっとアイデアが湧きました。

表参道.rb

毎月第一木曜に表参道界隈のRubyistが集まるイベントです。もくもく会ではなく、テーマがあるタイプの集まりです。

わしわし作業するためにもくもく会に参加するのも好きですが、テーマがある勉強会は共通の話題で盛り上がりやすくていいですね。自分の問題意識と重なるときは情報収集のために参加するようにしてます。

omotesandorb.connpass.com

ALBIT A3GP 気難しいけどいい仕事する、いぶし銀の職人気質フロアプリアンプ

スタジオのアンプが使いこなせない

盆休みにKORG STUDIO EXTREME行って遊んできました。

今回借りた部屋はMarshallの1959 SuperLeadが置いてあったんですが、これが全然使いこなせなくて。

歪まないMarshall

http://www.korgstudio.jp/images/studio/Cst/1959SL.jpg

「初めて見た!カッコイイ!」って意気揚々とジャック刺してみたんですが、こいつMarshallのくせに全然歪まないんです。なにこれどうしたらいいのよ、inputをリンクしたらいいんだっけ、と暫く格闘してみたものの、、、面倒になって他のアンプに変えちゃいました。

後で知りましたが、この手のMarshallは低ボリュームでは歪んでくれないんですね。

サクッといい音出せるようになりたい

今回のSuperLeadは特別ですが、リハスタって、スタジオ、部屋によって置いてあるアンプが違うので、その場でパッといい感じの音を作るのって難しいし、時間かかっちゃいますよね。自分の音だけじゃなくて、バンドの中でのバランスとか考えると尚更面倒ですね。

プリアンプ持ち込めばいいじゃん

スタジオ入って音作るのが面倒なら、セッティング済みのマイプリアンプ持ち込めばかなり楽になるんじゃないかと思いまして、買ってしまいましたALBIT A3GP。予算の都合上A3GP MARKIIではなくA3GPを中古で購入。

ALBIT A3GP

前に買ったBlackStar HT-DUALみたいな、真空管搭載のフロアタイププリアンプです。BlackStar HT-DUALと比べるとA3GPはスペックがなかなかイケてます

  • 結構小さい
  • send/return、tuner outがついてる
  • ヘッドホンアウト、AUX INがついてる
結構小さい

よくあるエフェクター2.5個分くらいの大きさです。620gらしいです。BlackStar HT-DUALは結構ずっしりしていて1.2kgあったらしいので、重量にすると半分、大きさは一回り違う感じです。これだけ小さければ楽々持ち運びができますね。

send/return, tuner outがついてる

こんなに小さいのにsend/returnがついてます。TUBEMANはin/out/mixer outだけだし、HT-DUALはin/outだけなんで、小さいくせに高機能で凄いです。プリアンプってことは、こいつのoutに空間系並べてアンプのreturnに繋げば良さそうな気がしますが、わざわざsend/returnついてるってことは何か工夫があるのでしょうね。

ヘッドホンアウト、AUX INがついてる

ヘッドホンアウトがあって、さらにAUX付いてるフロアプリはかなり珍しいと思います、これが決め手でA3GPにしました。自宅練習仕様でとても有難いです。

AUX少しだけ難点があって、ボリュームは刺した機器の方で調整する必要があり、スマホを刺すとギターと音量バランス取るのが結構難儀です。

感想

全体的に気難しい

操作が難しいというより、色んなところでA3GP独特の扱いを求められます。

まず、inputとoutputが普通のエフェクターの逆です。(普通右in→out左ですが、A3GPはin左→send→return→out右になってます。)なので、ボードにこいつを入れると途端に取り回しが複雑になります。

音作りも独特です。Crunch/leadと、Clean/Driveのスイッチがあるので、Clean/Crunch/Leadの3チャンネルで使用できるのですが、音を太くするためにCrunch/Leadの音にクリーンの音を混ぜるという仕様になってます。これが結構曲者で、クリーンのvolを上げてるとDrive音が凄く変な音になります。submasterというツマミでDrive音とクリーンのバランスを変えることで調整ができますが、どれくらいクリーンを混ぜるのか、かなり悩みます。

あと、セッティングが変だとノイズが出ます。これは間違ったセッティングを行うとノイズが乗るという意味です。セッティングの仕方はマニュアルに書いてあるので、エイヤでやらず、手順に従って微調整を繰り返しましょう。

クリーンがとても綺麗

www.youtube.com

レッチリのScar Tissueのコピー、OD-2,OD-3とA3GPでこの音作ってるそうです。

真空管のクリーンのハリと厚みは素敵ですね。Drive切った完全なCleanも良いですが、ムスタングのフロントで、Crunch側のDrive、Gain低めにコーラスかけた音が最近のお気に入りです。

自分は、A3GPのCrunchではいい感じのクランチサウンドが作れなかったので、A3GPのCrunch側Gainは低めにしておいて、ブースター踏んでクランチ作ってます。

↓の動画はFenderのアンプにOD-1とかでクランチを作ってます。私のイメージするクランチってこういう感じですが、A3GP単体では作れなかったです。

www.youtube.com

Leadは歪みますが、BlackStar HT-DUALのようなモダンな歪みではないです。なんというかジミヘンとかDeepPurpleとかLED Zeppelinとかのイメージです。自分はGain低めでブースターで歪み足したりしてます。

ギンギンした歪みを作る場合Crunch側のDrive、Gain低めにMooer BlackSecretで作っちゃいます。メタル系やモダンな歪みを目指したプロダクトではないということだと思います。

今の所は、

  • Driveはonにしたままにする
  • クリーンはCrunch側で歪み軽めで作る
  • クランチはCrunch + ブースター
  • モダンな歪みはCrunch + ディストーション
  • Leadでクラシカルな歪み

という感じにすると、幅広く使えて楽しいなあ、と思ってます。

CROSSが面白い

左に回すとフェンダー風、右に回すとマーシャル風、という、HT-DUALにもあった感じのツマミです。どちらかに振り切っちゃうより、どのあたりが好みの音なのか探すのが楽しいですね。私は今のところ3時くらいのマーシャル風味が好きです

ムスタングだと6弦が暴れる

歪ませた6弦、相当気をつけて弾かないと「ぶおおおおん」というだらしない音になっちゃいます。ムスタングの弦のテンションが低いからなんじゃないかと勝手に思ってます。単に私の技術の問題だとは思うのですが、他のアンプやマルチエフェクターで弾いていて気になったことはなかった、という言い訳を添えておきます。

 

使い方まだまだ研究中です。良い方法見つかったら更新していきます。

 

ALBIT GUITER PRE-AMP ギタープリアンプ A3GP MARKII
ALBIT
売り上げランキング: 25,151

関連記事

ギター関連グッズのまとめ記事

www.hizumizm.com

 歪み系エフェクターのまとめ記事

www.hizumizm.com

  

Rails Developers Meetup #4の公開コードレビューを受けてみて

Rails Developers Meetup #4

先週開催されたRailsDM #4、残念ながら会場参加はできなかったのですが、twitterでずっと追っかけてました。

twitter.com

先日PullRequestした公開コードレビュー、イベント当日はコードチェックしてもらえなかったのですが、なんと翌日、レビューしていただくことができました!

全PRに対するレビュー動画

PR送った全員に、jnchitoさんが動画でコメントくださってます。すごい!! 

www.youtube.com

www.youtube.com

レビューのふりかえり

フィードバックは以下の通りでした。振り返ってみると、絶対やってはいけないことをがっつりやっちゃってて、非常に恥ずかしい。。。

不要なreturn

Answer by itume · Pull Request #17 · JunichiIto/train-ticket-rails · GitHub

ご指摘の通りですね。。。Rails始めたばっかりの時によく見たDoubleRenderErrorのトラウマ?でつい手癖で and returnしちゃうんですよね。全く気づいてなかったです。。。

降りられるかどうかの判定はGateがやるべきでは?

コメントいただいてる通り、現実世界で改札機と切符、どっちが判定してるのだろうか?って考えたら、そら改札機ですよね。なぜ切符の責務だと思ったのか。。。そのせいでGateとTicketを行ったり来たりしてて、気持ち悪いですね。。。

判定の責務を改札機にもたせて書き直したら、めっちゃスッキリ書けました。

Answer by itume · Pull Request #17 · JunichiIto/train-ticket-rails · GitHub

現実世界に存在しない概念をシステム内に作ると、大概失敗するんですよね。。。

やりきれない事に手を出しちゃいけない

これは今回の最大の反省点。

Arrayのindexに、index以上の意味をもたせてはいけない、という自分の経験上の鉄則があって、今回のコードのGate::FARESを見た時に、反射的に「これはあかんやつや」と思って、Hashで再定義しました。

Answer by itume · Pull Request #17 · JunichiIto/train-ticket-rails · GitHub

Hashならkeyが使えるので、Arrayのindexのようにうっかり変わっちゃったりせず、*1安心安心、、、とか思ってたんですが、今回触ってはいけない事になっているviewにGate::FARESがいるので、Gate::FARESを消すことはできなかったのです。

こうなると、ご指摘の通り、二重管理しないといけなくなっちゃうのですよね。悪夢ですね。

Gate::FARESを消せない、とわかった時点で、ここに手を出すべきじゃなかった、ということです。やり遂げられないリファクタリングはやっちゃいけないです。*2

公開コードレビューに参加してみて

参加して本当に良かったです。色々感じることがありました。

実際に自分でコードを書いて、人の回答とレビューをみたり、自分のコードに対するレビューを見るのと、当日のスライドやレビュー動画だけ見るのでは全然情報量が違ってくるんじゃないかなあ、と思います。

身の回りのシステムのロジックをぼんやり考えちゃう 

降りられるかどうかの判定はGateとTicketどっちの責務?って考えてから、身の回りのシステムってどうやって動いているんだろうか?ってぼんやり考えることが多くなりました。今まではwebのことばかり考えていましたが、世の中で動いてるいろんなシステムの設計について思いを巡らせるのも面白いですね。

思った以上にいろんなコードを書く人がいる

かなり自由度を狭めた中でのコーディングだったはずなのですが、蓋を開けたら十人十色で、一つとして同じ回答がないのには本当に驚きました。同じことやるメソッドの命名も人によってそれぞれだったり、commit messageの書き方もそれぞれですね。

中には「その発想はなかった(悪い意味で)」というコードもあったりしました。*3こういう課題をエンジニア採用時に出してみたら、その人のコーディングスタイルとか、物事の捉え方とかが見えて来るのでいいかもしれないですね。

結局FARESはどうしたらいいんだろうか

jnchitoさんもREADMEでコメントされていますが、Gateが持ってるべきではないような気はするのですよね。ただじゃあどうするよ?というと、なかなか難しいですね。

  • 定数だけのmoduleにする
  • プレーンなClassにする
  • modelのconcernにする
  • テーブル作ってActiveRecord::BaseのClassにする

といった手段が取れると思います。

一番しっくり来るのはテーブルにするパターンな気がしますが、たった2種類の料金のためにテーブル作るのは明らかにやりすぎですね。

アプリケーションの規模を考えると、一旦Gateに持ってもらう、は絶妙なさじ加減ですね。テストがあるから必要ならあとでなんとでもできますしね。

 

と、いう感じでふりかえりしつつ、コード修正してpushしたら、PR openのままだったから通知飛ばしてしまったみたいで。。。スイマセン。。。

 

参加してみて良い勉強になりました。

RailsDM運営の皆様、jnchitoさん、ありがとうございました。

rails-developers-meetup.connpass.com

*1:例えば160円の特別運賃ができた時、190の後ろに入れれないとindexが変わってテストが落ちるけど、順番に並べたくなっちゃう

*2:余談ですが仕事で触ってるコードは、志半ばで放置された「リファクタリング仕掛り中コード」がいくつかあり、多くが二重管理地獄と、忘れた時にやってくる地雷と化していてかなり辛い事になってます。。。そういうコードに限ってテスト書かれてないですしね。。。はあ。。。

*3:まあ自分のやつもそうですけどねorz