音出しその2 PitchBend

PitchBend 解決。お試しはこちら。横ドラッグで、PitchBend。

PitchBend できないのかなぁ と 色々さぐってたら。

私 大きな勘違いしてたようです。PitchBendは エクスクルーシブメッセージじゃなくて、イベントメッセージじゃないですかっ! ControllChange なんかより上のレベルでした。なんか変だと思った。

NoteOnとか、ControllChangeとかと同じレベルに実装されてなきゃいけないものでした。ということは、ない。PitchBendがない。MidiOutput クラスに、sendPtichBendとかいうメソッドが実装されてないといけないはず。

ないものは作ってしまえというわけで、rwmidi ライブラリに手を入れました。

MidiEvent.java   に、PitchBend イベントを追加

public static final int PROGRAM_CHANGE = 0xC0;
public static final int PITCH_BEND = 0xE0;

PitchBend イベントの イベントコードは 0xE0

MidiOutput.java に sendPitchBend メソッドを追加。

/**
* Send a Pitch Bend on this output
* @param channel Channel on which to send the message
* @param value Program Change value
* @return 1 on success, 0 on error
*/
public int sendPitchBend(int channel, int value) {
ShortMessage msg = new ShortMessage();
try {
int bb = value & 0×7f;
int ub = value >> 7;
msg.setMessage(MidiEvent.PITCH_BEND, channel, bb, ub);
receiver.send(msg, -1);
return 1;
} catch (InvalidMidiDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return 0;
}
}

これで 0~16383 の範囲の数字で 正常動作するはず。

processingの mouseDragged イベントにコード追加。

