Created
December 4, 2023 12:54
-
-
Save RyoKosaka/a095b077f8b90efa1734e0295a415bec to your computer and use it in GitHub Desktop.
プロダクトデザイン応用実習サンプルコード - 可変抵抗と値を読み取りUSB経由でMIDI(コントロールチェンジ)を送る
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// プロダクトデザイン応用実習サンプルコード - 可変抵抗と値を読み取りUSB経由でMIDI(コントロールチェンジ)を送る | |
// USB経由でMIDIを扱うライブラリ「USB-MIDI」を使いますという宣言 | |
#include <USB-MIDI.h> | |
USBMIDI_CREATE_DEFAULT_INSTANCE(); | |
int exCC = 0; // 同じ値のMIDIを送り続けないためにループの最後でCCの値を格納しておくための変数 | |
void setup() | |
{ | |
// MIDIの初期設定と受け付けるチャンネルの指定(このコードでは送るだけなのでなんでもいい) | |
MIDI.begin(1); | |
} | |
void loop() | |
{ | |
int sensorValue = analogRead(A0); // A0ピンで読んだ値に名前をつける | |
int CC = map(sensorValue, 0, 1023, 0, 127); // sensorValueの0から1023を0から127に変換してCCという変数に格納 | |
if (CC != exCC) // 読み取った値と前のループの値を比較して異なっていた場合 | |
{ | |
MIDI.sendControlChange(2, CC, 1); // チャンネル1を使ってコントロール番号2にコントロールバリューとして変数CCを送る | |
} | |
exCC = CC; // 次のループで比較するためにこのループでのCCの値をexCCに保存しておく | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment