20200104のMacに関する記事は9件です。

複数の MIDI ファイルを MP3 ファイルに一括変換する Shell Script

お正月ドラマを観ながら、昔作った MIDI ファイルを MP3 にして整理するためにシェルスクリプトを作りました。
midmp3.gif
MIDI ファイルは 2020 年現在、デフォルトで QuickLook できないので、MP3 の方が取り回しが楽ですね。

ツールのインストール

Homebrew を使えるようにしておき、 Fluid Synthffmpeg をインストールします。

$ brew install fluid-synth
$ brew install ffmpeg

Sound 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

midmp3.gif
できた!

参考

MacでMIDIファイルを再生&WAV出力する - Qiita

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

minikubeをmacOSにインストールする[2020年1月版]

去年の年末あたりからそろそろk8sから逃れられないと感じ始めたので2020年は遂にk8sを始めます。
ということで今年最初の記事はmacOSにminikubeをインストールするところまでです。

macOSにminikubeをインストールする流れは以下の通りです。

  1. kubectlのインストール
  2. 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.0

minikubeのインストール

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: 54f28ac5d3a815d1196cd5d57d707439ee4bb392

kubectlのバージョンと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クラスタ環境ができました。
この環境を使って今後色々試していきたいと思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Mac】FinderでMP3ビットレートや波形を確認する【QuickLook】

音mad制作のため. プレビュー.有志に感謝.

波形を表示する .wav
seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releases

QLWaveForm.qlgenerator

~/Library/QuickLook or /Library/QuickLook

忘れずに

qlmanage -r

ダークモードだと見にくい。

スクリーンショット 2020-01-04 16.36.58.png

有料
Audio Ease Snapper
https://www.audioease.com/snapper/

おまけ
QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases

スクリーンショット 2020-01-04 17.58.24.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Mac】FinderでMP3ビットレートや波形を確認する方法【QuickLook】

音mad制作のため. プレビュー, サムネイル. 有志に感謝.
前回: 【Mac】コマンドからMP3 m4aおよび音楽ファイルのビットレートを確認する方法

QuickLookでビットレートを表示する .mp3

jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases

QLWaveForm.qlgenerator
ここにコピペ

~/Library/QuickLook or /Library/QuickLook

忘れずに

qlmanage -r

スクリーンショット 2020-01-04 17.58.24.png

QuickLookで波形を表示する .wav

seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releases

QLWaveForm.qlgenerator
ここにコピペ

~/Library/QuickLook or /Library/QuickLook

忘れずに

qlmanage -r

ダークモードだと見にくい。

スクリーンショット 2020-01-04 16.36.58.png

有料
Audio Ease Snapper
https://www.audioease.com/snapper/

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Mac】Finderで波形やMP3ビットレート表示する【QuickLook】

音mad制作のため. プレビュー.有志に感謝.

波形を表示する .wav
seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releases

QLWaveForm.qlgenerator

~/Library/QuickLook or /Library/QuickLook

忘れずに

qlmanage -r

ダークモードだと見にくい。

スクリーンショット 2020-01-04 16.36.58.png

有料
Audio Ease Snapper
https://www.audioease.com/snapper/

おまけ
QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases

スクリーンショット 2020-01-04 17.58.24.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Mac】Finderで波形を表示する【Finder】

音mad制作のため.

seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releases

QLWaveForm.qlgenerator

~/Library/QuickLook or /Library/QuickLook

忘れずに

qlmanage -r

ダークモードだと見にくい。

スクリーンショット 2020-01-04 16.36.58.png

おまけ
QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Mac】Finderで波形を表示する【QuickLook】

音mad制作のため.

波形を表示する .wav
seagirl/QLWaveForm
https://github.com/seagirl/QLWaveForm/releases

QLWaveForm.qlgenerator

~/Library/QuickLook or /Library/QuickLook

忘れずに

qlmanage -r

ダークモードだと見にくい。

スクリーンショット 2020-01-04 16.36.58.png

