「良いパパになりそう」とよく言われるけど相手がいない

音楽とギターが好きな理系院生が独学でプログラミングやるので覚書

EHX Pulser mod.(トレモロ)+d-verb mod.(リバーブ)を作る(製作編)

こちらの続き
halfrighter.hatenadiary.jp

続きを読む

EHX Pulser mod.(トレモロ)+d-verb mod.(リバーブ)を作る(設計編)

あけましておめでとうございます!!

修論地獄から解放されました。今月は久々のライブに心が踊ります。

さて、小生今までギターに関して
「リバーブなんて大体のアンプについてるからわざわざ自前で無くてもいいっしょ!」

という持論(怠慢)を持っていたのですが、そろそろ脱却を図りたい。というか次のライブで必要になりそう。また、エフェクター自作も2~3年やってなかった。

あ、じゃあこの際久々に作ってしまおう!

そして俺「ただ作っても面白くないな…何か別のエフェクター複合機にしてしまおう」
という悪い心が働いて、

「あぁ…社会人になる前にシャレオツなギタリストになりてえ」
という邪心が芽生え

トレモロかけてコード弾くとオシャレだな…」
という意味の分からないことを思い


タイトルの通りになりました。

まずリバーブ、「リバーブ 自作」でググると大体スプリングリバーブが出てくるけど、デジタルのリバーブユニット使うやつがいいなと思って調べる。にしてもリバーブユニット2000円もするのか…
こちらのブログを参考に、よく調べるとこれは
こちらのブログに書いてあるdepthの調整を可変にしてるっぽい。ということで俺も値は勘でモディファイ。

次にトレモロ
こちらは割と原理がシンプルなので
こちらのブログをほぼそのまま。リバーブより部品数多いのかよ
矩形波三角波を切り替えるスイッチが付いてるけど、果たしてこれを使い分けるほど俺が使いこなすのか怪しい…ので付けるか迷う…

で、上の2つを穴が15×25の一般的なユニバーサル基板に収めようと奮闘
トレモロは上のブログのをちょっと変えただけにして、問題は残りのスペースでリバーブの回路を納めること

空中配線や、抵抗を立てて入れるのを出来るだけ減らして収まるよう、夜中まで頑張って、回路図見ながらチェックして間違いがないか確認。そしてようやく完成
f:id:halfrighter:20170208123733j:plain

どう見てもユニバーサル基板でやるような代物じゃない…

※人間確認しても間違うことってあるじゃないですか。このレイアウト使ってもし動かなくても責任は取りません

2016年・個人的ベストトラック10選

今年もあと2日、記事を書き始めてた頃は12月頭だったのに気づいたら2017年も目前。急いで書いてます。
皆さんお忙しいでしょうか、小生は修論前なのにこんな記事を書く程度には焦ってないので多分死にます。
年末といえば、流行語大賞が発表されたり、各音楽誌が名盤ランキングを発表したり
www.ro69.jp

とにかく一年をまとめにかかる時期なので、俺も今年のベストトラックを書いていきます。
2000%完全自己満足な記事ですが興味のある方は

続きを読む

iTunes上では問題ないのにiPodだとアルバムの曲順がおかしくなる問題は、可変ビットレートに気を付けて

こんばんは、また久しぶりなのにまたプログラミング関係ない記事です。
プログラミングの方は、まあぼちぼちバイトしたり、C言語に関してはpaizaのDランク問題を解いたりして勉強はしてる(つもり)です。

突然ですが、iPodってアルバムの曲順おかしいことよくありますよね!!

続きを読む

AtomにLinter-phpを導入する

一か月以上更新してなかったらしいです。やる気無さすぎィ!!
しかも今回もまたC言語関係ないことです。

続きを読む

【バイト】仮想マシン環境を構築するのに穴にハマりまくった

PHPエンジニアのアルバイトの話

Macを買う以前はWindowsで、sshVPNで作業をしていた。
仮想マシン立てるのが面倒すぎる&当時の社員がMACerしかおらずWinでのやり方ようわからんということでそうなった経緯があり

Mac買ったから仮想マシンで作業できる!!
「Gitに書いてある通りにやればできるよ」と言われたけど

「分かってる前提」のものが多過ぎて結局勤務中に上司に聞きながらやっても上手くいかなかったので
結局今、今までとほぼ同じ状態で作業している。
台風で大学にも行けないし今リトライ


