BambooTrackerはNEC PC-8801/9801シリーズに搭載されていたFM音源YM2608(OPNA)向けのクロスプラットフォームのトラッカーです。
- Wiki
- コミュニティ
- 対応言語
- ダウンロード
4.1. リリース (Windows 7以降, Windows XP, macOS, Linux)
4.2. 開発版ビルド (Windows 7以降, Windows XP, macOS)
4.3. パッケージ (macOS, Linux, BSD) - ショートカット
- エフェクトリスト
- ファイル入出力
- ビルド方法
8.1. 依存関係
8.2. コンパイル - 変更履歴
- ライセンス
- クレジット
BambooTracker GitHub Wikiで以下の情報が得られます。
- トラッカーって何?
- BambooTrackerって何?何ができるの?
- インターフェースの使い方と操作方法
- BambooTrackerでYM2608を制御する方法
公式Discordサーバーでは、BambooTrackerユーザーや開発者、パッケージメンテナーとチャットしたり、助けを求めたり、他の人を助けたり、自分の曲をシェアしたりすることができます。
現在、Bambootrackerでは以下の言語に対応しています。
- English / 英語 (デフォルト)
- 日本語
- Français / フランス語
- Polski / ポーランド語
リリースは、優れた安定したエクスペリエンスを提供する必要があるため、ほとんどのユーザーに推奨されます。
開発版のビルドはコードの変更がベースリポジトリにコミットされるたびにビルドされ、アップロードされます。 そのため最新または開発中の機能や修正を提供しますが、通常の使用には最適化されていません。
-
ビルドの取得に関して、
- 最新のマージされたコミットは、
master -o- (英数字)
と表示されている一番上のもののみ参照してください。
master -o- (英数字) ← 何らかのブランチ名 (英数字)
ではありません。 - 特定のPull Requestは、左上の
Pull request #(Pull Request ID)
の表記を確認してください。
それ以外は、Historyタブから必要な物をお探しください。
- 最新のマージされたコミットは、
-
"Job name"の欄に
APPVEYOR_JOB_NAME=for (OS名)
と書かれた行を見つけてクリックします。 -
開いたページで、右側の
Artifacts
タブをクリックすると、ダウンロードページが表示されます。
Nixpkgsパッケージ: https://search.nixos.org/packages?query=bambootracker
宣言的インストール:
{
environment.systemPackages = with pkgs; [
bambootracker
];
}
強制インストール:
nix-env -iA nixpkgs.bambootracker
sudo apt install bambootracker
AUR package: https://aur.archlinux.org/packages/bambootracker-git/
pkg install bambootracker
ビルド方法の項を参照してください。
KEYCOMMANDS.mdを参照してください。
EFFECTLIST.mdを参照してください。
FILEIO.mdを参照してください。
BambooTrackerをビルドする際には全てのプラットフォームで以下の依存関係を用意してください。
- Qt (5.5以降)
- Qt Tools (qmake, lrelease, ...)
- QtでサポートされているC++コンパイラ (GCC, Clang, MSVC, ...)
- make
それ以外の必須/オプションの依存関係を取得する方法は、OS(ディストリビューション)ごとに異なります。
- C++コンパイラ: いずれかを利用できます。
- MinGW
Qtインストーラにバンドルされているオプションを使用することをお薦めします。
それ以外のものを使用する場合は、QtのドキュメントでQtのバージョンと互換性のあるGCCのバージョンを確認してください。 - Clang
未テストですが恐らく動作します。 - MSVC
Visual Studioにバンドルされているものか、スタンドアロン版("Build Tools for Visual Studio 2019"のダウンロードを確認してください)
- MinGW
- Qt 古いバージョンのQt(XPビルドなど)では、自分でチェックアウトしてコンパイルする必要があるかもしれませんが、公式のプリビルド版はQtによって削除されました。
ここではHomebrew & Qt5を用いた導入方法を紹介します。
- C++コンパイラ: Xcode Command Line Tools
(開発者はmacOSを使っていないので、導入方法については検索してください。すみません) - Qt5:
brew install qt5
オプションの依存関係:
- JACK: このリポジトリに含まれるRtAudio / RtMidiでのJACKサーバへの接続をサポートします。
JACK(バージョン1または2)のヘッダとライブラリが必要です。オプション: pkg-configによってこの処理をスキップできますが、JACKのヘッダやライブラリの検出が困難になる可能性があります。brew install jack
brew install pkg-config
- RtAudio / RtMidi: このリポジトリで含んでいるものの代わりにコンパイル済みのRtAudio / RtMidiを使います。
(上記のオプションの依存関係は削除されます)
RtAudio (5.1.0以降)と/またはRtMidi (4.0.0以降) + pkg-configが必要です。brew install rt-audio rt-midi pkg-config
依存関係のインストールは、お使いのディストリビューションとパッケージマネージャに大きく依存します。
お使いのディストリビューションの項を参照し、インストール手順をテストセットを確認してください。
追加の依存関係:
- ALSA: 最小限のオーディオとMIDIをサポートするために必要です。
ALSAのヘッダとライブラリが必要です。
オプションの依存関係:
- PulseAudio: リポジトリに含まれるRtAudioでPulseAudioサーバーへの接続をサポートします。
PulseAudioのヘッダとライブラリが必要です。
オプション: pkg-configによってこの処理をスキップできますが、PulseAudioのヘッダやライブラリの検出が困難になる可能性があります。 - JACK: リポジトリに含まれるRtAudio / RtMidiでPulseAudioサーバーへの接続をサポートします。
JACK(version 1または2)ののヘッダとライブラリが必要です。
オプション: pkg-configによってこの処理をスキップできますが、JACKのヘッダやライブラリの検出が困難になる可能性があります。 - RtAudio / RtMidi: このリポジトリで含んでいるものの代わりにコンパイル済みのRtAudio / RtMidiを使います。
(上記のオプションの依存関係は削除されます)
RtAudio (5.1.0以降)と/またはRtMidi (4.0.0以降) + pkg-configが必要です。
# Optional dependencies
OPTIONALDEPS=""
# PulseAudio
OPTIONALDEPS="$OPTIONALDEPS libpulse-dev"
# Either:
# JACK 1
OPTIONALDEPS="$OPTIONALDEPS libjack-dev"
# JACK 2
OPTIONALDEPS="$OPTIONALDEPS libjack-jackd2-dev"
# Either / Both:
# System-RtAudio
OPTIONALDEPS="$OPTIONALDEPS librtaudio-dev"
# System-RtMidi
OPTIONALDEPS="$OPTIONALDEPS librtmidi-dev"
# Install dependencies
apt install \
build-essential \
qt5-default qttools5-dev-tools \
libasound2-dev \
$OPTIONALDEPS
# Optional dependencies
OPTIONALDEPS=""
# PulseAudio
OPTIONALDEPS="$OPTIONALDEPS libpulse"
# Either:
# JACK 1
OPTIONALDEPS="$OPTIONALDEPS jack"
# JACK 2
OPTIONALDEPS="$OPTIONALDEPS jack2"
# Either / Both:
# System-RtAudio
OPTIONALDEPS="$OPTIONALDEPS rtaudio"
# System-RtMidi
OPTIONALDEPS="$OPTIONALDEPS rtmidi"
# Install dependencies
pacman -S \
qt5-tools \
alsa-plugins \
$OPTIONALDEPS
以下を除けばLinuxと同じです:
- ALSAはオプションです。
- OSS4のヘッダとライブラリが必須です。
(もしあなたがBSDシステム上でBambooTrackerを手動でコンパイルできた場合は、Pull Requestを開いて依存関係のインストール手順をここに追加してください!)
これらのコンパイル手順はCLIの使用を前提としていますが、代わりにQt CreatorのようなIDEを使用することも可能です。 これらは一般的にすべてのプラットフォームで動作するはずですが、特定の変更点については以下の項で言及しています。
Qmakeのオプション (フラグ/スイッチ):
- PREFIX: ビルド後にインストールする場所です。
デフォルト:- Windows:
C:\BambooTracker
- macOS/Linux/BSD:
/usr/local
例:PREFIX=C:\Users\Owner\Programs\BambooTracker
- Windows:
- CONFIG
複数回指定して複数のオプションを追加することができます。
オプションの追加には+=
を、削除には-=
を使用してください。- debug: デバッグビルド。クラッシュをデバッグする際に有用です。
- release: リリースビルド。デバッグビルドよりも最適・コンパクトにビルドします。
- install_flat: インストール時にPREFIX下のLinux FHSパスを使用しません。(Windowsではデフォルトで有効)
- install_minimal: 不要なファイルのインストールをスキップします。
- use_alsa: 明示的にALSA1に対応したリポジトリに含まれるRtAudioとRtMidiをコンパイルします。(Linuxではデフォルトで有効)
- use_oss: 明示的にOSS42に対応してコンパイルします。(BSDではデフォルトで有効)
- use_pulse: 明示的にPulseAudio1に対応したリポジトリに含まれるRtAudioをコンパイルします。
- use_jack: 明示的にJACK 1/213に対応してコンパイルします。
- system_rtaudio: RtAudioのコンパイルをスキップし、代わりにシステムのインストールされているRtAudioにリンクします。
- system_rtmidi: RtMidiのコンパイルをスキップし、代わりにシステムのインストールされているRtMidiにリンクします。
- real_chip: SCCIとC86CTLに対応したコンパイルを行います4。(Windowsではデフォルトで有効)
1: LinuxとBSDでのみ動作します。
2: FreeBSDでは自動検出されます(?)が、RtAudioでは機能しない可能性があります。
3: APIは技術的にはWindowsでサポートされていますが、Rtライブラリではコンパイルが困難なようです。
4: OSI認証ライセンスを使用しないコードをビルドします。これらはWindowsにのみ対応しています。
例:
# Where you want to locally keep the source code clone
cd /home/owner/devel
# Replace --recurse-submodules with --recurse-submodules=submodules/emu2149/src if CONFIG+=system_rtaudio AND CONFIG+=system_rtmidi will be used
git clone https://github.com/BambooTracker/BambooTracker --recurse-submodules
cd BambooTracker
# Configure
qmake PREFIX=/usr/local CONFIG-=debug CONFIG+=release CONFIG+=use_alsa CONFIG+=use_pulse CONFIG+=use_jack
# Recursively initialises subprojects properly, dependency tests may be flakey if run multithreaded
make qmake_all
# Compile with 4 threads
make -j4
# Installs to PREFIX
make install
上記の手順を始める前に、Qtとコンパイラをセットアップしたシェルに入ります。(Qtのインストーラには、このために使えるスクリプトが追加されています)
- MinGWを使う場合は
make
ではなくmingw32-make
/mingw64-make
を使って下さい. - MSVCを使う場合はTODO。
Qt Creatorを使用すると、よりグラフィカルなコンパイル処理を行うことができます。
pkg-configを使わずにHomebrewのJACKを使用する際は、qmake
にいくつかの引数を渡します:
LIBS+=-L/usr/local/opt/jack/lib INCLUDEPATH+=/usr/local/opt/jack/include
BambooTrackerはFreeBSDのポートを使ってビルドすることができます。
cd /usr/ports/audio/bambootracker
make install clean
CHANGELOG.mdを参照してください。
このプログラム及びソースコードのライセンスははGNU General License Version 2及びそれ以降のバージョンです。
詳細はLICENSEとlicenses/list.mdを参照してください。
このアプリの作成において、以下の方々にお世話になっております。ありがとうございます。
- Qt
- MAME YM2608のエミュレーションコードに関してTatsuyuki Satohさん,Jarek Burczynskiさん,Valley Bellさん
- emu2149に関してDigital Sound Antiquesさん
- トラッカーのアイコンに関してDecidettoさん
- その他のアイコンに用いているSilk iconsに関してMark Jamesさん
- VGMファイルのフォーマットのドキュメントに関してVGMRipsチームの方々
- トラッカーのUIやルーチンに関して多くのトラッカー作成者様、特に0CC-FamiTrackerのHertzDevilさん、Deflemask TrackerのLeonardo Demartino (delek)さん、GoatTrackerのLasse Öörni (Cadaver)さん
- サンプル曲を提供してくださったmaakさん、SuperJet Spadeさん、Dippyさん、RigidatoMSさん、ImATrackManさん
- サンプルインストゥルメントを提供してくださったpapiezakさん、阿保 剛さん
- サンプルカラースキームを提供してくださったYuzu4Kさん
- WOPNインストゥルメントのフォーマットファイルに関してVitaly Novichkov (Wohlstand)さん
- S98ファイルのフォーマットのドキュメントに関してRu^3さん
- SCCIライブラリに関してがし3さん
- C86CTLライブラリに関してhonetさん
- RtAudioとRtMidiライブラリに関してGary P. Scavoneさん他
- Nuked OPN-Modエミュレーションに関してAlexey Khokholov (Nuke.YKT)さん、Jean Pierre Cimalandoさん
- フランス語翻訳に関してJean Pierre Cimalandoさん、Olivier Humbertさん
- ポーランド語翻訳に関してfreq-modさん、Midoriさん
- ADPCMエンコーダ/デコーダに関してIan Karlssonさん
- そしてこのプロジェクトに手助けしてくださるみなさん!