/note now all floats.

This commit is contained in:
Dooho Yi 2021-02-17 19:21:28 +09:00
parent c1a471b6bb
commit 3ab0e825eb
5 changed files with 1726 additions and 22 deletions

View file

@ -44,24 +44,24 @@ void route_note(OSCMessage& msg, int offset) {
// //
note.clear(); note.clear();
// //
note.onoff = msg.getInt(0); note.onoff = msg.getFloat(0);
if (note.onoff != 0) note.onoff = 1; if (note.onoff != 0) note.onoff = 1;
} }
// (2) --> /velocity // (2) --> /velocity
if (msg.fullMatch("/velocity", offset)) { if (msg.fullMatch("/velocity", offset)) {
note.velocity = msg.getInt(0); note.velocity = msg.getFloat(0);
} }
// (3) --> /pitch // (3) --> /pitch
if (msg.fullMatch("/pitch", offset)) { if (msg.fullMatch("/pitch", offset)) {
note.pitch = msg.getInt(0); note.pitch = msg.getFloat(0);
} }
// (4) --> /x // (4) --> /x
if (msg.fullMatch("/x", offset)) { if (msg.fullMatch("/x", offset)) {
note.x1 = msg.getInt(0); note.x1 = msg.getFloat(0);
note.x2 = msg.getInt(1); note.x2 = msg.getFloat(1);
note.x3 = msg.getInt(2); note.x3 = msg.getFloat(2);
note.x4 = msg.getInt(3); note.x4 = msg.getFloat(3);
note.ps = msg.getInt(4); note.ps = msg.getFloat(4);
// //
POSTMAN_SERIAL.write('['); // start byte of 'Note' POSTMAN_SERIAL.write('['); // start byte of 'Note'
POSTMAN_SERIAL.write((uint8_t *) &note, sizeof(Note)); POSTMAN_SERIAL.write((uint8_t *) &note, sizeof(Note));

24
post.h
View file

@ -66,14 +66,14 @@ private:
//message type Note : '[' + Note + ']' //message type Note : '[' + Note + ']'
struct Note { struct Note {
int32_t pitch; float pitch;
int32_t velocity; float velocity;
int32_t onoff; float onoff;
int32_t x1; float x1;
int32_t x2; float x2;
int32_t x3; float x3;
int32_t x4; float x4;
int32_t ps; float ps;
// //
void clear() { void clear() {
pitch = 0; pitch = 0;
@ -104,10 +104,10 @@ struct Note {
//message type Hello : '{' + Hello + '}' //message type Hello : '{' + Hello + '}'
struct Hello { struct Hello {
int32_t id; int32_t id;
int32_t h1; float h1;
int32_t h2; float h2;
int32_t h3; float h3;
int32_t h4; float h4;
// //
void clear() { void clear() {
id = 0; id = 0;

File diff suppressed because it is too large Load diff

View file

@ -238,11 +238,12 @@ void onNoteHandler(Note & n) {
//is it for me? //is it for me?
if (n.pitch == ID_KEY) { if (n.pitch == ID_KEY) {
// //
step_target = n.x1 * n.x3; step_target = n.x1;
step_duration = n.x2; step_duration = n.x2;
if (step_duration < 1000) step_duration = 1000;
// //
hello_delay = n.ps; hello_delay = n.ps;
if (hello_delay != 0 && hello_task.isEnabled() == false) { if (hello_delay > 0 && hello_task.isEnabled() == false) {
hello_task.restart(); hello_task.restart();
} }
// //

View file

@ -235,6 +235,8 @@ Task collect_post_task(1, TASK_FOREVER, &collect_post, &runner, true); // by def
void onNoteHandler(Note & n) { void onNoteHandler(Note & n) {
//is it for me? //is it for me?
if (n.pitch == ID_KEY) { if (n.pitch == ID_KEY) {
//
if (n.velocity < 0) n.velocity = 0;
//taak_on && taak_off //taak_on && taak_off
if (n.velocity == 0) { if (n.velocity == 0) {
if (n.onoff == 1) { if (n.onoff == 1) {