LoginSignup
0
1

More than 1 year has passed since last update.

SuperCollider + FoxDot のセットアップ(ubuttu20.04)

Posted at

はじめに

今日は音関係のことで、SuperCollider をインストールしたのでメモ。
自分は何をしたいのかわからないが、とりあえず、

  • 演奏を録音したい
  • 自作自演のピアノ演奏しながら、ドラムとか流したい

というのでまぁ、いじってみるか、ということに。かなり飛躍があるかな。

インストールした

半日かかりでしたが、できたのでメモ。環境は Linux Ubuntu20.04 (古いVAIO)です。

  • SupperCollider
  • FoxDot

FotDot

これはpip でなんの問題もなくインストールされました。

あとで tkinker がないと言われたので、これも入れました。

$ sudo apt install python3-tk

SuperCollider

ソースを持ってきて、cmake でbuildするも、いろいろ足りなくて怒られたので、いろいろインストールしたら最終的に動きました。

Linux Current Version 3.12.12 source tarball for Linux を持ってきました。

  • Qt5 のインストール

これはソースファイルの README_LINUX.md にも書いてありますが、必要なので入れます。最初、何も入っていませんでした。

$ apt-cache policy qt5-default 
qt5-default:
  インストールされているバージョン: (なし)
  候補:               5.12.8+dfsg-0ubuntu2.1
  バージョンテーブル:
     5.12.8+dfsg-0ubuntu2.1 500
        500 http://jp.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages
     5.12.8+dfsg-0ubuntu1 500
        500 http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 Packages

そこで、オリャー、と全部入れました。確かREADMEに書いてあったとおりにしています。

sudo apt-get install qt5-default qt5-qmake qttools5-dev qttools5-dev-tools qtdeclarative5-dev qtwebengine5-dev libqt5svg5-
  dev libqt5websockets5-dev

その結果、無事にQTがインストールされました。

$ apt-cache policy qt5-default 
qt5-default:
  インストールされているバージョン: 5.12.8+dfsg-0ubuntu2.1
  候補:               5.12.8+dfsg-0ubuntu2.1
  バージョンテーブル:
 *** 5.12.8+dfsg-0ubuntu2.1 500
        500 http://jp.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages
        100 /var/lib/dpkg/status
     5.12.8+dfsg-0ubuntu1 500
        500 http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
  • cmake でビルド

ソースをみると、CMakeList.txt があるので、いつものように

$ mkdir tmpdir
$ cd tmpdir
$ cmake ..
$ make
$ sudo make install

とするのですが、いろいろなくていれます。以下、順に対処しました。

$ sudo apt install libsndfile-dev
$ sudo apt install libxt-dev
$ sudo apt install -y libjack-dev
$ sudo apt-get install libasound2-dev
$ sudo apt install libqt5websockets5-dev

ときに

-- Building the Qt IDE
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28 (find_package):
  Could not find a package configuration file provided by "Qt5WebSockets"
  with any of the following names:

    Qt5WebSocketsConfig.cmake
    qt5websockets-config.cmake

  Add the installation prefix of "Qt5WebSockets" to CMAKE_PREFIX_PATH or set
  "Qt5WebSockets_DIR" to a directory containing one of the above files.  If
  "Qt5WebSockets" provides a separate development package or SDK, be sure it
  has been installed.

$ sudo apt install apt-file
$ sudo apt-file update
$ sudo apt-file search Qt5WebSocketsConfig.cmake
$ sudo apt-file search Qt5WebSocketsConfig.cmake
libqt5websockets5-dev: /usr/lib/x86_64-linux-gnu/cmake/Qt5WebSockets/Qt5WebSocketsConfig.cmake

で場所を調べることはできました。が、結局は上記のapt install 作戦ですべて対応できたので CMAKE_PREFIX_PATHの設定は使いませんでした。

  • SuperCollider 起動
$ scide

で起動しました。やったと思ったのですが、、、、。

  • audio デバイスのライルタイム実行優先度の設定

scide 起動後に、デバイスについてのエラーが出でいた。権限の問題らしい。
(メッセージをメモし忘れた、さんざんググったのに)

$ sudo apt-get install -y libjack-jackd2-dev
$ sudo apt install qjackctl

で/etc/security/limits.d/audio.conf を作成して、リアルタイム実行優先度
の設定を有効にするか、と聞かれるので「はい」を選択しました。それでも、
音が鳴りません。

いろいろ書かれているが、jack2のためにとりあえずreboot したら、エラーが
出なくなりました。

https://github.com/Arkq/bluez-alsa/issues/369
https://note.com/foxdot_nakaji/n/neba6f98d2d71
https://ymotongpoo.hatenablog.com/entry/2018/05/20/214019

$ qjackctlで起動されるGUIでデバイスの設定を確認できます。

  • 音を出力するサウンドカードを指定する

それでSuperCollider を起動してFoxDot.startとし、FoxDotを起動すると、ま
たしてもエラーがSuperCollider の方で出る。出力するデバイスを指定するこ
とが必要だったらしい。

$ cat /proc/asound/cards
 0 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                      HDA Intel HDMI at 0xb2530000 irq 48
 1 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xb2534000 irq 49
$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: HDMI [HDA Intel HDMI], デバイス 3: HDMI 0 [HDMI 0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 0: HDMI [HDA Intel HDMI], デバイス 7: HDMI 1 [HDMI 1]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 0: HDMI [HDA Intel HDMI], デバイス 8: HDMI 2 [HDMI 2]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 0: HDMI [HDA Intel HDMI], デバイス 9: HDMI 3 [HDMI 3]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 0: HDMI [HDA Intel HDMI], デバイス 10: HDMI 4 [HDMI 4]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: PCH [HDA Intel PCH], デバイス 0: ALC286 Analog [ALC286 Analog]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

2つのデバイスがある。PCHを使いたい。HDMIではなくて。

$  jackd -R -d alsa -d hw:1
jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio1
creating alsa driver ... hw:1|hw:1|1024|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
JackEngine::XRun: client = SuperCollider was not finished, state = Running

この状態のまま、

$ scide &

でSuperCollider を起動します。そこで、

FoxDot.start

を行います。エラーができませんでした。

音を鳴らす

いざ、python3 -m FoxDotでFoxDotを起動し、FoxDotのコンソールで

Clock.bpm = 60
p1 >> pluck()

と入れると、音がなりました。ヤッター!!^^)/

これ、何に使えるのだろう。。。

まとめ

Linux Ubuntu20.04 でSuperCollider + FoxDot で音を鳴らすことができた。
録音、リアルタイムのインタラクションでなにか使えるかなー。。

といらえず、古いVAIO上のUbuntu20.04 で動いたのだが、これは、RasPiや
Windows ノートパソコンで使いたいな。設定が面倒そうだ。。。
(2022/04/17)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1