有料
Audio Ease Snapper
https://www.audioease.com/snapper/

おまけ
QuickLookでビットレートを表示する .mp3
jordansaints/qlBitRate
https://github.com/jordansaints/qlBitRate/releases

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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

d5fcfe37a0c801e1e48c9a1053e3c38e.png

こんな感じですね、お疲れ様でした。

参考記事

https://qiita.com/mimaburao/items/47135e641106e9ba7aa8

https://github.com/haskell-gi/haskell-gi
実は内容はほとんど同じなのですが、freetype2を入れるのと環境変数をぶち込むところで若干詰まったので共有しておきます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【作業効率化】優秀すぎて課金してでも個人的に使ってるmacOSソフトウェアまとめ【5選】

はじめに

全部で5つのソフトウェアを紹介します。基本はmacOS対応のみです。Windowsのみなさん、ごめんなさい!
正直あまりにも便利なので、僕が代わりに身銭を切ってでも、皆さんに使ってもらいたいものだらけです。

本記事は、特に駆け出しエンジニアの方に読んでいただきたいです。僕がこの業界に入ったときは、とにかく知らないものばかりで、便利なサービスとかも全然使ってなかった(というか、知らなかった)ので、そんな昔の自分のような方のお役に立てたら幸いです。

作業効率化、めっちゃ楽しいし気持ちいいですよ!

優秀すぎて課金してでも個人的に使ってるソフトウェアまとめ

alfred

最強のランチャーアプリです。もはやAlfredなしではパソコンがいじれません。すべての操作はAlfredに通じます。
僕は最初、Alfredの無料ユーザーだったのですが、下記記事を見て有料版に移行しました。

Alfredを使いこなせてない君に!【Alfredの使い方完全版】

無料版でも恐ろしいほど便利なのですが、有料版はさらにその上を行きます。

有料版で追加される機能で強力なのが、

  1. クリップボード機能
  2. カスタマイズ可能なワークフロー
  3. スニペット機能

という3つです。ほかにも色々あるんですが、僕もまだ完璧に使いこなしているとは言えないので、ここらへんにしておきます。正直、Alfredの解説だけで3記事ぐらいかけますw

Alfredを実際に使ってる風景をお見せします。

計算機能(Alfredの値段を計算しているところですw)

スクリーンショット 2020-01-03 23.42.07.png

1passwordと連携してるところ

スクリーンショット 2020-01-03 23.44.22.png

スニペット機能(Macの⌘みたいなのが一瞬で打てます)

スクリーンショット 2020-01-04 0.16.12.png

クリップボード機能(最大3ヶ月前まで遡れます)

スクリーンショット 2020-01-04 0.14.57.png

辞書機能(Chrome内部だったら、拡張機能とか使えばいいんですが、それ以外のときにはめっちゃ重宝します)

スクリーンショット 2020-01-04 0.15.33.png

と、こんな具合で、恐ろしく便利です。
サブスクではなく、一回こっきりで永久保証なのも魅力的ですね!

料金: Version4が25ユーロ(3000円ぐらい)で、永久保存版が45ユーロ(5400円ぐらい)

1password

パスワード管理から永久におさらばできます。

Chromeの拡張機能を入れると、新規会員登録時は勝手に1passwordに登録してくれるようになりますし、ログイン時には1passwordを起動すれば、あとはボタンを押すだけで勝手にログインしてくれます。

ちなみに、1つ目に紹介したAlfredと組み合わせると、どこからでもショートカットで1passwordを呼び出せるようになるのでめっっっっちゃ楽です。

1PasswordとAlfredを連携してログイン情報の検索を行う方法

料金: 毎月2.99ドル

BTT

BTT(Better Touch Tool)。地味なんだけど強力。カスタマイズ性は無限大です。

Macユーザーにはおなじみのトラックパッド、しかし、トラックパッドを効率よく使えている方はそんなに多くないのではないでしょうか。

BTTを使うことで、トラックパッドのジェスチャーをいくらでも改造できます。

実践動画

