MIXandCC

Android StudioでFluidsynthをビルド
少しだけ前につくられた端末で音が割れる不具合
対応完了
対応しない不具合
AndroidのBluetoothの実装サンプルにどうぞ
MIXAndCC不具合対応について 2025-11-03
MIXandCCを更新しました(2025-10-29)
MIXandCCを更新しました(2025-10-20)
XMLのパーサーが文字コードエンコーディグを考慮してくれなくて、Readerを作った件
MidiOneNet – 自作MIDI for ネットワーク①仕様編
Question. libFluidSynth.so for Android by
新画面設計 V3用 企画段階
【予定】バージョン3の画面計画
AndroidのJavaアプリから、FluidSynth.soをコールする方法
Android、AudioStreamのサンプル
MIXandCC 2025-4-21 Update
七転び八起きプログラマーのひとりの書斎
Android、Bluetooth、notifyCharacteristicChangedで、201エラーがでた場合
MIDIAndBlue 基本設計前のクラス図の???
直近の予定2025-3:動画計画の台本
ごあいさつ
MIXandCCアプリが更新されました。2025-2-26
技術情報ページを計画中
HP作成しました

こんにちは

はじめまして。
インストールしていただけた方もいらっしゃいますか~。MIXAndCCですー。

 こちらは、MIXAndCC(みっくすあんどしーしー)。CC=ControlChangeの略でして、MIDIコントローラアプリのサポートページです。

 このスマホアプリを作成している私も「DTM」を趣味のひとつとしています。
 関連アプリを、Android用としてリリースいたしています。
 すこし遅くなりましたが、サイトも公開させていただきます。(^^)

 Androidユーザーの方は、Google Play から、ダウンロードいただけます。
  ダウンロードはこちら:GooglePlay

 Fireタブレットユーザーの方は、AmazonアプリStoreから、ダウンロードいただけます。
  ダウンロードはこちら:Amazon

※他のサイトに登録されているものは、私たちは関与していません。

MIDIコントローラーです

この、MIXAndCCは「自分のとても欲しかったMIDIコントローラー」となっています。

・簡単な操作性を目指しています。
・16パッドより選択したメッセージを、2つのスライダーにアサインできます。
・16CHの状態はそれとは別に管理できます。
・ドラッグドロップにより、配置変更が簡単になっています。
・名前も付けられます。

送信できるメッセージは、CCにとどまっていません。

 つぎのMIDIメッセージ(など)に対応しています。

  CC (コントロールチェンジ)
  Data Entry (データエントリーRPN/NRPN)
  Program Change (プログラム)
  Program & Bank (バンク+プログラム)
  Note On (ノートON、和音)
  System Exclusive (システムエクスクルーシブなどバイナリ全般)

 MIDIメッセージは直接入力のほか、定義ファイルから選ぶかたちでも指定できます。
 あいまいな記憶を手助けしてくれるかもしれません。
 Domino(C)Takaboさん用に作られている定義ファイルを読めることも、部分的な互換性ですが、たまーにあります。

