2020年12月22日火曜日

Minetestで画角の角度を設定する

Minetestではminetest.confにfovパラメータを指定することで、画角の角度を指定する事ができます。
画角を広くすることで見える範囲は広がりますが、端が歪んで違和感のある画像になります。

〇minetestでfovを120に設定した画面

設定手順

1. 実行しているMinetestがあれば、いったん終了します。

2. Linuxでは~/.minetest/minetest.confをエディタで開きfov=70など、30-160度の範囲で設定します。

3. Minetestを再び起動します。

関連情報

・Minetestに関する情報はこちらを参照してください。

2020年12月21日月曜日

pythonとpysndfxで音楽ファイルに残響効果をつける(pipenv版)

pysndfxで音楽ファイルに対して様々な音響効果をつける事ができます。

pysndfxで音楽ファイルに残響効果をつける手順

1.pipenvのインストール
pipenvをインストールしていない場合は、以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install python3-pip python3-distutils python3-dev

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. pysndfx用の仮想環境作成
pipenvを使用する場合は以下のコマンドで、pysndfx用の仮想環境を作成します。
sudo apt-get -y install sox

mkdir -p ~/pysndfx

cd ~/pysndfx

pipenv --python 3.8

pipenv install pysndfx

pipenv shell

3. サンプルプログラムの作成と実行
以下のスクリプトを保存します。ファイル名は適宜変更してください。
reverb.py
from pysndfx import AudioEffectsChain

# 残響効果
fx = (
    AudioEffectsChain().reverb(reverberance=50,
        hf_damping=50,
        room_scale=90,
        stereo_depth=100,
        pre_delay=20,
        wet_gain=0,
        wet_only=False)
)

# 効果の処理と保存
fx("./yoursong.wav", "./reverb.wav")

以下のコマンドでスクリプトを実行します。
python reverb.py

関連情報

・pysndfx(python-audio-effects)のgithubリポジトリ
https://github.com/carlthome/python-audio-effects

・pysndfxに関する他の情報は以下のまとめページを参照してください。
python用音響効果モジュールpysndfxのまとめ

pythonとpydubで音楽ファイルの長さを秒数を取得する

pydubで音楽ファイルに対して様々な編集をすることができます。

pydubで音楽ファイルの長さを秒数を取得する手順

1. pydubをインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとpydubで音楽ファイルのボリュームを変更する(pipenv版)
pythonとpydubで音楽ファイルのボリュームを変更する(poetry版)

2. サンプルプログラムの作成と実行
duration_secondsで曲の長さを秒数で取得できます。ファイル名は適宜変更してください。
duration.py
from pydub import AudioSegment

af = AudioSegment.from_mp3("yoursong.mp3")
print("duration(sec): {}".format(af.duration_seconds))

以下のコマンドでスクリプトを実行します。
python  duration.py

関連情報

・pydubのgithubリポジトリ
https://github.com/jiaaro/pydub

・pydubに関する他の記事は以下のまとめページを参照してください。
pydubまとめ

DockerでBlockbenchとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

Blockbenchで3Dモデルの編集を行うことができます。DockerでBlockbenchがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇Blockbenchの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfceblockbench .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
  && wget https://github.com/JannisX11/blockbench/releases/download/v3.7.4/Blockbench_3.7.4.deb \
  && dpkg -i Blockbench_3.7.4.deb \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfceblockbench

関連情報

・Blockbenchに関する他の記事は、こちらを参照してください。

CentOS8.2にEclipse Lua Development Toolsをインストールする

Eclipse Lua Development ToolsはオープンソースのLua言語IDEです。

〇Eclipse Lua Development Toolsの画面

インストール方法

以下のコマンドを実行します。
sudo dnf install -y java-11-openjdk

sudo mkdir -p /opt/ldt

cd /opt/ldt

sudo wget https://ftp.jaist.ac.jp/pub/eclipse/ldt/products/stable/1.4.2/org.eclipse.ldt.product-linux.gtk.x86_64.tar.gz

sudo tar xvfz org.eclipse.ldt.product-linux.gtk.x86_64.tar.gz

cat << EOF | sudo tee /usr/share/applications/eclipse_ldt.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/ldt/LuaDevelopmentTools
Name=Eclipse Lua Development Tools
Categories=Development;
Icon=/opt/ldt/icon.xpm
EOF

関連情報

・eclipseに関する他の情報はこちらを参照してください。

2020年12月20日日曜日

pythonとeyeD3でMP3ファイルのトラック番号・ディスク番号・リリース日・録音日を取得する

eyeD3でmp3のメタデータなどにアクセスする事ができます。

eyeD3でのトラック番号・ディスク番号・リリース日・録音日を取得する手順

1. eyeD3をインストールしたPython環境を準備します。環境の準備については、以下を参照してください。
pythonとeyeD3でMP3ファイルの曲名・アーティスト名・アルバム名を取得する

2. サンプルプログラムの作成と実行
以下のスクリプトを保存します。ファイル名は適宜変更してください。
show_track_info.py
import eyed3

af = eyed3.load("yoursong.mp3")
# トラック番号
print("Track Number: {}/{}".format(af.tag.track_num[0], af.tag.track_num[1]))
# ディスク番号
print("Disc Number: {}/{}".format(af.tag.disc_num[0], af.tag.disc_num[1]))
# リリース日
print("Best Release Date: {}".format(af.tag.best_release_date))
# レコーディング日
print("Recording Date: {}".format(af.tag.recording_date))

以下のコマンドでスクリプトを実行します。
python show_track_info.py

関連情報

PythonでMP3ファイルの情報にアクセスできるeyeD3モジュールのまとめ

・eyeD3のgithubリポジトリ
https://github.com/nicfit/eyeD3

DockerでNotableとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

Notableで、Markdown記法を使用してノートを作成・管理する事ができます。DockerでNotableがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇Notableの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcenotable .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
  && wget https://github.com/notable/notable/releases/download/v1.8.4/notable_1.8.4_amd64.deb \
  && dpkg -i notable_1.8.4_amd64.deb \
  && chmod 4755 /opt/Notable/chrome-sandbox \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcenotable

関連情報

・Notableに関する他の記事は、こちらを参照してください。