MIXandCC(ミックスアンドシーシー)

こんにちは

はじめまして。という方が多いかもしれないですが、すでに、インストールしたいただいた方もいらっしゃいますかね?こちらは、MIXandCCーミックスアンドシーシーのホームページです。

このスマホアプリを作成している私も「DTM」を趣味のひとつとしています。その関連のアプリを、Android用としてリリースいたしました。この度、遅ればせながら、サイトを作りました。

 Google Play から、最新の更新されたものをダウンロードいただけます。
  ダウンロードはこちら:GooglePlay

 他のサイトについて、私たちの登録したものではありません。

MIDIコントローラー for Android

この、MIXandCC(ミックスアンドシーシー)は「個人的に欲しかったMIDIコントローラー」になります。

・インターフェースが簡潔です。(それでも10画面以上ですね)
・16パッドより選択したメッセージをスライダーから送信します。
・ドラッグドロップにより、配置変更が簡単になっています。名前も付けられます。

送信できるメッセージは、CCだけではありません。

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

 などのMIDIメッセージに対応しています。
 MIDIメッセージはテンプレートから選べます。あいまいな記憶を手助けしてくれるかもしれません。

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

 サウンドフォント・シンセサイザーをアプリのなかで呼び出します。
 GSとGM準拠の音色バンクを標準で用います。MIDIデバイスをお持ちでなくても、16パートの再生が可能です。
 使うためには、MIDIアウトに”<SoundFont>”を選択してください。MIXandCCで利用可能になります。
 そのうえで、MIDIインに”MIXandCC For Apps”を選択すると、別のアプリから”MIXandCC For Apps”あてに送られたMIDIが、サウンドフォントシンセサイザーとつながります。(THRUスイッチをONに入れて下さい。)

特徴については後述します。

