タグ付けされた質問 「midi」

4
カスタムプラスチックケースを作る
私はMIDIboxのような多くの電子DIYのプロジェクトに取り組んできました(http://www.ucapps.de/)、それはいつも楽しいと作業だったが、最後に、問題は、私はクールなギアで終わったということでしたが、貧しいケーシング内、たとえば:非常に大まかにカットされた木材(自分で!)。 ラベリング、丸穴、角穴のあるカスタムプラスチックケースを作成するための2014年のベストソリューションは何ですか? 例: 3Dプリンティングはこの目的に適合していますか?他の解決策はありますか? 希望数量= 1単位として、そのようなサービスを提案する会社はありますか?

9
膨大な数のアナログセンサーをリアルタイムで読み取る
ギターのような首を持つMIDIのようなコントローラーを構築しようとしています。その首には、圧力センサーの巨大なマトリックスがあります。コントローラーは3つのストリングをエミュレートします。 これが機能する方法は次のとおりです。電源(3.3Vまたは5V、おそらく今のところは問題ありません)に接続されている3枚の長尺の両面銅テープ(首まで幅0.5 cm)があります。これらのストリップには、圧力に基づいて抵抗率を変化させるベロスタットの層があります。ベロスタットの上部には、何かに接続された銅テープの列またはセルの別の層があり、ベロスタット層を介して電圧の読み取り値を吐き出します。首の長さは約40 cmなので、少なくとも80列あります。 首に沿ったチャートの列として銅テープの下部の3つのストリップを想像すると、センサーは測定方法に応じてセルまたは行のいずれかになります(列を多重化することもできると思ったので、ただし、これを簡単にする特別な条件がいくつかあります。これはギターのようなコントローラーなので、すべての相互作用を測定する必要はありません。コントローラーの本体に最も近いタッチのみが重要です。また、8ビットの解像度でも十分に正確である必要があります。とにかく、255の圧力レベルはおそらく必要以上です。 難しい部分: 測定は、ハンマーオンなどを検出するのに十分なリアルタイムyである必要があります(サンプルレートをどれだけ高くする必要があるかわかりません-良好な測定と再生可能性のために数kHzで推定)およびコントローラーのデジタル出力はMIDI(3つの独立したチャンネル-文字列ごとに1つ)またはRaspberry Piで処理できるデジタル信号。 今、私の知識は本当に限られているので、仕事に適したツールを考えることができませんでした。しかし、私が知っていることは、それは可能です。非常によく似た手法を使用する同様の異なるコントローラーがあります(私が気づくまで、実際にリバースエンジニアリングしました。特許があり、その方法に関する情報は思ったほど難解ではありません)、それはROLIと呼ばれますシーボード。 TL; DR: 約240個のセンサー 同じ回線で動作する80のグループに分離できます これはリアルタイムのアプリケーションです。タッチされるたびにすべてのセンサーから圧力を取得する必要があります(いくつかの条件が適用されます。上記を参照) 事前に感謝します、私はそれが読むことがたくさんあることを知っています。私はどんな提案にも感謝しており、あなたが私が作り出すために着手した恐ろしい混乱を達成するのを手伝うことができれば非常にうれしいです! 私がこれまで考えてきたこと: 行と列を多重化し、MCP3008以上のADCで各セルを読み取り、位置信号の最小の相互作用のみを最終信号にプッシュする(デイジーチェーンまたはツリーのような)ATmegas通信のオーバーヘッド。また、初期のモデルにはリボンポテンショメータが含まれていましたが、デザインが悪い(何度か試行しましたが、十分にクールではなかった)ため、私はそれを破棄しました。 編集/更新: これまでのところ良い提案をありがとう!彼らのおかげで、問題をより明確に表現できるようになりました。 80行×3列の圧力センサーのマトリックスがあります。人間がセンサーマトリックスと対話しているとき、近接している複数のセンサーがタッチを検出しますが、これは列に沿っている場合のみです。カラムは機械的に分離されています。センサーの抵抗は100Ω〜1kΩです。これらのセンサーはすべて、8ビットの深さで読み取り、処理する必要があり、結果は少なくとも1 kHzのレートで送信する必要があります。したがって、1回の読み取り/処理にかかる時間は1ミリ秒未満である必要があります。列ごとの最終出力は、float32では4バイト、uint8では1バイトである必要があります。float32は、列に沿った最初のインタラクションの平均位置を示します。相互作用は、特定のしきい値を超える圧力を持つセンサーの連続クラスターとして定義されます。これが処理がミックスに入る場所です:読み取り値がしきい値を超えるまで、列は下方向に走査されます。これは、インタラクションの開始としてカウントされます。すべてのセンサーの圧力と位置は、最初のセンサーまで記憶され、最大(おそらく)最大4つの連続センサーでしきい値を下回ります。記録された相互作用のすべてのセンサーから、2つのセンサーのみが処理されます-最高圧力(最低抵抗)を読み取るセンサーと、そのすぐ上または下にある最高センサー。浮動小数点位置は、圧力で重み付けされた2つのセンサー位置を平均することで計算されます。相互作用の全体的な圧力は、0と255の間にクランプされた両方の圧力を加算するだけです(unit8の両方の圧力をuint16に追加し、丸めることなく2で除算し、不要なビットを破棄します-これは高速です)。これはすべての列で発生する必要があります。15バイトのサイズの結果は、SPIを介して、シンセサイザーとして機能する小さなコンピューター(Raspberry Pi B3)に送信されます。私は、送信方法については設定されていません。SPIが仕事にふさわしいツールではない場合、Raspberry Piで処理できる通信の方法を採用しても構いません。これは音楽とインタラクティブなアプリケーションであるため、レイテンシは非常に重要です。 私の正確な質問は次のとおりです。これは、銀行を壊すことなく単一のマイクロコントローラーで解決できますか?趣味のプロジェクトのために数百ドル相当のICを買う余裕はありません。どのハードウェアをお勧めしますか?警戒する必要がある非自明な警告はありますか? これまでの回答から得たアプローチは、各列に個別に電力を供給し、SPIを介してArduinoに接続された5つの16チャンネルADC(ADS7961)で行を読み出すことでした。これは、最も簡単で安価なアプローチではないか、1 kHzを超えるレートに達するのに十分な速さではないのではないかと心配しています。 免責事項:私は通常、理論化学者であり、電気工学に関しては恐ろしいアマチュアです。私が知っていることはすべて自習であり、専門的なバックグラウンドがありません(これが私がより知識のある人々から助けを求めている理由です)。しかし、私はソフトウェアに関する私のやり方を知っています。ソフトウェアに関することなら何でも、十分な時間をかけて考えます。また、私はドイツ人ですので、時折文法の欠陥を許してください。

4
Arduinoを使用したMIDIシーケンサーのタイミング精度
私はこれらの音楽シーケンサーを構築します。 ただシーケンサーではなく、シーケンサーの物理インターフェイスです。シーケンサーは、シーケンサーが接続するラップトップで実行されるアプリケーションです。これにより、ユーザーはその場でドラムループを作成できます。とても楽しいですが、シーケンサーが「オンボード」ではないため、ラップトップが必要です。 私の大好きなのは、私のデバイスに搭載されたシーケンスを実行することです。 USB MIDI接続のクラスコンプライアンスを解決する方法を知っているとしましょう。また、5ピンのDINポートからMIDIノートを送信するためにarduinoを接続する方法を理解できるとしましょう。私が最も心配しているのは、イベントループのすべての実行で、分単位のタイミングに一貫性がないため、時間の経過に伴うテンポのドリフトです。 私が知っているいくつかのこと: delay()テンポループの制御に依存すべきではありません。遅延はファームウェアのすべての操作を停止します。シーケンスの実行中に物理ユーザーインターフェイスに変更がないかポーリングする必要があるため、これは機能しません。 に基づく計算millis()は、ファームウェアが一定のカウントが経過しても動作し続けて動作できるため、より優れています。 私の物理的な制御のいずれも割り込みルーチンをトリガーしていませんが、一部の操作はメインのloop()実行を遅らせる可能性があります。ユーザー入力を待機する関数を設計すると、millis()カウントがはるかに大きい場合に「デッドライン」が機能しないという問題が明らかに発生する可能性があります。私はこの問題が私自身の設計によるものであることを知っています... 質問: A. AVRベースのarduinoは、ユーザーインターフェイスをポーリングしてミッションクリティカルなタイミングループを実行するための適切なマイクロコントローラーですか?ARMベースのArduinoがもっと高速になったことを知っています。Teensy 3.0はより良い代替手段でしょうか?これらはどちらも3.3Vボードであるため、これは作業するための別の問題セットですが、ここでは無視します。 B.タスクを2つのマイクロプロセッサに分割する必要がありますか?1つはユーザーインターフェイスのポーリングと更新を処理し、もう1つはミッションクリティカルなタイミングループ用です。 c。他に何か? 私の主な目標は、コンピュータをまったく使用する必要がないことです。スイングについても計算したいのですが、この場合、スイングは、ロックされたタイミングの正確なテンポが得られなければ意味がありません。助言ありがとう!
11 arduino  timing  midi 

1
MIDI IN:多くの回路
6N138オプトアイソレーターを使用して、シリアルポートRX Cicruit(Raspberry Pi、またはArduino、またはその他...)へのMIDI INを構築しています。 しかし、私は多くの異なる回路を見つけました、なぜそんなに違うのか、そしてどれを選ぶべきか分かりません: これらは正しいですか? まず、470オームと1KOhm抵抗で、この1 (ソース:electro-tech-online.com) 別の、それぞれ1KOhmと3.3KOhm抵抗器 (ソース:dernulleffekt.de) 上の公式のものでmidi.org、抵抗値は異なりますが、6N138に基づいていません... http://www.midi.org/images/midihw.gif 最後のこと(多分ここのトピックから外れている):Raspberry PiのGPIOのRXに接続する場合、GPIOのRXでの破損を防ぐために、光アイソレータに5Vではなく3.3Vを使用する必要がありますか?

1
Arduinoシリアル通信プロトコル設計
電子音楽用のドラムシーケンサーインターフェースを作成しています。 マイクロプロセッサとしてarduino megaを使用しており、現在、シリアル通信用に作成した処理プログラムにインターフェイスしています。そこから、OSCメッセージがMax / MSPプログラムに送信され、共同作業を行うパートナーがmidiデータストリームを作成するために作成しました。 そう: 私の物理インターフェイス-> Arduino Mega->シリアルI / O->処理-> OSC-> Max / MSP-> Midi(->音楽アプリ) このパスを選択した理由の一部は、ステップを削除するのに十分なほど巧妙ではないこと、および物理インターフェイスを希望どおりに更新できること、物理インターフェイスを多目的にできること(複数のモードをフェーダー、ノブ、音声選択ボタンなど)、およびミッションクリティカルなタイミングとリズムの変更(別名「スイング」)を確実にできるようにします。 私のシリアルメッセージは次のように設定されています。 PL,1; // transport control: play PL,0; // transport control: stop SW,30; // swing value 30 TM,130; // tempo value 130 SD,1,8,04,0; // Step sequencer data, pattern 1, voice 8 (of 8), step …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.