- 投稿日:2020-01-04T22:29:35+09:00
複数の MIDI ファイルを MP3 ファイルに一括変換する Shell Script
お正月ドラマを観ながら、昔作った MIDI ファイルを MP3 にして整理するためにシェルスクリプトを作りました。
MIDI ファイルは 2020 年現在、デフォルトで QuickLook できないので、MP3 の方が取り回しが楽ですね。ツールのインストール
Homebrew を使えるようにしておき、 Fluid Synth と ffmpeg をインストールします。
$ brew install fluid-synth $ brew install ffmpegSound Font を入れる
S. Christian Collins--Pianist, Composer, Virtual Instrument Designer から、「GeneralUser GS 1.471」 をダウンロードして伸長し、好きなディレクトリに配置します。
Sound Font は超絶平たくいうと MIDI 音源の種類の一つです。
質の良い Sound Font を使うと音が良くなります。
上のやつはライセンス的にも良さげなのでこれを使います。
$HOME/Music/SoundFonts/GeneralUser GS 1.471/GeneralUser GS v1.471.sf2
に配置しました。一括変換シェルスクリプトを作る
次の
create_mp3_from_midi.sh
ファイルを適当なディレクトリに配置して、実行権限を与えます。
$HOME/Music/create_mp3_from_midi.sh
に配置しました。「今見ているディレクトリ」にある
.mid
.MID
拡張子のファイルを一括で.mp3
に変換するスクリプトです。create_mp3_from_midi.sh#!/bin/sh soundfont="$HOME/Music/SoundFonts/GeneralUser GS 1.471/GeneralUser GS v1.471.sf2" echo "? SoundFont の場所は $soundfont !" for file in `\find . -maxdepth 1 -type f`; do filename=${file%.*} fileext=${file##*.} if [ $fileext = "mid" ] || [ $fileext = "MID" ]; then echo "? ${file}" fluidsynth -F "${filename}".wav -i "$soundfont" $file ffmpeg -i ${filename}.wav -f mp3 -b:a 192k ${filename}.mp3 rm ${filename}.wav echo "? ===== > ${filename}.mp3" fi done echo "? おしまい!"Sound Font を配置したパスを変えた場合は、
soundfont
変数に指定してください。実行権限を与えます。
$ chmod 755 create_mp3_from_midi.shスクリプトをどこからでも実行できるようにする
midimp3
コマンドを作って、どこでも実行できるようにエイリアスを作ります。$ echo 'alias midimp3="~/Music/create_mp3_from_midi.sh"' >> ~/.bash_profile $ source ~/.bash_profile実行!
midi ファイルがあるディレクトリに Terminal で移動して、
midimp3
コマンドを実行します。$ midimp3
参考
- 投稿日:2020-01-04T19:57:11+09:00
minikubeをmacOSにインストールする[2020年1月版]
去年の年末あたりからそろそろk8sから逃れられないと感じ始めたので2020年は遂にk8sを始めます。
ということで今年最初の記事はmacOSにminikubeをインストールするところまでです。macOSにminikubeをインストールする流れは以下の通りです。
- kubectlのインストール
- minikubeのインストール
kubectlのインストール
以下にドキュメントに従うと最新バージョンがインストールされることになるが
最初からkubectlもバージョン管理した方がいいと思うのでkubectlのバージョンを管理するツールを探すところから始めましょうhttps://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-macos
それで見つかった記事がこれ
https://medium.com/faun/using-different-kubectl-versions-with-multiple-kubernetes-clusters-a3ad8707b87b上記の記事で紹介されてたのが
asdf
asdf
asdfを使って最新の安定バージョン(2020年1月4日現在v1.17.0)のkubectlをインストールします。
※厳密にいうとasdfのkubectlプラグインを使ってになります。ちなみに最新の安定バージョンの情報はここにあります
https://storage.googleapis.com/kubernetes-release/release/stable.txt$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.6 $ echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc $ echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc $ source ~/.bashrc $ asdf plugin-add kubectl $ asdf install kubectl 1.17.0 $ asdf list kubectl 1.17.0とりあえずグローバルでv1.17.0を使うようにします
$ asdf global kubectl 1.17.0 $ kubectl version --short --client Client Version: v1.17.0minikubeのインストール
minikubeは単一のバイナリファイルとして用意されているのでhomebrewを使わずに以下のコマンドでインストールします
ちなみに2020年1月4月現在以下のコマンドだとv1.6.2のminikubeがインストールされます
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && sudo install minikube-darwin-amd64 /usr/local/bin/minikube $ minikube version minikube version: v1.6.2 commit: 54f28ac5d3a815d1196cd5d57d707439ee4bb392kubectlのバージョンとk8sのバージョンには以下のようの関係性があるので注意が必要です!!
※だからこそkubectlのバージョン管理が必要になってきますYou must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.2 client should work with v1.1, v1.2, and v1.3 master. Using the latest version of kubectl helps avoid unforeseen issues.
https://kubernetes.io/docs/tasks/tools/install-kubectl/#before-you-begin
つまり今回kubectlのバージョンがv1.17.0なのでk8sのバージョンはv1.16.x 〜 v1.18.xであるべきということです。
とりあえずminikubeのv1.6.2のk8sのバージョンは確認します
$ kubectl get nodes NAME STATUS ROLES AGE VERSION minikube Ready master 5m45s v1.17.0
単純に
minikube start
したらv1.17.0が入ってくれました。ただ少し調べてみると
minikube start
時にk8sのバージョンを指定することができるようなので以下のコマンドでminikubeで作られるk8sのバージョンをv1.17.0に指定しました$ minikube start --kubernetes-version v1.17.0 $ kubectl get nodes NAME STATUS ROLES AGE VERSION minikube Ready master 28m v1.17.0とりあえずmacOS上にk8sクラスタ環境ができました。
この環境を使って今後色々試していきたいと思います。
- 投稿日:2020-01-04T16:38:53+09:00
【Mac】FinderでMP3ビットレートや波形を確認する【QuickLook】
音mad制作のため. プレビュー.有志に感謝.
波形を表示する .wav
seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releasesQLWaveForm.qlgenerator
~/Library/QuickLook or /Library/QuickLook忘れずに
qlmanage -rダークモードだと見にくい。
有料
Audio Ease Snapper
https://www.audioease.com/snapper/おまけ
QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases
- 投稿日:2020-01-04T16:38:53+09:00
【Mac】FinderでMP3ビットレートや波形を確認する方法【QuickLook】
音mad制作のため. プレビュー, サムネイル. 有志に感謝.
前回: 【Mac】コマンドからMP3 m4aおよび音楽ファイルのビットレートを確認する方法QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releasesQLWaveForm.qlgenerator
ここにコピペ~/Library/QuickLook or /Library/QuickLook忘れずに
qlmanage -rQuickLookで波形を表示する .wav
seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releasesQLWaveForm.qlgenerator
ここにコピペ~/Library/QuickLook or /Library/QuickLook忘れずに
qlmanage -rダークモードだと見にくい。
有料
Audio Ease Snapper
https://www.audioease.com/snapper/
- 投稿日:2020-01-04T16:38:53+09:00
【Mac】Finderで波形やMP3ビットレート表示する【QuickLook】
音mad制作のため. プレビュー.有志に感謝.
波形を表示する .wav
seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releasesQLWaveForm.qlgenerator
~/Library/QuickLook or /Library/QuickLook忘れずに
qlmanage -rダークモードだと見にくい。
有料
Audio Ease Snapper
https://www.audioease.com/snapper/おまけ
QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases
- 投稿日:2020-01-04T16:38:53+09:00
【Mac】Finderで波形を表示する【Finder】
音mad制作のため.
seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releasesQLWaveForm.qlgenerator
~/Library/QuickLook or /Library/QuickLook忘れずに
qlmanage -rダークモードだと見にくい。
おまけ
QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases
- 投稿日:2020-01-04T16:38:53+09:00
【Mac】Finderで波形を表示する【QuickLook】
音mad制作のため.
波形を表示する .wav
seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releasesQLWaveForm.qlgenerator
~/Library/QuickLook or /Library/QuickLook忘れずに
qlmanage -rダークモードだと見にくい。
有料
Audio Ease Snapper
https://www.audioease.com/snapper/おまけ
QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases
- 投稿日:2020-01-04T10:55:41+09:00
HaskellでGUIやるためのgi-gtkのHelloWorld!まで(macOS,Stack)
はじめに
Haskellには他にもGUIを扱うためのライブラリが存在しますが、ここではgi-gtkのみ扱います。
筆者の環境
macOS Mojave 10.14.6
stack 2.1.3導入の前に
僕は死ぬほどエラーが出たのでFreeType2の最新版をダウンロードしておくと良いでしょう
参考にしたページ導入手順
stack new hogeで適当にhogeプロジェクトを作成します。
package.yamlに
dependencies: - base >= 4.7 && < 5 - gi-gtk - haskell-gi-baseと付け加え、プロジェクト側の操作は終了。ターミナルで以下のように入力し、
brew install gobject-introspection gtk+ gtk+3 export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfigいざビルド。
gitにあるのと全く一緒ですが一応サンプルコード
{-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} import Data.GI.Base import qualified GI.Gtk as Gtk main :: IO () main = do Gtk.init Nothing win <- new Gtk.Window [ #title := "Hello World!" ] on win #destroy Gtk.mainQuit #add win button #showAll win Gtk.mainこんな感じですね、お疲れ様でした。
参考記事
https://qiita.com/mimaburao/items/47135e641106e9ba7aa8
https://github.com/haskell-gi/haskell-gi
実は内容はほとんど同じなのですが、freetype2を入れるのと環境変数をぶち込むところで若干詰まったので共有しておきます。
- 投稿日:2020-01-04T09:38:09+09:00
【作業効率化】優秀すぎて課金してでも個人的に使ってるmacOSソフトウェアまとめ【5選】
はじめに
全部で5つのソフトウェアを紹介します。基本はmacOS対応のみです。Windowsのみなさん、ごめんなさい!
正直あまりにも便利なので、僕が代わりに身銭を切ってでも、皆さんに使ってもらいたいものだらけです。本記事は、特に駆け出しエンジニアの方に読んでいただきたいです。僕がこの業界に入ったときは、とにかく知らないものばかりで、便利なサービスとかも全然使ってなかった(というか、知らなかった)ので、そんな昔の自分のような方のお役に立てたら幸いです。
作業効率化、めっちゃ楽しいし気持ちいいですよ!
優秀すぎて課金してでも個人的に使ってるソフトウェアまとめ
alfred
最強のランチャーアプリです。もはやAlfredなしではパソコンがいじれません。すべての操作はAlfredに通じます。
僕は最初、Alfredの無料ユーザーだったのですが、下記記事を見て有料版に移行しました。Alfredを使いこなせてない君に!【Alfredの使い方完全版】
無料版でも恐ろしいほど便利なのですが、有料版はさらにその上を行きます。
有料版で追加される機能で強力なのが、
- クリップボード機能
- カスタマイズ可能なワークフロー
- スニペット機能
という3つです。ほかにも色々あるんですが、僕もまだ完璧に使いこなしているとは言えないので、ここらへんにしておきます。正直、Alfredの解説だけで3記事ぐらいかけますw
Alfredを実際に使ってる風景をお見せします。
計算機能(Alfredの値段を計算しているところですw)
1passwordと連携してるところ
スニペット機能(Macの⌘みたいなのが一瞬で打てます)
クリップボード機能(最大3ヶ月前まで遡れます)
辞書機能(Chrome内部だったら、拡張機能とか使えばいいんですが、それ以外のときにはめっちゃ重宝します)
と、こんな具合で、恐ろしく便利です。
サブスクではなく、一回こっきりで永久保証なのも魅力的ですね!料金: Version4が25ユーロ(3000円ぐらい)で、永久保存版が45ユーロ(5400円ぐらい)
1password
パスワード管理から永久におさらばできます。
Chromeの拡張機能を入れると、新規会員登録時は勝手に1passwordに登録してくれるようになりますし、ログイン時には1passwordを起動すれば、あとはボタンを押すだけで勝手にログインしてくれます。
ちなみに、1つ目に紹介したAlfredと組み合わせると、どこからでもショートカットで1passwordを呼び出せるようになるのでめっっっっちゃ楽です。
1PasswordとAlfredを連携してログイン情報の検索を行う方法
料金: 毎月2.99ドルBTT
BTT(Better Touch Tool)。地味なんだけど強力。カスタマイズ性は無限大です。
Macユーザーにはおなじみのトラックパッド、しかし、トラックパッドを効率よく使えている方はそんなに多くないのではないでしょうか。
BTTを使うことで、トラックパッドのジェスチャーをいくらでも改造できます。
実践動画
新規タブを開く→移動する→タブを削除する、という動作を行っているんですが、全部、トラックパッドの操作のみで完結しております。
⌘ + EでFinderが開けるように設定してあります。トラックパッドだけじゃなくて、ショートカット等のカスタマイズも自由自在なところがヒジョーに良いです。
BTTの購入方法に関しては↓の記事を見ていただくのがてっとりばやいです。
1. AppStoreからアプリを購入する方法
2. ライセンスを公式サイトから購入するという2つの方法がありますが、1のほうが圧倒的に安いので、そちらをおすすめします。360円です。後者だと、2000円ぐらいするので。
Mac神アプリ!BetterTouchTool(BTT)の使い方と導入方法を解説。
Dash
もうGoogle検索とはおさらば!コードを書くスピードが劇的に早くなります。
Dashも無料版と有料版があるんですが、無料版だと、キーワードを打ち込んでも、オンラインのドキュメントを取ってくるだけなので、遅いです。しかし、これが有料版になると、ドキュメントをダウンロードしてくれるため、一瞬でコードが検索できます。
自分でチートシートを作ることもできるため、カスタマイズ次第でいかようにもできます。もちろん、ドキュメントをただダウンロードするだけでもクッソ便利ですよ。
Bash, HTML, CSS, Ruby, Rails, Go, Python, JavaScript, React, Java、Cなどなど、だいたいのプログラミング言語・ライブラリ・フレームワークはカバーされてます!
一回買ってしまえば永久保証なので、余裕で元がとれるかと。
料金:3640円
デバッグとか、コードを調べる時間が半分ぐらいに短縮されるので、それを考えたら超お得ですね!Magnet
ウィンドウのサイズをいちいち手作業で変える、なんてことをやっているエンジニアの方はいませんよね?
もしそんな方がいましたら朗報です。Magnetがあれば、ウィンドウのリサイズは思うがまま、一瞬でできるようになります。「ウィンドウのサイズを変えるだけのアプリなんて地味すぎね?」とお考えの方もいるでしょう。ところがどっこい、これがめちゃめちゃ役立つんですよ。
ブラウザだけじゃなくて、ターミナルとか、エディターとか、Finderとか、なんでも大きさ変えられちゃいますからね。
料金も格安中の格安、たったの1.99ドルとなっております!
一個だけ注意書きをしておくと、Alfredの有料版を買うと、Divというワークフローが使えるようになります。Divを使うと、Alfredを立ち上げてコマンドを打てばリサイズができるので、Magnetはいらないといえばいらないです。
僕の場合は、Alfredより先にMagnetを使っていたことと、ウィンドウのリサイズだけに限定すると、やっぱりMagnetのほうが早い&簡単なので、AlfredのDivワークフローはほとんど使っておりません。
宣伝
想像以上にバズったので、今までに自分が書いた記事で「これはっ」というものを宣伝させていただきますw
【英語学習】海外の面白い・勉強になるプログラミング系Youtuberを5人&その他英語圏のおすすめ動画を一気紹介!【全部無料】ハマると時間が秒で過ぎる英語圏のサイトまとめ【英語学習】
さいごに
というわけで、今回は僕が普段使い倒している作業効率化ソフトを紹介しました。
インターンとして初めてエンジニアになったときは、全てが未知の世界で、ググってるだけで一日が終わる勢いで、作業効率化なんて考えている余裕もなかったです。
が、今ではzshrcをごりごり編集したり、エイリアスを設定したり、独自のシェルスクリプトを書いたり、サービスに課金したり、といつのまにかはるか遠くまで来ていました。
ほかにも、色々無料のツールだったりを試しており、日々、せっせと効率化を図っております。そのあたりも需要がありそうなら記事にしてみようかなと考えてみたり。
みなさんも 「作業効率化ハック」には一家言あると思いますので、それをシェアしていただけると喜びます!