MIXandCC ・ミックス&シーシー

こんにちは

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

 こちらは、MIXandCC・ミックス&シーシー・MIDIコントローラアプリのホームページです。
※CC=ControlChange

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

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

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

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

MIDIコントローラー for Android

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

・簡単な操作性を目指しています。
・16パッドより選択したメッセージをスライダーから送信します。
・ドラッグドロップにより、配置変更が簡単になっています。
・名前も付けられます。

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

 対応するMIDIメッセージは、CCだけではありません。下記のMIDIメッセージに対応しています。

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

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

サウンドフォントエンジンも含まれています

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

 MIDIデバイスをお持ちでなくても、16パートの再生が可能になっています。
 使う上での制約は、それほど厳しくありません。気になるかたは、それぞれのサイトをご覧ください。

 使うためには、MIDIタブの、MIDIセクション出力として”SoundFont”を選択してください。
 MIXandCCで利用可能になります。

 そのうえで、MIDIインに”MIXandCC For Apps”を選択すると、別のアプリから”MIXandCC For Apps”あてに送られたMIDIが、サウンドフォントシンセサイザーとつながります。

 ただし、ルータの設定で、MainIO->MainIOのリンクを解除した場合を除きます。

 当初は自分で実装しようとしたのですが、私はJavaというプログラミング言語を用いていて、どうしても、音の始まりのJITで音飛びがでてしまうのを防ぐことができませんでした。
 また、FluidSynthを使わせていただくことで、SoundFontの厳密な規格に対応することが、できないと思い、私の手が回らないところまでやっていただけるという所で、使わせていただくようになりました。大変ありがたいです。

基本の特徴

 

 16のパッドから信号を選択します。
 後半半分の、ナビゲーションで編集することができて、また、ドラッグ&ドロップもできます。
 ドラッグ&ドロップは無効にもすることもできます。

 スライダーのほか、「値」ポップアップもあり、そこには、+1 -1ボタンもあり、細かい設定もおこなえます。
 SysEXについて、チェックサムを計算して付加できます。
 標準テンプレートのほか「Domino(C)たかぼー様」のためにつくられているXMLが手元にございましたら、少し再利用できそうです。※後述させていただきます。

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

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

 ※複数のメッセージを連結送信することは現在できませんが、今後実装の予定です。
 (たとえば、ポルタメントをONにして時間を1にするとき、
 「@CC 41 127 @CC 5 1」のコマンド1つですむようにしたいです。現状では、パッドが2つ必要です。)

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

ご利用にあたって

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

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

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

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

マニュアル

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

MIDIデバイス設定

下のナビゲーションバーの、MIDIより設定ください。MIDIアウト・イン・スルーの設定を行います。
アプリは、設定したデバイスをコントロールします。設定しなくても動作するかもしれませんが、なにも出来ないと思います。

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

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

・他社MIDIアプリとの連携
 他社アプリで、このソフトをMIDIインにしたい場合、”MIXandCC For Apps”とつなげてください。
 アプリ起動時には、自動接続しない種類にしています。(無限ループした場合への対処)

・Bluetooth MIDI
 BLE/USBボタンより、BleMidiを検索したり、BleMIDIになることを、選択いただけます。
 MIDI1.0のBleMIDIに対応しています。

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

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

・MIDIINを指定した場合、後述するコードの指定や、サウンドチェック、記録で使うことができます。

※Bluetoothが不安定になってしまったや、USBのロックが解除されないときには、ナビゲーションの設定ページを選択して、再始動することもお試しください。

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

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

・左下の緑スクエアを選んだときには、パッド選択で、緑のスライダー(下)にパッドがアサインされます。
・右上の赤スクエアを選んだときには、パッド選択で、赤いスライダー(右)にパッドがアサインされます。
・そして、それぞれ、緑と赤のスライダーの変化で、MIDIメッセージを送信します。
・また、右下の黄色スクエアを選んだときには、その間アサインを変更いたしません。

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

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

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

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

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

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

「コマンド」をタップするか、「ナビゲーション」をタップして、XMLを選択してください。

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


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

 ・フォント選択(フォントのロード、アンロード、何も設定しないと「GeneralUserGS」)
 ・フォント追加
 ・低レイテンシ(最近のAndroid端末の場合。レイテンシを詰められます。何も設定しないとON)
 ・平均律(何も設定しないと平均律、純正律も選択できます)
 ・純正律ルート(純正律の場合のルートキー)
 ・基本A4周波数(一般的に440hzや442hz)

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

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

シーン

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

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

選択したものが、メイン画面でロードされます。
メイン画面で変更しても自動保存はされないので、手動で保存する必要があります。
(フロントシーンとして一時的に記憶はします)

プリセットを使うこともできます。プリセットの種類は、もっと増やしていきたいですね。

リストから選択したさいに、アラートが表示されます。
「保存されているストック」では、OK:そのままロード。もう使わない:項目の消去、キャンセル:一覧に戻る。
「テンプレートから」では、OK:そのままロード。キャンセル:一覧に戻る。を選択します。

シーン、一括チャンネル変更

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

プレイヤー

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

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

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

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

記録準備(メトロノームはこちらです)
再生

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

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

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

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

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

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

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

開発時、動作を確認したインターフェイスの一覧です。これ以外もだいたい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、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

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

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

広告を表示しています。