-
Notifications
You must be signed in to change notification settings - Fork 1
MIDIシーケンサー
Reputeless edited this page Mar 14, 2017
·
3 revisions
# include <Siv3D.hpp>
void Main()
{
Window::Resize(480, 480);
Graphics::SetBackground(Palette::White);
Midi::SendMessage(MidiMessage::SetInstrument(0, GMInstrument::MusicBox));
const Array<uint8> midis{ 86, 84, 83, 81, 79, 77, 76, 74, 72, 71, 69, 67, 65, 64, 62, 60 };
const int32 dotSize = 30;
Grid<bool> dots(16, 16);
int32 previousLine = 0;
while (System::Update())
{
const int32 currentLine = Time::MillisecSince1601() / 160 % 16;
if (currentLine != previousLine)
{
for (auto i : step(dots.height))
{
Midi::SendMessage(dots[i][currentLine] ?
MidiMessage::NoteOn(0, midis[i]) : MidiMessage::NoteOff(0, midis[i]));
}
previousLine = currentLine;
}
for (auto p : step({ dots.width, dots.height }))
{
Rect rect(p * dotSize, dotSize, dotSize);
if (rect.leftClicked)
{
dots[p.y][p.x] = !dots[p.y][p.x];
}
const Color color = HSV(40, 0.2 + dots[p.y][p.x] * 0.8 - (p.x == currentLine) * 0.2, 0.9 + dots[p.y][p.x] * 0.1);
rect.stretched(-1).draw(color);
}
}
}
- Siv3D の基本
- 図形を描く
- テクスチャを描く
- テキストを描く
- 文字列と数値の変換
- キーボード入力
- マウス入力
- サウンドの再生
- MIDI の再生
- ウィンドウと背景
- 図形のあたり判定
- 乱数
- ダイアログ
- ドラッグ & ドロップ
- アプリの状態
- テキストファイル
- INI, CSV, JSON
- バイナリファイル
- GUI
- アセット管理
- 画像編集
- Web カメラ
- マイク入力
- 経過時間の測定
- HSV カラー
- ファイルダウンロード
- 3D 描画
- 2D のレンダーステート
- 3D のレンダーステート
- パーティクル
- スクリーンショット
- アプリケーションの公開
- さらに学ぶには
- アプリランチャーを作ろう
- 音楽プレイヤーを作ろう
- 横スクロールゲームを作ろう
- ドット絵エディタを作ろう
- シーン遷移をサポートする SceneManager の使い方
- Siv3D ミニサンプル集
- タスクシステムを使う
- スケッチ
- 画像ビューアー
- オーディオスペクトラム
- マイク入力スペクトラム
- 文字色の反転
- 天気予報
- ドットお絵かき
- 15パズル
- ブロックくずし
- 時計
- 音楽プレイヤー
- ピアノ
- ライフゲーム
- シーン管理
- 地球
- 3Dシーン
- 3D交差判定
- Wooden Mirror
- シューティングゲーム
- Image to Polygon
- Sketch to Polygon
- 軌跡
- Plot3D
- テンポとピッチの変更
- 長方形の影
- Twitterクライアント
- Polygon to Mesh
- 3Dテキスト
- アプリ終了の確認
- 地形の生成
- アーカイブファイル
- GUIのアニメーション
- Aero Glassエフェクト
- Glitch
- リンクテキスト
- 付箋
- シーン切り替え(シルエット)
- MIDIシーケンサー
- 数つなぎ
- 画面を揺らす
- 対称定規
- aobench
- MIDIビジュアライザー
- 電卓
- 手書き文字認識
- 顔検出
- 音声合成
- Image to PhysicsBody