サウンドフォントシンセサイザーも含まれています

 fluidsynth 2.5.1をサウンドフォントシンセサイザーとして使わせていただいています。
  FluidSynth – A Sound Font Synthesizer (https://www.fluidsynth.org/)
 GeneralUserGSも、あわせて使わせていただいています。
  GeneralUserGS – GS and GM compatible SoundFont (https://schristiancollins.com/generaluser.php)

 ですので、MIDIデバイスをまだお持ちでなくても、16パートの再生が可能になっています。
 これらの制約について、気になるかたは、それぞれのサイトをご確認ください。(商用利用についてなど)

 MainバスのMIDI出力として”General User GS.sf2″を選択すること、MIXAndCCで利用可能になります。

 そのうえで、他のアプリからのMIDI出力を”MIXandCC MIDI(Mainバス)」としますと、別のアプリからMIXandCCあてに送られたMIDIが、サウンドフォントでなることになります。

 ただし、ルータ、パッチングの設定で、リンクを解除した場合を除きます。通知を許可していただけると、バックグランドでも落ちることがなくなります。

 当初は、シンセサイズまで自分で実装しようとしたのですが、私はJavaというプログラミング言語を用いていて、どうしても、音の始まりので、JITの関係音とびしてしまうことを防ぐことができませんでした。また、SoundFontの規格の多くに対応することが、私には難しいと思い、使わせていただくようになりました、そのほうがみなさん助かるのではと思っている経緯です。

「Dコントローラ」の特徴

メインのコントローラの機能は、「Dコントローラ」 と呼ぶことにします。

 16のパッドを選択することで、信号も選択されます。ドラッグ&ドロップは配置変更や、無効にもすることもできますし、ドラッグに応じて値を変化させるモードにすることもできます。
 右上のレコードマークのナビメニューに設定項目があります。

 スライダーのほか、「値」ポップアップもあり、そこには、+1 -1ボタンもあり、細かい設定もおこなえます。


 標準テンプレートのほか、音源定義ファイルが手元にございましたら、(部分的にとなりますが)再利用できるケースもあるかもしれません。

 SysEXの場合、について、チェックサムを計算して付加できます。 [ と ] で囲んだ箇所のチェックサムを] の位置で送信します。

 ノートオンの場合、設定でリリースした際のノートオフも設定できます。ノートオンは、コードで設定できます。外部キーボードからも記憶させることができます。その逆に、コード名からキーを選択することもできます。



 ピアノロール機能があります。


 すこし以前のAndroid端末でも動きます(Android10以上)。
 Bluetooth(親子・子機)および、USBコンプライアントMIDIデバイスに接続できます。
 PCにつないで、MIDIコントローラとして使うこともできます。

 ※複数のメッセージを連結送信することもできます。

 いろいろ工夫していますが、改善できそうな点や、なにか不具合が見つけられたら、X(旧:Twitter)やFacebookにご一報ください。アプリの品質の向上の参考にさせていただきますので、我々だけでなく、他のユーザー様にとりましても、貴重なご意見となるでしょう。対応できる範囲はこちらで決めさせて頂くのではありますが。

ご利用にあたって

利用規約への同意をお願いしております。同意いただける場合、アプリはご利用頂けます。

利用規約の全文はこちらです。

簡単にまとめると、小規模開発というのもあって、動作を完全に保証することは難しいですということです。そして、なんでも送れるアプリですが、いたずらには使わないですください。というお願いです。

ご利用になりたいみなさんに、同意していただいております。

マニュアル

セクションに分かれています。気になるアコーディオンを開いてみてください。

[snow-monkey-blocks-accordion-item-control checked=”false”]
MIDIデバイス設定

トップメニュー画面、また、右上ナビミューから、MIDIデバイス設定を最初に行ってください。アプリは、設定したデバイスをコントロールします。設定しなくても動作するかもしれませんが、なにもしないということになると思います。

デバイスの選択肢は、下記の通りです。

・USBを検索
 Android対応デバイスはそのまま名前が表示されます、それ以外は、BLE/USBのボタンより、低遅延USBドライバを使うこともできます。どちらが安定するかは、環境によると思います。ドライバとして使っているモジュールへ興味を持たれている方、また覧に表示されたくないデバイスをお持ちのメーカー様は、コンタクト下さい。

・他社MIDIアプリとの連携
 他社アプリで、このソフトをMIDIインにしたい場合、”MIXandCC MIDI”とつなげていただければつながると思います。

・Bluetooth MIDI
 「BleMIDIを検索」「BleMIDIになる」のふたつ用意されています。MIDI1.0のBleMIDIに対応したします。Android にAndroidをつなげるのは若干不安定になることもあるようです。

・サウンドフォント
 ”(ファイル名).sf2″を指定することで、FluieSynth対応のサウンドフォントをご活用いただけます。

・パソコン用のMIDI機器にする
 MIDI対応しているAndroid端末のほとんどが、PCのMIDI機器としてお使いいただけるでしょう。
 Andorid端末自体の「設定」アプリより、「USBの接続用途」を確認してみてください。

・MIDI入力と出力の組み合わせを、Main,Aux1,Aux2,Aux3のいずれかでペアにした場合つながりす。通常は、Mainだけをつかうことになるでしょう。ほかのアプリから見えるようになる、MixAndCC MIDI (MainからAux3まで)は、ここの信号を直接うけとったり、ここに流したりできます。

※デバイスの検索に連続で失敗する場合や、ロックが解除されないときには、再始動することもお試しください。

[snow-monkey-blocks-accordion-item-control checked=”false”]
メイン・Dコントローラー

メイン画面の16パッドで、えらんだメッセージをスライダーから送信できます。

・青スクエアを選んだときには、パッド選択で青のスライダー右下の←にパッドがアサインされます。
・赤スクエアを選んだときには、パッド選択で赤のスライダー右下の→にパッドがアサインされます。
・そして、それぞれ、青と赤のスライダーの変化で、MIDIメッセージを送信します。
・どちらにもアサインされない状態にするには、どちらかが選択されている状態で、2回目のタップを行うという表現を行ってください。2つのスライダーはそのまま、ロックされて、パッドから、ノート・コードなどのメッセージを送れるようになります。パッドコントローラ

パッドにはノート、コードも指定できます。

パッドに和音やプログラムチェンジなどを設定しておき、別途アサインした2つのスライダーで、アタックや、フィルター、レゾナンスなど音色変化させるように考えていました。

デバイスのマルチタッチにも対応しています。

送信するメッセージは「ナビゲーション」から簡易選択できます。「コマンド」で詳細設定も行えます。

パッドを選択すると、スライダーアサインの有無にかかわらず、「Value」をご利用になれます。
「Value」では、スライダーのほか、-10, -1, +1, +10 のボタンなどで細かい調整が可能です。

[snow-monkey-blocks-accordion-item-control checked=”false”]
メッセージをXMLでカスタマイズ

コマンドリスト画面で、「+」や「✐」をタップすると、エディタになります。
テキストをみながらコマンドを手入力することも可能なのですが、あいまいな記憶であっても、「ナビゲーション(XML)」からテンプレートを選択できます。


何も設定しないとGeneral MIDIに対応しているテンプレートXMLが用いられます。SoundFontが開かれている場合は、そちらが優先されますが、選択は自由です。

XML設定画面は、非公式ですが、Domino(C)たかぼー様の音源定義ファイルを読み取ることに挑戦します。部分的な互換性を持たせています。

たぶん、50%以上の既存の音源定義ファイルに対応できている、かもしれないです。Domino作者様に問い合わせしたところ、オープン仕様として、読めるようにするのは、構わないとおっしゃられていました。大変ありがととうございます。がんばらせていただきました。

相互協力ということではありません。
このアプリについてのお問合せは、MIXandCCのサポート(X / Facebook)まで、お気軽にどうぞ。

コマンドを手入力されたい場合、追加したコマンドを選択して、画面下部よりコマンドを地直接書き換えます。
MIXandCCコマンド文法」もご用意しているので、参考にしてください。

[snow-monkey-blocks-accordion-item-control checked=”false”]
ナビゲーション:ノート

パッドから、ノートをならす設定を行います。コードにも対応しています。

タッチパネルか、MIDIインのキーボードから設定できます。コードを検出します。

タッチパネルはトグル式ですが、MIDIインのキーの場合には、最後の和音です。

 仕組み)
   CEGを、外部キーでおさえる(Cと表示される)。
   Gだけはなして(変化なし)
   Aをおさえる(Am)と表示される
   全部はなす(変化なし)
   DEAをおさえる(Asus4と表示される)。