新規タブを開く→移動する→タブを削除する、という動作を行っているんですが、全部、トラックパッドの操作のみで完結しております。
qiita_BTT_intro.gif

⌘ + EでFinderが開けるように設定してあります。トラックパッドだけじゃなくて、ショートカット等のカスタマイズも自由自在なところがヒジョーに良いです。
qiita_BTT_intro2.gif

BTTの購入方法に関しては↓の記事を見ていただくのがてっとりばやいです。
1. AppStoreからアプリを購入する方法
2. ライセンスを公式サイトから購入する

という2つの方法がありますが、1のほうが圧倒的に安いので、そちらをおすすめします。360円です。後者だと、2000円ぐらいするので。

Mac神アプリ!BetterTouchTool(BTT)の使い方と導入方法を解説。

Dash

qiita_DASH_intro4.gif

もうGoogle検索とはおさらば!コードを書くスピードが劇的に早くなります。

Dashも無料版と有料版があるんですが、無料版だと、キーワードを打ち込んでも、オンラインのドキュメントを取ってくるだけなので、遅いです。しかし、これが有料版になると、ドキュメントをダウンロードしてくれるため、一瞬でコードが検索できます。

自分でチートシートを作ることもできるため、カスタマイズ次第でいかようにもできます。もちろん、ドキュメントをただダウンロードするだけでもクッソ便利ですよ。

Bash, HTML, CSS, Ruby, Rails, Go, Python, JavaScript, React, Java、Cなどなど、だいたいのプログラミング言語・ライブラリ・フレームワークはカバーされてます!

一回買ってしまえば永久保証なので、余裕で元がとれるかと。
料金:3640円
デバッグとか、コードを調べる時間が半分ぐらいに短縮されるので、それを考えたら超お得ですね!

Magnet

qiita_Magnet_intro.gif

ウィンドウのサイズをいちいち手作業で変える、なんてことをやっているエンジニアの方はいませんよね?
もしそんな方がいましたら朗報です。Magnetがあれば、ウィンドウのリサイズは思うがまま、一瞬でできるようになります。

「ウィンドウのサイズを変えるだけのアプリなんて地味すぎね?」とお考えの方もいるでしょう。ところがどっこい、これがめちゃめちゃ役立つんですよ。

ブラウザだけじゃなくて、ターミナルとか、エディターとか、Finderとか、なんでも大きさ変えられちゃいますからね。

料金も格安中の格安、たったの1.99ドルとなっております!

一個だけ注意書きをしておくと、Alfredの有料版を買うと、Divというワークフローが使えるようになります。Divを使うと、Alfredを立ち上げてコマンドを打てばリサイズができるので、Magnetはいらないといえばいらないです。

僕の場合は、Alfredより先にMagnetを使っていたことと、ウィンドウのリサイズだけに限定すると、やっぱりMagnetのほうが早い&簡単なので、AlfredのDivワークフローはほとんど使っておりません。

宣伝

想像以上にバズったので、今までに自分が書いた記事で「これはっ」というものを宣伝させていただきますw
【英語学習】海外の面白い・勉強になるプログラミング系Youtuberを5人&その他英語圏のおすすめ動画を一気紹介!

【全部無料】ハマると時間が秒で過ぎる英語圏のサイトまとめ【英語学習】

https://hashimo-study.com/

さいごに

というわけで、今回は僕が普段使い倒している作業効率化ソフトを紹介しました。

インターンとして初めてエンジニアになったときは、全てが未知の世界で、ググってるだけで一日が終わる勢いで、作業効率化なんて考えている余裕もなかったです。

が、今ではzshrcをごりごり編集したり、エイリアスを設定したり、独自のシェルスクリプトを書いたり、サービスに課金したり、といつのまにかはるか遠くまで来ていました。

ほかにも、色々無料のツールだったりを試しており、日々、せっせと効率化を図っております。そのあたりも需要がありそうなら記事にしてみようかなと考えてみたり。

みなさんも 「作業効率化ハック」には一家言あると思いますので、それをシェアしていただけると喜びます!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む