質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1079閲覧

openframeworksで作られた作品から発せられるMIDIイベントが正しくない様子

gomigorou

総合スコア7

openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/07/26 10:10

こちらのプロジェクトを動かそうとしております。

https://github.com/nama-gatsuo/SequenceEditor

私の環境は下記の通りです

  • MacOSX High Sierra
  • openframeworks 0.11.0
  • XCode Version 9.0.1

必要なaddon (addons.makeより)

  • ofxDeferredHelper
  • ofxDeferredShading
  • ofxGui
  • ofxImGui
  • ofxMidi

このうち

  • ofxDeferredHelper
  • ofxDeferredShading

は、現在だいぶ内容が変わっていたので、プロジェクトの最終コミット時期(21 Jun 2019)頃のバージョンまで戻して使用しました。

ビルドを通すために、コードを少し修正しました。
修正したコードを載せておきます。
https://github.com/ottonove/SequenceEditorClone

プロジェクト内のMakefileがあるディレクトリで "make" を実行。 (XCodeは使用せず)
Makefileはプロジェクト同梱のものを変更せずに使用しました。

"make run" または "bin/SequenceEditor.app" を実行し、シーケンサにてMIDIイベントを発生させているのですが、どうもそのイベントのノートナンバーの情報が、正しくない様子なのです。

なので、次の様にログ出力処理を追加してみると、MIDIイベント発生の度に下記の様なログが出力されます。

src/model/MidiSender.h ...略... void sendMidiOn(unsigned char ch, unsigned char midiNum, unsigned char velocity) { ofLogNotice() << "note: " << midiNum; //追加 midiOut.sendNoteOn(ch, midiNum, velocity); } ...略...
...略... [notice ] note: ) [notice ] note: + [notice ] note: * [notice ] note: ( [notice ] note: + [notice ] note: - [notice ] note: . ...略...

MIDIのノートナンバー(64,112,144 など)が出力されると期待していたのですが、記号1文字です。(たまに数字1文字もあります)
これで正しいのでしょうか?

ご教授頂けると幸いです。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そのように出力されるのは正しい挙動です。
数値として表示するには下記のように修正してみてください。

//ofLogNotice() << "note: " << midiNum; //追加 ofLogNotice() << "note: " << +midiNum;

参考
https://qiita.com/EqualL2/items/05dba37850e1c1aae521
http://www.kusa.ac.jp/~kajiura/c/data/newpage1.htm

投稿2020/07/26 14:01

Kapustin

総合スコア1186

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gomigorou

2020/07/27 03:57

ありがとうございます! たしかに"+"を付ける事で、数値が表示されました。 MIDIのノートナンバー(Pitch?)は、unsigned charの255までで賄えるという事ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問