void mouseDragged() {
// Xdrag で Bent
print( “mouse dragged ” );
int bend = (mouseX - org_mouseX)*8+8192;
if( bend<0 ){ bend=0; }
if( bend>16383 ){ bend=16383; }
println( bend );
output.sendPitchBend( ch_s, bend );

これで 実行。 をぉ いい感じ。横ドラッグで、PitchBendがかかってる~。

ただ、これも NoteOn 時に リセットしてやらないと ダメな感じ。

それも実装。

mousePressedイベント

output.sendPitchBend( ch_s, 8192 );
output.sendController( ch_s, 11, vel_s );
output.sendNoteOn( ch_s, pit_s, vel_s);

8192 と マジックナンバー書いてしまったけど、まぁ いいかな。8192が センターだし、これでよしとしよう。

お試しは、こちら。 はぁ、よかったよかった。

rwmidi <たろう>Patch の バイナリ(jarファイル)は こちら。ソースはこちら。いずれも、解凍して 使ってください。

コメント / トラックバック 17 件

  1. ねぎ より:

    初めまして。
    processingで音をだす方法を探ってみたらここにたどり着きました。
    とりあえずコピペで音を出してみました。
    鳴った瞬間はとてもうれしかったです。

    貴重な資料を残して下さってありがとうございます。

    それでは。

  2. リピートです。前回購入させていただいた時と同じく、とても迅速ていねいな対応で、すぐに届けていただけました☆
    商品と一緒に、納品書と手書きの気持ちのこもったお手紙が入っていました☆
    とても気持ちよくお買い物をさせていただける、信頼できるお店だと思います☆
    商品もとても良品ですので、また購入させていただきたいです!
    コーチ ショルダーバッグ♪送料無料 中古ABランク コーチ ショルダーバッグ ミニシグネチャー ソーホー スモール フラップ 6818 キャンバス スウェード レザー ピンク 中古 ワンショルダー セミショルダー ハンドバッグ 革 スエード 150305025 COACH
    可愛くてきれいな良品です☆
    中古ランクABでしたが、商品説明で掲載されていたスレなど、全然気にならないぐらいとてもきれいで、私としてはまったく使用感無いレベルです☆(笑)
    デザインもとても可愛く、内側のポケットや仕切りも使いやすい仕様なので、小ぶりなわりに使いやすさもあり、購入して良かったです!!
    姉への誕生日プレゼントに贈ったのですが、姉もとても喜んでいました☆
    本当は自分でも欲しかったぐらいです☆
    ブルガリ ブランドコピー http://www.giginza.com/brand/list-138.html

  3. 2018 激安通販専門店
    ロレックス、ブルガリ、オーデマ ピゲ、
    グッチ、エルメス、パネライ、シャネル、
    パテックフィリップ偽物(コピー商品)の腕時計の販売、通販。
    当店のスーパーコピー商品は他店よりも質が高く、金額も安くなっております。
    ご購入する度、ご安心とご満足の届けることを旨にしております

  4. ブランド 激安、安心、安全大特価
    【新品】バッグ、財布、靴、帽子、アパレル、ベルト、その他小物 シャネル グッチ エルメス ロレックス ROLEX VUITTON
    シャネル グッチ エルメス ROLEX S級 シャネル S グッチ S級 エルメス S級 ROLEX
    AAA級 VUITTON AAA級 シャネル AAA級 グッチ AAA級 エルメス AAA級品 N級品ルイ ヴィトンS級品
    シャネルS級品 グッチS級品 エルメスS級品 ロレックスS級品 ルイ ヴィトンAAA級品 シャネルAAA級品 グッチAAA級品 エルメスAAA級品
    ■スタイルが多い、品質がよい、価格が低い!
    ■ 送料無料(日本全国) ご注文を期待しています!
    ■信用第一、良い品質、低価格は
    ■当社の商品は絶対の自信が御座います
    激安、安心、安全にお届けします.品数豊富な商
    商品数も大幅に増え、品質も大自信です
    100%品質保証!満足保障!リピーター率100%!
    スーパーコピー ヴィトン ベルト ゾゾタウン https://www.ginza24.com/product/category/91

  5. ウブロコピー腕時計品質NO.1
    2021秋冬最適ウブロコピー腕時計
    皆さん、こちらへどうぞ、ご注意くださいね。
    2021秋冬がソそろそろ来ますよ。
    皆様へのいい気持ちを与えることができるため、
    こういう季節に最適商品が登場しております。
    ウブロコピー,ウブロブランドコピー,ウブロコピー時計,ウブロコピー代引き,ウブロコピー 時計通販,
    ウブロコピー時計販売弊店,は最低の価格と最高のサービスを提供しております。
    皆様は最高の満足を収穫することができます。
    ▲下記の連絡先までお問い合わせください。
    是非ご覧ください!
    ヴィトン スーパーコピー 新作 3ds https://www.gmt78.com/product/detail/8528.htm

  6. ありがとうございました。商品無事にとどきました。とても良い取引ができました。またの機会が有りましたら、よろしくお願いします。
    ルイヴィトンストール♪送料無料 新品同様 ルイヴィトン スカーフ ヤヨイ クサマ パレオ モノグラム ウェーブ M74632 コットン100% ジョーヌ 新品 スカーフマフラー 草間彌生 イエロー ブラウン 黄色 141006043 ルイ・ヴィトン
    クサマヤヨイのLVコラボ アイテムとして 綺麗な配色で思ったより派手でなくよかったです。
    chanel スーパーコピー ピアス wiki https://www.xokopi.com/product/detail-3960.html

  7. この度は大変気持のよいお取引をさせていただき、とても嬉しく感謝します。またよろしくお願いします。ありがとうございました。(*^‐^*)
    ☆送料無料☆新品SAランク【送料無料】★ブルガリ ブルガリ★B-zero1/ビー・ゼロワンリング★Ref.AN191025★4バンド/M★750(K18YG)イエローゴールド★サイズ49★131003020★【質屋出店】【新品】
    とてもよい買い物
    この度は大変気持のよいお取引をさせていただき、とても嬉しく感謝します。またよろしくお願いします。ありがとうございました。(*^‐^*)
    スーパーコピー ヴィトン 時計 007 https://www.kopi66.com/product/detail.aspx?id=10239

  8. 偽物ブランド激安市場
    ━…━…━…━…━…━…━…━…━…━…━…
    ルイヴィトン、シャネル、グッチ、エルメス、クロエ、プラダ、 ブルガリ、ロレックス、カルテ
    ィエ 、オメガ偽物(コピー商品)のブランドのバッグ、財布、腕時計の販売、通販。
    ━…━…━…━…━…━…━…━…━…━…━…
    ◇各種のベルト(BELT)、最低の価格の2500円
    ◇ブランドのバッグ、最低価格の4500円
    ◇ブランドの腕時計、最低の価格の7000円
    ━…━…━…━…━…━…━…━…━…━…━…
    ◆ スタイルが多い、品質がよい、価格が低い!
    ● SS品質 シリアル付きも有り 付属品完備!
    ◆ 必ずご満足頂ける品質の商品のみ販売しております.
    ● 品質を最大限本物と同等とする為に相応の材質にて製作している為です.
    ◆ 絶対に満足して頂ける品のみ皆様にお届け致します.
    人気の売れ筋商品を多数取り揃えております。
    全て激安特価でご提供.お願いします.
    クロムハーツ スーパーコピー 革 三つ編み https://www.ginzaoff.com/watch/menu-pid-111.html

  9. ルイヴィトンコピー老舗
    海外人気ルイヴィトン コピー老舗です。
    いろいろ高品質ルイヴィトンコピー品を販売しております。
    開業多年、安心と信頼のヴィトンバッグコピー激安専門ショップです
    ヴィトン セカンドバッグ スーパーコピー 2ちゃん https://www.kopiok.com/product/detail-5307.html

  10. ルイヴィトン - N級バッグ、財布 専門サイト問屋
    弊社は販売ルイ・ヴィトン) バッグ、財布、 小物類などでございます。
    弊社は「信用第一」をモットーにお客様にご満足頂けるよう、
    送料は無料です(日本全国)! ご注文を期待しています!
    下記の連絡先までお問い合わせください。
    是非ご覧ください!
    激安、安心、安全にお届けします.品数豊富な商
    商品数も大幅に増え、品質も大自信です
    100%品質保証!満足保障!リピーター率100%!
    スーパーコピー 2ch 財布 ランキング https://www.ginzaoff.com/watch/product-23109.html

  11. 入金後すぐ発送して頂けました。テープをはがしやすくしてくださったり、梱包もとっても丁寧でその気遣いが嬉しかったです。使用感のある商品と記載されていたのですが、思っていた以上に綺麗でびっくりしました。
    ヴィトン スーパーコピー 高品質 ウィッグ https://www.xokopi.com/product/detail-7405.html

  12. 初めてのお付き合いで、財布を購入しました。
    数あるショップの中で購入に決めた一番の理由は、事前に掛けた、商品説明確認の電話対応が素晴らしく丁寧で解りやすかったことが決めてでした。
    実際に商品が届いて、箱を開封してみたら また二度目のビックリ。
    商品を包むクッション材の梱包テープが、購入者が剥がしやすくしてある細かいサービスには驚きました。
    今まで色々なショップで購入していますが、初めての事です。本当に、こちらのショッで購入して良かったです。
    又、良い商品が出品されたら購入検討してみたいと思います。
    ヴィトン ビジネスバッグ スーパーコピー 2ちゃんねる https://www.xokopi.com/product/detail-7337.html

  13. 良いお店です。梱包に感動しました。今まで、他の店で購入した事がありますが、こんなに、丁寧な梱包は初めて見た。商品が、崩れない、梱包。ありがとうございます。
    【最短当日発送】遅くとも1~2営業で出荷可能、全国一律送料無料。販売価格はフリーダイヤルにてご相談させてください♪クロエ トートバッグ エクリプス 8AS527 ブロンズ レザー新品 Chloe
    スーパーコピー ヴィトン 通販 公式 https://www.gmt78.com/product/detail/9295.htm

コメントをどうぞ