まとめると、ひとつでも放したあと、別のキーを押すと、再設定します。
その逆になるのですが、コード名から、ノートご指定いただくことも可能です。

[snow-monkey-blocks-accordion-item-control checked=”false”]
ナビゲーション:コントロールチェンジ

コントロールチェンジの一覧から選択します。

[snow-monkey-blocks-accordion-item-control checked=”false”]
ナビゲーション:プログラムチェンジ

XML上のプログラムチェンジの一覧から選択します。

[snow-monkey-blocks-accordion-item-control checked=”false”]
ナビゲーション:データエントリー

XML上のデーターエントリーの一覧から選択します。

[snow-monkey-blocks-accordion-item-control checked=”false”]
サウンドフォント(FluidSynth)

MIDIアウトとして、”SoundFont”を選ぶと、シンセサイザー(FluidSynth)を起動して内部的に接続します。設定画面から設定を変更することもできます。音を確認するための、おまけ程度のつもりでしたが、いろんなことが出来るかもしれないです。

 ・フォント選択(フォントのロード、アンロード、何も設定しないと「GeneralUserGS」)
 ・フォント追加
 ・「平均律」あるいは、「純正律のキー数種類」
 ・基本A4周波数(一般的に440hzや442hzで指定されることのあるあれです)

エフェクタはこの画面にはありませんが、MIDIメッセージによりチャンネルごとに変更できます。ルームサイズなどの変更は対応していません。

また、SoundFontのエンジンはバッテリーをそこそこ使いますので、60秒信号のやり取りがない場合、音声合成を停止します。再び信号がきた場合、1秒ほどかけて立ち上げなおしています。パソコンではなく、タブレットですから、こうしています。

[snow-monkey-blocks-accordion-item-control checked=”false”]
シーン

シーンとして、設定をストックできます。

手をかけて設定したコマンドです。あとでもう一度使いたいということもあるかと思います。
長期間つかいたいものは、コピーしたり、名前をつけたり、ドラッグして並び替えたりすることができます。

選択したものが、メイン画面でロードされます。保存、名称変更、並び替えが行えます。