書いてある通りにやってもできない原因①: リポジトリ上でやってなかった

多分エンジニア初心者にも「お前それはバカだろ」と思われそう
Vagrant も、作業に必要なAnsibleも全部ルートディレクトリでインストールして作業していた。
これを上司に指摘されて「じゃあもう今日は仮想マシン諦めよう」となって今日に至るのですが


原因②: git clone だけじゃ必要なファイルが揃っていなかった

これも今考えると当たり前だった

$ php composer.php
Could not open input file: composer.phar

composerをインストールしてなきゃそりゃそうだわ…

$ curl -sS https://getcomposer.org/installer | php

これでできるらしいので、実行。以下

All settings correct for using Composer
Downloading 1.2.0...

Composer successfully installed to: /Users/[username]/febe2/composer.phar
Use it: php composer.phar

$ php composer.phar
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.2.0 2016-07-19 01:28:52

はい無事できました。


原因③: the requested PHP extension gmp is missing from your system.

これだよこれ

$ php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for openid/php-openid dev-master -> satisfiable by openid/php-openid[hoge].
    - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system.

なるほどこのgmpってのをインストールすればいいのかな?

$ brew install gmp
Warning: gmp-6.1.1 already installed

は????入っとるやんけ???と思ったけどこれじゃなく

$ brew install homebrew/php/php56-gmp

こっちらしい。おお、インストールされていく

が、解決せず。

とりあえず、lockファイルに"Provide"ってのを書くとスルーしてくれるという情報があったので
composer 導入をまじめに考える - Qiita
GIt cloneしたlockファイルを書き換える時点で100%間違っているけどやってみる。


おお!!comopser installが始まったぞ!!

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

    Now trying to download from dist

んん???
これは勝手にリトライしてどうにかなった模様

Creating the "app/config/parameters.yml" file
Some parameters are missing. Please provide them.

で大量の項目で入力を求められる
待って??わからないよ??

そしてエラー、warningが出る。

長くなりそうなので次回に続く。

ちなみにこの後

$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
    - openid/php-openid hoge requires ext-gmp * -> the requested PHP extension gmp is missing from your system.
    - Installation request for openid/php-openid dev-master -> satisfiable by openid/php-openid[hoge].

やっぱりだめじゃないですかー

ポインタを理解する

苦しんで覚えるC言語、通称「苦C」を最近読んでいる。
道中「はいはい他の言語でやった」と飛ばして、今Cの代名詞とも言えるポインタに入った。

今までやってきた言語(javascript,PHP)ではメモリなんて一切考えたことがなかったから、なかなか興味深い。
要するに、メモリの住所を指定するサムシングなのね。と何となーくの認識で読んでたら(ちゃんと理解せずに読み進めてたら意味ないぞ)この節で
引数による情報の受け渡し

C言語では、関数へ情報を渡す場合、必ず元の変数の値のコピーを渡します。
この様な方法を値渡しと呼び、元の変数の値が変更されないことが特徴です

えっそうなの!!?

ということで試しに簡単なコードを書いてみた。
関数で変数に10を足して表示させるだけ。

#include <stdio.h>

void func(int num);

int main(void)
{
    int num = 1;
    printf("%d\n",num); //実行結果1行目
    func(num); //↓の関数を実行。numに10足して結果表示
    printf("%d\n",num); //実行結果3行目

    return 0;
}

void func(int num)
{
    num += 10;
    printf("%d\n", num); //実行結果2行目
    
    return;
}

実行結果

1
11
1

わ、本当だ!mainの中の変数は変わってない!!

次に、上の苦Cの通り変数をポインタ変数に変えてみた。

#include <stdio.h>

void func(int *num); //引数宣言時にポインタ変数を宣言

int main(void)
{
    int num = 1; //ここは普通の変数でいい。らしい
    printf("%d\n",num);
    func(&num); //変数の”アドレス"を代入することでポインタ変数を代入になる。らしい
    printf("%d\n",num);

    return 0;
}

void func(int *num)
{
    *num += 10; //ポインタ変数を通常変数にして10足す
    printf("%d\n", *num); //通常変数を出力
    
    return;
}
1
11
11

おおー、ちゃんと上書きされてる。
ポインタの必要性わかってきたぞ。ポインタを制すればCを制すって聞いたことある(多分ない)し行ける気がするぞ。


と、思って読み進めたら配列だとまた挙動が変わってくるとか、、、
まだ道のりは長そうだ、これはまた次回