FluidSynth – A Sound Font Synthesizer (https://www.fluidsynth.org/)
GeneralUserGS – GS and GM compatible SoundFont (https://schristiancollins.com/generaluser.php)

細かな特徴

 スライダーのほか、「値」ポップアップでも操作できます。
 「値」ポップアップには、+1 -1ボタンもあり、細かい設定もおこなえます。
 SysEXについて、チェックサムを計算して付加できます。
 標準テンプレートのほか「Domino(C)たかぼー様」のためにつくられているXMLが手元にありましたら、少し再利用できそうです。※後述
 ノートオンの場合、ノートオフをペア設定できます。
 ノートオンは、コードで設定できます。外部キーボードからもコードを選択できます。
 反対に、コード名からキーを選択することもできます。
 よく見かけるピアノロールでの再生に対応しました。
 すこし以前のAndroid端末でも動きます(Android10以上)。
 Bluetooth(親子・子機)および、USBコンプライアントMIDIデバイスに接続できます。
 PCにつないで、MIDIコントローラとして使うこともできます。
 ※複数のメッセージを連結送信することは現在できませんが、今後実装の予定です。
 (たとえば、ポルタメントをONにして時間を1にするために、「@CC 41 127 @CC 5 1」のコマンド1つですむようにしたいです。現状2つのパッドを使わないとできません。)

このように、使いやすくする工夫をしています。

ご利用にあたって

Android10以降のスマホとタブレットに対応しています(そのつもりです)。不都合が生じましたら、ご連絡ください。アプリを起動した際、初回などには、利用規約への同意をお願いしております。同意いただける場合、アプリはご利用頂けます。

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

簡単にまとめると、小規模開発というのもあって、双方自由にいきましょう+そして、なんでも送れるアプリですが、いたずらには使わないですください。というお願いです。

アプリの起動前に、みなさんに同意いただきます。お時間のあるとき、起動前に、チェックのほう、よろしくお願いいたします。

マニュアル

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

MIDIデバイス設定

最初に、MIDIメッセージを送るための、MIDIアウト・イン・スルーの設定を行います。
設定したデバイスを、コントロールします。設定しなくてもアプリは動きますが、なにも出来ません。

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

・USB-MIDI
 Android対応デバイスはそのまま名前が表示されます、それ以外は、MIDIコンプライアントデバイス用の独自ドライバで動く可能性があります<List UP USB>でUSB機器にアクセスしてください。ドライバとして使っているプログラムにご興味のある方や、一覧に表示されたくないデバイスをお持ちのメーカー様は、お問い合わせください。

・他社MIDIアプリとの連携
 他社アプリで、このソフトをMIDIインにしたい場合、”MIXandCC For Apps”とつなげてください。
 ところで、”MIXandCC For Apps”は、ループすると危険なので、アプリ再起動時には自動で開きません。

・Bluetooth MIDI
 Ble-MIDIプロトコルに基づいているセントラル(親機)とペリフェラル(子機)の接続ができます。

・サウンドフォント
 ”<SoundFont>”を指定することで、FluieSynth対応のサウンドフォントをご活用いただけます。後述します。

・PCの子機
 最近のAndroidは、PCのMIDI機器として認識させることもできると思います。
 端末に入っている設定アプリの「USBの接続用途」を確認してみてください。

※MIDIINも設定できます。
※THRUでは、IN to OUTの連結が可能です。複数INからのマージなどは対応していません。
※Bluetoothが不安定になってしまったら、USBのロックが解除されないときには、再始動も試してみてください。

メイン・MIDIコントローラー

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

・左下の緑スクエアを選ぶと、パッドを選択すると、緑のスライダー(下)にパッドがアサインされます。
・右上の赤スクエアを選ぶと、パッドを選択すると、赤いスライダー(右)にパッドがアサインされます。
・そして、スライダーの変化で、MIDIメッセージを送信します。
・また、右下の黄色スクエアを選ぶと、その間アサインを変更しなくなります。
 画面下部は更新されますので、Value(値)をお使いください。

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

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

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

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

パッドを選択すると、スライダーにアサインしてもしなくても、「Value」をご利用になれます。
「Value」では、スライダーのほか、-10, -1, +1, +10 のボタンもあり細かい値も簡単に設定できます。

メッセージをXMLでカスタマイズ

「コマンド」をタップするか、「ナビゲーション」をタップします。

メイン画面で、「コマンド」をタップすると、CCVEditorになります。
テキストをみながらコマンドを手入力することも可能なのですが、あいまいな記憶であっても、「BrowseXML」からテンプレートを選択できます。


デフォルトではGeneral MIDIに対応しているテンプレートXMLが用いられます。

ここでこのアプリの特徴として「OpenAnotherXML」から、ストレージのXMLも参照可能になっています。このXMLの読み込みは、Domino(C)たかぼー様の音源定義ファイルを読み取ることに挑戦します。部分的な互換性を持たせています。

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

相互協力ということではありません。
このアプリについては、MIXandCCのサポート(X / Facebook)へお願いいたします。

コマンドを手入力されたい場合「MIXandCCコマンド文法」もご用意しているので、参考にしてください。

メッセージをナビゲーションでカスタマイズ

「ナビゲーション」からも、メッセージをカスタマイズできます。
タップすると、いくつか候補が表示されます。前述の手順をすこしスキップするショートカットです。

ノートオンの場合

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

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

タッチパネルはトグル式ですが、MIDIインのキーの場合には、以下のようになります。

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

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

コントロールチェンジの場合

コントロールチェンジの一覧から選択します。(図:準備中)

プログラムチェンジの場合

XML上のプログラムチェンジの一覧から選択します。(図:準備中)

データエントリーの場合

XML上のデーターエントリーの一覧から選択します。(図:準備中)

その他の場合

XML上のデータから選択します。(図:準備中)
XML系の設定では、1ページ前に戻ることで、コマンドを手入力することも可能です。
ここでの手順は、もうすこしわかりやすくしたいです。

サウンドフォント(FluidSynth)

MIDIアウトとして、<SoundFont>を選ぶと、シンセサイザーを起動して接続します。MIDIアウトから、選択したあと、もう一度タップすると、SoundFontの設定ができます。

FluidSynth(libfluidsynth.so)を呼び出します。音を確認するための、おまけ程度のつもりでしたが、いろんなことが出来るかもしれないです。

 ・ファイル名(フォントのロード、アンロード、デフォルト:GeneralUserGS)
 ・GeneralUserGSについて
 ・低レイテンシ(最近のAndroid端末の場合。レイテンシを詰められます。デフォルト:ON)
 ・チューニング(デフォルト:平均律、それ以外は純正律のみ)
 ・ルートキー(純正律の場合のルート)
 ・A4の周波数(一般的に440hz)

エフェクタはコーラスとリバーブの設定、MIDIメッセージによりセンド値を変更できます。
ルームサイズなどは変更できません。

また、SoundFontのエンジンはバッテリーをそこそこ使いますので、しばらく使わない時には、ひとつ前の画面の、MIDIアウトのアコーディオンを、一度だけ閉じていただけると、音声合成を停止させてバッテリーに負担をかけなくなります。メモリの解放します。SoundFontを再び開くときに、再びエンジンを起動します。

メインメニュー

メインメニューは次のようになっています。
・シーン変更
・チャンネル一括設定
・一般設定
・サポート

コマンドメニューは次のようになっています。
・MIDIレコーダー
・メトロノーム(ベータ実装ー作業中)
・ピアノロール

これらについては、後述いたします。

メニュー・シーン変更

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

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

選択したものが、メイン画面でロードされ、メイン画面で変更すると自動保存され、次回起動時に一番上が、選択されるようになります。

変更したくない場合には、コピーを作成して、コピーをご利用ください。プリセットを使いたい場合も、コピーを作成して使います。

項目の削除や、項目の名前の変更は、どちらも、「編集」をタップして行います。

メニュー・一括チャンネル設定

16パッドのすべてのチャンネルが一致している場合、一括でふたたび変更できます。

メニュー・一般設定

一般的な設定を行います。

 ・日本語・英語の切り替え。この画面は、英語に固定ですが。

 ・画面全体のパッドのしめる割合

 ・ドラッグドロップの有効・無効
  ドラッグドロップさせることもできますが、不要な移動をさせない設定も可能です。

メインメニュー・サポート

MIXandCCは、現在、X かFacebookを用いてサポートをしています。お気軽にお問合せください。

  X(旧Twitter) – MIXandCC https://x.com/MIXandCC
  Facebook – MIXandCCユーザーグループ https://www.facebook.com/groups/1133833987913039

メインメニュー・MIDIレコーダー

スロットを選択して、「記録する」をタップすると、もう一度同じボタンを押すまで、シーケンスとして記録します。再生することができます。

メトロノームを、MIDIとして送信することも、メトロノーム画面で、設定できます。メトロノームはレコーダーには記録されませんが、別途再生時に鳴らすことも可能です。

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

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

メインメニュー・メトロノーム

メトロノームは作ってみたのですが、ハードを購入されたほうが、バッテリーの関係、ずっといいのではないかなぁと思っています。今後の方向性を検討中です。

メインメニュー・ピアノロール

ピアノロールです。曲を選択すると始まります。

・デモソング、必要だったので一応いれてます
・記録、アプリで記録したシーケンス
・ストレージ、端末にあるMIDIファイル

オルゴールモードでは、GMのオルゴール音色にアサインします。
おまけで作りました。

#動画などとしてアップロードされる場合、著作権などなどご注意ください。

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

 ・ハイライト
  注目したいパートを目立たせます。

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

 ・トランスポーズ
  トランスポーズです。値を変更すると、一度AllNoteOffを処理します。

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

 ・描画フレーム/秒
  連続描画のスムーズさを、1秒に表示を更新する回数=フレーム数で選択します。
  FPSを高くすると、かくかくせず描画されます、その代わり、CPUとバッテリーを多く使います。

 ・横長に固定する
  画面を傾けても、ロックされているため、横長として表示します。
  鍵盤が上下左右逆になります。

接続確認がされているデバイス

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

動作確認済タブレット・スマホ:Google Pixel 6, 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、Windows、iOS

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

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

広告は、表示されます

メイン画面の一番下、アプリ内バナー広告がございます。

こちらは、Googleを利用する広告主様によるものです。その際、パーソナライズされた広告が表示されます。

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

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

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

広告を表示しています。

タイトルとURLをコピーしました