[snow-monkey-blocks-accordion-item-control checked=”false”]
一括チャンネル変更

16パッドのすべてのチャンネルが一致している場合、右上のメニューから、一括チャンネル変更を実行できます。

[snow-monkey-blocks-accordion-item-control checked=”false”]
プレイヤー

スロットを選択して、再生を選ぶと、再生されます。(後述のピアノロール)。デモソングをタップすると、デモソングが3曲一覧に追加されます。テストにご活用ください。

記録準備を押すと、記録する準備をします。何度かテストしていただき。うまくやれそうになったときに、ご活用ください。失敗したら痛いですからね。

スタンダードMIDIファイルとして、ファイル書出(保存)させることができます。端末のダウンロードフォルダに保存されます。ファイル取り込みも可能です。スタンダードMIDIファイル(*.mid)のほか、テキスト(.txt)のSysEXに対応しています。

システムエクスクルーシブなどインポートしたおき、再生することで、SysEXのファイラーとしてお使いいただくことも可能です。ただし、万が一の事故がおきても責任をとれるデバイスに対してのみお使いいただけるよう、お願いいたします。(端末だけでもとに戻せる場合など)

[snow-monkey-blocks-accordion-item-control checked=”false”]
記録準備(メトロノームはこちらです)
[snow-monkey-blocks-accordion-item-control checked=”false”]
再生

ピアノロールです。一覧画面で、曲を選択して再生を開始するとこの表示になります。
再生:オルゴールでは、GMのオルゴール音色にアサインします。おまけの機能です。

#動画などとしてアップロードされる場合、著作権などいろいろとご注意ください。また、Androidの画面録画は、知っている限りステレオ音源にならないように思います。端末の方向(縦長、横長)により、若干表示内容を調整しています。

ピアノロール画面で設定いただける項目があります。
ピアノロールをタップして設定ダイアログを開いてください。

 ・ハイライト
  注目したいパートを目立たせます。CH1~16のチャンネルボリューム加算できます。
  例ですが、+32で加算64相当、-64で減算128相当です。
  ピアノロールからの再生でのみ、適用されます。
  スクリーンで、色がかさなるとき、この数字の大きいパートの発色が優先されます。
  逆の場合があります、音量を最小にしている場合は、マイナスワンなので、その発色が優先されます。

 ・トランスポーズ
  トランスポーズです。値を変更すると、一度AllNoteOffを処理したうえ、発音、表示ともにトランスポーズします。

 ・秒数/ページ
  1画面におさまる秒数を選べます。
  例として、16秒ではほんとにゆったり流れます。2秒はすこし早すぎるかもしれないです。

[snow-monkey-blocks-accordion-item-control checked=”false”]
接続確認がされているデバイス

開発時、動作を確認したインターフェイスの一覧です。これ以外もだいたいOKだと思うのですが、
接続にこまったときに、参考にして頂ければと思います。

動作確認済タブレット・スマホ:Google Pixel 6, Google Pixel 9a, Blackview TAB60, Sharp Aquos Sense3
アプリへ接続:Fluid Synth、bs-16i等、OS内ルーティング可能なアプリ
MIDI音源へ接続:Roland UM-ONE mk2、TASCAM Series102i(Elecom USB Adapter経由)
USBデバイスとして動作:Microsoft Windows10, Windows11
Bluetooth子機につなげる:YAMAHA MD-BT01
Bluetooth子機としてふるまう:Android、Kindle、Windows、iOS

途中でつながらなくなった場合や、デバイスが見つからなくなった場合には、
アプリ再起動や、Bluetoothを一時OFFにして戻すことなどを、お試し頂きたいです。
Githubのライブラリ、kshojiさんの、USB/BLE-MIDIドライバをベースにしています。
(Apache2.0ライセンス)

1) 共通フォーマットを受け入れるUSBデバイスやBluetoothデバイスは表示してしまいます。
2) 共通の伝送フォーマットとすこしでも異なる場合は、表示されていても動きません。
3) 非表示をご希望のメーカー様は、ご連絡ください。非表示にするという対応をさせていただきます。

広告は、表示されます

画面の下部に、Google広告が表示されています。収入源は広告としています。
こちらは、Googleを利用する広告主様によるものです。その際、パーソナライズされた広告が表示されます。

Googleのマイアドセンターから、パーソナライズの程度の変更が可能かと思います。
 https://myadcenter.google.com/home

また、表示する設定ですが、内容のすべてを把握しているわけではありません。

そして、ウェブの広告は、アプリに広告を掲載するため、設置する必要がありそうな流れを感じるやりとりがあったため設置しております。

広告を表示しています。