From 9c76b2927781aa60ca03d18af2c137e0134be4a0 Mon Sep 17 00:00:00 2001 From: Dooho Yi Date: Thu, 18 Feb 2021 17:57:30 +0900 Subject: [PATCH] crickets --- crickets/platformio.ini | 62 ++- crickets/src/crickets.h | 12 - crickets/src/main.cpp | 530 +++++++++++----------- post.h | 7 +- puredata/piano_access_mesh_x_2.pd | 701 ++++++------------------------ roundly/src/main.cpp | 18 +- 6 files changed, 425 insertions(+), 905 deletions(-) delete mode 100644 crickets/src/crickets.h diff --git a/crickets/platformio.ini b/crickets/platformio.ini index 414e82a..c141c6c 100755 --- a/crickets/platformio.ini +++ b/crickets/platformio.ini @@ -1,52 +1,44 @@ +; < NOTE > + +; to enable verbose output add option --> +; $ platformio run --verbose + +; to make this permanent for the proj. --> +; $ platformio settings set force_verbose Yes + +; then confirm the change --> +; $ platformio settings get + + +; // pio v 4.0 'Build options' +; - build_type +; - build_flags +; - src_build_flags +; - build_unflags +; - src_filter +; - targets + + [platformio] -default_envs = nodemcuv2 +default_envs = d1_mini_pro [env] framework = arduino -upload_speed = 921600 -upload_port = - /dev/ttyUSB0 - /dev/tty.SLAB_USBtoUART +upload_port = /dev/ttyUSB0 lib_deps = - SPI - Wire - 64 ; ArduinoJson - 1269 ; Painless Mesh + 5825 ; Vector + 721 ; TaskScheduler [env:nodemcuv2] platform = espressif8266 board = nodemcuv2 lib_deps = ${env.lib_deps} - ESP8266WiFi - Servo(esp8266) +upload_speed = 921600 ; 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 [env:d1_mini_pro] platform = espressif8266 board = d1_mini_pro lib_deps = ${env.lib_deps} - ESP8266WiFi - Servo(esp8266) -upload_speed = 460800 -; 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 - -[env:huzzah] -platform = espressif8266 -board = huzzah -lib_deps = - ${env.lib_deps} - ESP8266WiFi - Servo(esp8266) - -[env:esp32] -build_unflags = -std=gnu++11 -build_flags = -std=gnu++14 ; AsyncTCP wants this. -platform = espressif32 -board = esp32doit-devkit-v1 -upload_speed = 921600 -; upload_port = /dev/ttyUSB0 -lib_deps = - ${env.lib_deps} - 1826@1.0.3 ; AsyncTCP - ESP32Servo +upload_speed = 460800 ; 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 diff --git a/crickets/src/crickets.h b/crickets/src/crickets.h deleted file mode 100644 index a30b014..0000000 --- a/crickets/src/crickets.h +++ /dev/null @@ -1,12 +0,0 @@ -//======================== -#define CRICKET_A_KEY 120 // geared (esp8266) -#define CRICKET_E_KEY 121 // geared (esp8266) -#define CRICKET_I_KEY 122 // geared (esp8266) -#define CRICKET_O_KEY 123 // geared (esp8266) // servo pin is different (D7) -#define CRICKET_U_KEY 124 -#define CRICKET_W_KEY 125 -#define CRICKET_Y_KEY 126 -#define CRICKET_N_KEY 127 // fishing-fly (esp32) -//======================= - -#define CRICKET_KEY CRICKET_N_KEY // A-E-I-O-U-W-Y-N (up to 8 crickets) - KEY 120 ~ 127 diff --git a/crickets/src/main.cpp b/crickets/src/main.cpp index 2185f21..5d14c51 100755 --- a/crickets/src/main.cpp +++ b/crickets/src/main.cpp @@ -1,353 +1,316 @@ // -// wirelessly connected cloud (Wireless Mesh Networking) -// MIDI-like -// spacial -// sampler keyboard +// wirelessly connected cloud (based on ESP-NOW, a kind of LPWAN?) // // -// Forest all/around @ MMCA, Seoul +// Conversation about the ROOT @ SEMA warehouses, Seoul // // -// 2020 10 14 +// 2021 02 15 // //===================== // +// 'HAVE_CLIENT' +// --> i have a client. enable the client task. +// +// 'SERIAL_SWAP' +// --> UART pin swapped. +// you want this, when you want a bi-directional comm. to external client boards (e.g. teensy). +// // 'DISABLE_AP' -// --> disabling AP is for teensy audio samplers. -// they need this to reduce noise from AP beacon signals. -// but, then they cannot build-up net. by themselves. -// we need who can do AP.. -// ==> TODO! just prepare some 'dummy' postmans around. w/ AP activated. -// -// 'DISABLE_I2C_REQ' -// --> a quirk.. due to bi-directional I2C hardship. -// ideally, we want to make this sampler node also speak. -// but, I2C doesn't work. maybe middleware bug.. we later want to change to diff. proto. -// for example, UART or so. -// ==> BEWARE! yet, still we need to take off this.. for 'osc' node. -// -// 'SET_ROOT' -// 'SET_CONTAINSROOT' -// --> for the network stability -// declare 1 root node and branches(constricted to 'contains the root') -// to improve the stability of the net +// --> (questioning)... // //==================== //===================== -#define SET_CONTAINSROOT +// +// (1) standalone +#if 1 +// (2) osc client (the ROOT) +#elif 0 +#define SERIAL_SWAP +#define HAVE_CLIENT +// (3) sampler client +#elif 0 +#define SERIAL_SWAP +#define HAVE_CLIENT +#define DISABLE_AP +// +#endif +// //==================== -//======================== -#include "crickets.h" -#define CRICKET_KEY CRICKET_N_KEY // A-E-I-O-U-W-Y-N (up to 8 crickets) - KEY 120 ~ 127 -//======================= +//======================== +#define CRICKET_A_KEY 120 // geared (esp8266) +#define CRICKET_E_KEY 121 // geared (esp8266) +#define CRICKET_I_KEY 122 // geared (esp8266) +#define CRICKET_O_KEY 123 // geared (esp8266) // servo pin is different (D7) +#define CRICKET_U_KEY 124 +#define CRICKET_W_KEY 125 +#define CRICKET_Y_KEY 126 +#define CRICKET_N_KEY 127 // fishing-fly (esp32) +//======================= + +//======================== +#define ID_KEY CRICKET_U_KEY +//======================= //======================== -#define MESH_SSID "forest-all/around" -#define MESH_PASSWORD "cc*vvvv/kkk" -#define MESH_PORT 5555 -#define MESH_CHANNEL 5 -#define LONELY_TO_DIE (1000) +// +#define LED_PERIOD (11111) +#define LED_ONTIME (1) +#define LED_GAPTIME (222) +// +#define WIFI_CHANNEL 5 +// +// 'MONITORING_SERIAL' +// +// --> sometimes, the 'Serial' is in use (for example, 'osc' node) +// then, use 'Serial1' - D4/GPIO2/TDX1 @ nodemcu (this is TX only.) +// +// --> otherwise, MONITORING_SERIAL == Serial. +// +#if defined(SERIAL_SWAP) +#define MONITORING_SERIAL (Serial1) +#else +#define MONITORING_SERIAL (Serial) +#endif +// //======================= -// -// LED status indication -// phase 0 -// - LED => steady on -// - booted. and running. no connection. scanning. -// phase 1 -// - LED => slow blinking (syncronized) -// - + connected. -// -#if defined(ARDUINO_ESP8266_NODEMCU) // nodemcuv2 -#define LED_PIN 2 -#elif defined(ARDUINO_ESP8266_WEMOS_D1MINIPRO) // d1_mini_pro -#define LED_PIN 2 -#elif defined(ARDUINO_ESP8266_ESP12) // huzzah -#define LED_PIN 2 -#elif defined(ARDUINO_FEATHER_ESP32) // featheresp32 +//======================== +#if defined(ARDUINO_FEATHER_ESP32) // featheresp32 #define LED_PIN 13 -#elif defined(ARDUINO_NodeMCU_32S) // nodemcu-32s -#define LED_PIN 2 -#elif defined(ARDUINO_ESP32_DEV) // esp32doit-devkit-v1 +#else #define LED_PIN 2 #endif -#define LED_PERIOD (1111) -#define LED_ONTIME (1) +//======================= //arduino #include -//i2c -#include +//post & addresses #include "../../post.h" +AddressBook members; -//painlessmesh -#include -painlessMesh mesh; +//espnow +#include +#include -//scheduler +//task +#include Scheduler runner; -//task #0 : connection indicator -bool onFlag = false; -bool isConnected = false; -//prototypes -void taskStatusBlink_steadyOn(); -void taskStatusBlink_slowblink_insync(); -void taskStatusBlink_steadyOff(); -//the task -Task statusblinks(0, 1, &taskStatusBlink_steadyOn); // at start, steady on. default == disabled. ==> setup() will enable. -// when disconnected, and trying, steadyon. -void taskStatusBlink_steadyOn() { - onFlag = true; -} -// when connected, blink per 1s. sync-ed. (== default configuration) -void taskStatusBlink_slowblink_insync() { - // toggler - onFlag = !onFlag; - // on-time - statusblinks.delay(LED_ONTIME); - // re-enable & sync. - if (statusblinks.isLastIteration()) { - statusblinks.setIterations(2); //refill iteration counts - statusblinks.enableDelayed(LED_PERIOD - (mesh.getNodeTime() % (LED_PERIOD*1000))/1000); //re-enable with sync-ed delay - } -} -// when connected, steadyoff. (== alternative configuration) -void taskStatusBlink_steadyOff() { - onFlag = false; -} - -//task #1 : happy or lonely -// --> automatic reset after some time of 'loneliness (disconnected from any node)' -void nothappyalone() { - static bool isConnected_prev = false; - static unsigned long lonely_time_start = 0; - // oh.. i m lost the signal(==connection) - if (isConnected_prev != isConnected && isConnected == false) { - lonely_time_start = millis(); - Serial.println("oh.. i m lost!"); - } - // .... how long we've been lonely? - if (isConnected == false) { - if (millis() - lonely_time_start > LONELY_TO_DIE) { - // okay. i m fed up. bye the world. - Serial.println("okay. i m fed up. bye the world."); - Serial.println(); -#if defined(ESP8266) - ESP.reset(); -#elif defined(ESP32) - ESP.restart(); - // esp32 doesn't support 'reset()' yet... - // (restart() is framework-supported, reset() is more forced hardware-reset-action) -#else -#error unknown esp. -#endif - } - } - // - isConnected_prev = isConnected; -} -// Task nothappyalone_task(1000, TASK_FOREVER, ¬happyalone, &runner, true); // by default, ENABLED. -Task nothappyalone_task(100, TASK_FOREVER, ¬happyalone); // by default, ENABLED. - +//-*-*-*-*-*-*-*-*-*-*-*-*- // servo -#if defined(ESP8266) - #define SERVO_PIN 12 //D6 - #if (CRICKET_KEY==CRICKET_O_KEY) - #undef SERVO_PIN - #define SERVO_PIN 13 //D7 - #endif - #include -#elif defined(ESP32) - #define SERVO_PIN 5 -#endif - +#define SERVO_PIN 12 //D6 +#include // my tasks -extern Task set_speed_task; -extern Task rest_task; int speed = 0; void set_speed() { int r = speed; -#if defined(ESP32) - ledcWrite(0, r); -#elif defined(ESP8266) analogWrite(SERVO_PIN, r); -#endif - Serial.print("set_speed:"); - Serial.println(r); + MONITORING_SERIAL.print("set_speed:"); + MONITORING_SERIAL.println(r); } Task set_speed_task(0, TASK_ONCE, &set_speed); - +// void rest() { -#if defined(ESP32) - ledcWrite(0, 0); -#elif defined(ESP8266) analogWrite(SERVO_PIN, 0); -#endif } Task rest_task(0, TASK_ONCE, &rest); +//*-*-*-*-*-*-*-*-*-*-*-*-* -// mesh callbacks -void receivedCallback(uint32_t from, String & msg) { // REQUIRED - Serial.print("got msg.: "); - Serial.println(msg); - //parse now. +// +extern Task hello_task; +static int hello_delay = 0; +void hello() { + // + Hello hello = { + ID_KEY, + speed + }; + // + uint8_t frm_size = sizeof(Hello) + 2; + uint8_t frm[frm_size]; + frm[0] = '{'; + memcpy(frm + 1, (uint8_t *) &hello, sizeof(Hello)); + frm[frm_size - 1] = '}'; + // + //pseudo-broadcast using peer-list! + // + esp_now_send(AddressBook("root").list[0].mac, frm, frm_size); + // + MONITORING_SERIAL.write(frm, frm_size); + MONITORING_SERIAL.println(" ==(esp_now_send/\"root\")==> "); + // + if (hello_delay > 0) { + if (hello_delay < 100) hello_delay = 100; + hello_task.restartDelayed(hello_delay); + } +} +Task hello_task(0, TASK_ONCE, &hello); - //parse letter string. - - // letter frame ( '[' + 30 bytes + ']' ) - // : [123456789012345678901234567890] - - // 'MIDI' letter frame - // : [123456789012345678901234567890] - // : [KKKVVVG.......................] - // : KKK - Key - // .substring(1, 4); - // : VVV - Velocity (volume/amp.) - // .substring(4, 7); - // : G - Gate (note on/off) - // .substring(7, 8); - - String str_key = msg.substring(1, 4); - String str_velocity = msg.substring(4, 7); - String str_gate = msg.substring(7, 8); - - int key = str_key.toInt(); - int velocity = str_velocity.toInt(); // 0 ~ 127 - int gate = str_gate.toInt(); - - speed = velocity * 4; // 0 ~ 508 -#if defined(ESP32) - speed = velocity; // 10 bit (esp8266) ==> 8 bit (esp32-ledc) -#endif +//task #0 : blink led +extern Task blink_task; +void blink() { + // + static int count = 0; + count++; + // + switch (count % 4) { + case 0: + digitalWrite(LED_PIN, LOW); // first ON + blink_task.delay(LED_ONTIME); + break; + case 1: + digitalWrite(LED_PIN, HIGH); // first OFF + blink_task.delay(LED_GAPTIME); + break; + case 2: + digitalWrite(LED_PIN, LOW); // second ON + blink_task.delay(LED_ONTIME); + break; + case 3: + digitalWrite(LED_PIN, HIGH); // second OFF + blink_task.delay(LED_PERIOD - 2* LED_ONTIME - LED_GAPTIME); + break; + } +} +Task blink_task(0, TASK_FOREVER, &blink, &runner, true); // -> ENABLED, at start-up. +// on 'Note' +void onNoteHandler(Note & n) { //is it for me? - if (key == CRICKET_KEY) { - if (gate == 1) { + if (n.pitch == ID_KEY) { + // + speed = n.velocity; + // if (speed < 0) speed = 0; + // + if (n.onoff == 1) { set_speed_task.restartDelayed(10); - } else if (gate == 0) { + } else if (n.onoff == 0) { rest_task.restartDelayed(10); } - } -} -void changedConnectionCallback() { - Serial.println(mesh.getNodeList().size()); - // check status -> modify status LED - if (mesh.getNodeList().size() > 0) { - // (still) connected. - onFlag = false; //reset flag stat. - statusblinks.set(LED_PERIOD, 2, &taskStatusBlink_slowblink_insync); - // statusblinks.set(0, 1, &taskStatusBlink_steadyOff); - statusblinks.enable(); - Serial.println("connected!"); // - isConnected = true; - runner.addTask(nothappyalone_task); - nothappyalone_task.enable(); } - else { - // disconnected!! - statusblinks.set(0, 1, &taskStatusBlink_steadyOn); - statusblinks.enable(); - // - isConnected = false; - } - // let I2C device know - ///// - Serial.println("hi. client, we ve got a change in the net."); -} -void newConnectionCallback(uint32_t nodeId) { - Serial.println(mesh.getNodeList().size()); - Serial.println("newConnectionCallback."); - changedConnectionCallback(); } +// on 'receive' +void onDataReceive(uint8_t * mac, uint8_t *incomingData, uint8_t len) { + +#if defined(HAVE_CLIENT) + Serial.write(incomingData, len); // we share it w/ the client. +#endif + + // on 'Note' + if (incomingData[0] == '[' && incomingData[len - 1] == ']' && len == (sizeof(Note) + 2)) { + // + Note note; + memcpy((uint8_t *) ¬e, incomingData + 1, sizeof(Note)); + onNoteHandler(note); + MONITORING_SERIAL.println(note.to_string()); + } +} + +// on 'sent' +void onDataSent(uint8_t *mac_addr, uint8_t sendStatus) { + if (sendStatus != 0) MONITORING_SERIAL.println("Delivery failed!"); +} + +// void setup() { + //led pinMode(LED_PIN, OUTPUT); -#if defined(ESP32) - ledcSetup(0, 1000, 8); // 8bit - ledcAttachPin(SERVO_PIN, 0); -#endif + //serial + Serial.begin(115200); + delay(100); - //mesh + //info + Serial.println(); + Serial.println(); + Serial.println("\"hi, i m your postman.\""); + Serial.println("-"); + Serial.println("- * info >>>"); +#if defined(ID_KEY) + Serial.println("- identity (key): " + String(ID_KEY)); +#endif + Serial.println("- mac address: " + WiFi.macAddress()); + Serial.println("- wifi channel: " + String(WIFI_CHANNEL)); + Serial.println("-"); + Serial.println("- * conf >>>"); +#if defined(HAVE_CLIENT) + Serial.println("- ======== 'HAVE_CLIENT' ========"); +#endif +#if defined(SERIAL_SWAP) + Serial.println("- ======== 'SERIAL_SWAP' ========"); +#endif +#if defined(DISABLE_AP) + Serial.println("- ======== 'DISABLE_AP' ========"); +#endif + Serial.println("-"); + Serial.println("- * addresses >>>"); + for (uint32_t i = 0; i < members.list.size(); i++) { + Serial.print("- #" + String(i) + " : "); + Serial.print(members.list[i].mac[0], HEX); + for (int j = 1; j < 6; j++) { + Serial.print(":"); + Serial.print(members.list[i].mac[j], HEX); + } + Serial.print(" ==> " + members.list[i].name); + Serial.println(); + } + Serial.println("-"); + Serial.println("\".-.-.-. :)\""); + Serial.println(); + + //wifi WiFiMode_t node_type = WIFI_AP_STA; #if defined(DISABLE_AP) system_phy_set_max_tpw(0); node_type = WIFI_STA; #endif - // mesh.setDebugMsgTypes(ERROR | DEBUG | CONNECTION); - mesh.setDebugMsgTypes( ERROR | STARTUP ); - mesh.init(MESH_SSID, MESH_PASSWORD, &runner, MESH_PORT, node_type, MESH_CHANNEL); + WiFi.mode(node_type); - // - // void init(String ssid, String password, Scheduler *baseScheduler, uint16_t port = 5555, WiFiMode_t connectMode = WIFI_AP_STA, uint8_t channel = 1, uint8_t hidden = 0, uint8_t maxconn = MAX_CONN); - // void init(String ssid, String password, uint16_t port = 5555, WiFiMode_t connectMode = WIFI_AP_STA, uint8_t channel = 1, uint8_t hidden = 0, uint8_t maxconn = MAX_CONN); - // - -#if defined(SET_ROOT) - mesh.setRoot(true); -#endif -#if defined(SET_CONTAINSROOT) - mesh.setContainsRoot(true); -#endif - //callbacks - mesh.onReceive(&receivedCallback); - mesh.onNewConnection(&newConnectionCallback); - mesh.onChangedConnections(&changedConnectionCallback); - Serial.println(mesh.getNodeList().size()); - - //tasks - runner.addTask(statusblinks); - statusblinks.enable(); - - //serial - Serial.begin(115200); - delay(100); - Serial.println("hi, postman ready."); -#if defined(DISABLE_AP) - Serial.println("!NOTE!: we are in the WIFI_STA mode!"); -#endif - - //understanding what is 'the nodeId' ==> last 4 bytes of 'softAPmacAddress' - // uint32_t nodeId = tcp::encodeNodeId(MAC); - Serial.print("nodeId (dec) : "); - Serial.println(mesh.getNodeId(), DEC); - Serial.print("nodeId (hex) : "); - Serial.println(mesh.getNodeId(), HEX); - uint8_t MAC[] = {0, 0, 0, 0, 0, 0}; - if (WiFi.softAPmacAddress(MAC) == 0) { - Serial.println("init(): WiFi.softAPmacAddress(MAC) failed."); + //esp-now + if (esp_now_init() != 0) { + Serial.println("Error initializing ESP-NOW"); + return; + } + esp_now_set_self_role(ESP_NOW_ROLE_COMBO); + esp_now_register_send_cb(onDataSent); + esp_now_register_recv_cb(onDataReceive); + for (uint32_t i = 0; i < members.list.size(); i++) { + esp_now_add_peer(members.list[i].mac, ESP_NOW_ROLE_COMBO, 1, NULL, 0); // <-- '1' : "Channel does not affect any function" ... *.-a + // + // int esp_now_add_peer(u8 *mac_addr, u8 role, u8 channel, u8 *key, u8 key_len) + // - https://www.espressif.com/sites/default/files/documentation/2c-esp8266_non_os_sdk_api_reference_en.pdf + // + // "Channel does not affect any function, but only stores the channel information + // for the application layer. The value is defined by the application layer. For + // example, 0 means that the channel is not defined; 1 ~ 14 mean valid + // channels; all the rest values can be assigned functions that are specified + // by the application layer." + // - https://www.espressif.com/sites/default/files/documentation/esp-now_user_guide_en.pdf } - Serial.print("MAC : "); - Serial.print(MAC[0], HEX); Serial.print(", "); - Serial.print(MAC[1], HEX); Serial.print(", "); - Serial.print(MAC[2], HEX); Serial.print(", "); - Serial.print(MAC[3], HEX); Serial.print(", "); - Serial.print(MAC[4], HEX); Serial.print(", "); - Serial.println(MAC[5], HEX); - // for instance, +#if defined(SERIAL_SWAP) + Serial.println("- ======== 'SERIAL_SWAP' ========"); + // a proper say goodbye. + Serial.println("\"bye, i will do 'swap' in 1 second. find me on alternative pins!\""); + Serial.println("\" hint: osc wiring ==> esp8266(serial.swap) <-> teensy(serial3)\""); + Serial.println("-"); + Serial.println("\".-.-.-. :)\""); + delay(1000); // flush out unsent serial messages. - // a huzzah board - // nodeId (dec) : 3256120530 - // nodeId (hex) : C21474D2 - // MAC : BE, DD, C2, 14, 74, D2 - - // a esp8266 board (node mcu) - // nodeId (dec) : 758581767 - // nodeId (hex) : 2D370A07 - // MAC : B6, E6, 2D, 37, A, 7 - - //i2c master - Wire.begin(); + // moving... + Serial.swap(); // use RXD2/TXD2 pins, afterwards. + delay(100); // wait re-initialization of the 'Serial' +#endif //random seed randomSeed(analogRead(0)); @@ -355,16 +318,13 @@ void setup() { //tasks runner.addTask(set_speed_task); runner.addTask(rest_task); + runner.addTask(hello_task); rest_task.restartDelayed(500); } void loop() { + // runner.execute(); - mesh.update(); -#if defined(ESP32) - digitalWrite(LED_PIN, onFlag); // value == true is ON. -#else - digitalWrite(LED_PIN, !onFlag); // value == false is ON. so onFlag == true is ON. (pull-up) -#endif + // } diff --git a/post.h b/post.h index ce61648..132aaf0 100644 --- a/post.h +++ b/post.h @@ -44,7 +44,12 @@ struct AddressBook { // list.push_back(Address(0xB4, 0xE6, 0x2D, 0x37, 0x3B, 0x90, "root/osc")); list.push_back(Address(0xF4, 0xCF, 0xA2, 0xED, 0xB4, 0x28, "taak/157")); - list.push_back(Address(0xF4, 0xCF, 0xA2, 0xED, 0xB8, 0x1E, "roundly/202")); + + list.push_back(Address(0xF4, 0xCF, 0xA2, 0xED, 0xB4, 0x64, "roundly/2000")); + list.push_back(Address(0xF4, 0xCF, 0xA2, 0xED, 0xB8, 0x1E, "roundly/2001")); + + list.push_back(Address(0xF4, 0xCF, 0xA2, 0xED, 0xB7, 0x32, "cricket/127")); + list.push_back(Address(0xF4, 0xCF, 0xA2, 0xED, 0xB4, 0x47, "cricket/124")); // } // diff --git a/puredata/piano_access_mesh_x_2.pd b/puredata/piano_access_mesh_x_2.pd index a5a00df..8f3918b 100644 --- a/puredata/piano_access_mesh_x_2.pd +++ b/puredata/piano_access_mesh_x_2.pd @@ -1,4 +1,4 @@ -#N canvas 131 313 1308 582 10; +#N canvas 236 172 1308 594 10; #X obj 20 126 unpackOSC; #X obj 107 18 loadbang; #X msg 147 91 devices; @@ -72,274 +72,6 @@ #X obj 976 154 print NOTE; #X obj 510 267 print CTRL; #X obj 510 209 r CTRL; -#N canvas 328 23 875 803 crickets 0; -#X obj 89 492 pack f f; -#X obj 134 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 92 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X floatatom 99 440 5 0 0 0 - - -; -#X msg 89 521 120 \$1 \$2; -#X obj 239 492 pack f f; -#X obj 284 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 242 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X floatatom 249 440 5 0 0 0 - - -; -#X msg 239 521 121 \$1 \$2; -#X obj 747 58 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X obj 747 82 t b a; -#X msg 695 69 0; -#X obj 389 492 pack f f; -#X obj 434 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 392 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X floatatom 399 440 5 0 0 0 - - -; -#X msg 389 521 122 \$1 \$2; -#X obj 539 492 pack f f; -#X obj 584 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 542 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X floatatom 549 440 5 0 0 0 - - -; -#X msg 539 521 123 \$1 \$2; -#X obj 539 702 pack f f; -#X obj 584 676 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 542 630 hsl 128 15 0 255 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X obj 539 763 s CTRL; -#X floatatom 549 650 5 0 0 0 - - -; -#X msg 539 731 127 \$1 \$2; -#X text 605 598 fishing-fly; -#X obj 689 492 pack f f; -#X obj 734 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 692 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X obj 689 553 s CTRL; -#X floatatom 699 440 5 0 0 0 - - -; -#X obj 271 709 metro 1000; -#X obj 271 687 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X text 270 657 auto play; -#X msg 134 711 100 100 1; -#X msg 136 766 101 100 1; -#X text 145 690 gastank; -#X text 140 741 float; -#X msg 313 637 0; -#X msg 355 659 1000; -#X obj 704 705 metro 1000; -#X obj 704 683 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X floatatom 783 690 5 0 0 0 - - -; -#X text 703 653 auto play; -#X msg 746 633 0; -#X msg 788 655 1000; -#X msg 704 727 101 127 1; -#X msg 271 731 100 127 1; -#X msg 350 630 500; -#X msg 386 628 2000; -#X msg 374 604 300; -#X msg 404 584 3000; -#X obj 271 755 s CTRL; -#X obj 704 751 s CTRL; -#X text 717 23 cricket drummers; -#X obj 784 111 tgl 15 0 \$0-c-tgl empty s:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X floatatom 539 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 389 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 239 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 89 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 689 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 747 111 5 0 0 0 s:0-c-sld - #0-c-sld; -#X floatatom 539 599 5 0 0 0 r:0-c-sld #0-c-sld -; -#X obj 20 50 arduino; -#X msg 147 51 devices; -#X msg 215 68 close; -#X msg 20 12 devicename /dev/tty.HC-06-DevB \, baud 57600 \, pollintervall -1 \, verbose 1; -#X obj 20 71 route analog; -#X obj 20 92 route 0 1 2 3 4 5; -#X floatatom 20 113 5 0 0 0 - - -; -#X floatatom 120 133 5 0 0 0 - - -; -#X floatatom 220 153 5 0 0 0 - - -; -#X floatatom 320 113 5 0 0 0 - - -; -#X floatatom 605 74 5 0 0 0 - - -; -#X floatatom 420 153 5 0 0 0 - - -; -#X obj 20 204 * -1; -#X floatatom 20 225 5 0 0 0 - - -; -#X obj 20 183 - 1; -#X obj 120 204 * -1; -#X floatatom 120 225 5 0 0 0 - - -; -#X obj 120 183 - 1; -#X obj 220 204 * -1; -#X floatatom 220 225 5 0 0 0 - - -; -#X obj 220 183 - 1; -#X obj 320 204 * -1; -#X floatatom 320 225 5 0 0 0 - - -; -#X obj 320 183 - 1; -#X obj 605 145 * -1; -#X floatatom 605 166 5 0 0 0 - - -; -#X obj 605 124 - 1; -#X obj 420 204 * -1; -#X floatatom 420 225 5 0 0 0 - - -; -#X obj 420 183 - 1; -#X floatatom 20 287 5 0 0 0 - - -; -#X floatatom 120 287 5 0 0 0 - - -; -#X floatatom 220 287 5 0 0 0 - - -; -#X floatatom 320 287 5 0 0 0 - - -; -#X floatatom 605 228 5 0 0 0 - - -; -#X floatatom 420 287 5 0 0 0 - - -; -#X obj 320 245 * 300; -#X obj 420 245 * 300; -#X text 288 91 broken!! right/bottom; -#X text 35 135 top/right; -#X text 135 153 top/center; -#X text 259 155 top/left; -#X text 341 156 bottom/left; -#X obj 20 266 resample 2000; -#X obj 120 266 resample 2000; -#X obj 220 266 resample 2000; -#X obj 320 266 resample 2000; -#X obj 420 266 resample 2000; -#X obj 605 207 resample 2000; -#X obj 120 307 pipe 1000; -#X obj 220 307 pipe 2000; -#X obj 320 307 pipe 3000; -#X obj 420 307 pipe 4000; -#X obj 20 245 * 100; -#X obj 220 245 * 200; -#X obj 120 245 * 200; -#X floatatom 605 275 5 0 0 0 s:0-vol - #0-vol; -#X obj 605 248 pipe 500; -#X msg 719 521 105 100 1; -#X obj 605 186 * 0; -#X text 22 585 manually send 'play stop' messages; -#X obj 89 553 s CTRL; -#X obj 239 553 s CTRL; -#X obj 389 553 s CTRL; -#X obj 539 553 s CTRL; -#X text 52 537 disconnected for TESTING; -#X text 212 537 disconnected for TESTING; -#X text 372 537 disconnected for TESTING; -#X text 532 537 disconnected for TESTING; -#X text 554 262 disconnected for TESTING; -#X text 489 300 resample always send messages!! --> plz fix / or change -controller will be patched --> no more jittering. i hope. we use only -[change] to limit \, net broadcast then net stability will become better. -i wish.; -#X text 564 142 still there is issue about non-linearity cut off lower -region stretch range etc.; -#X connect 0 0 4 0; -#X connect 1 0 0 1; -#X connect 2 0 0 0; -#X connect 2 0 3 0; -#X connect 5 0 9 0; -#X connect 6 0 5 1; -#X connect 7 0 5 0; -#X connect 7 0 8 0; -#X connect 10 0 11 0; -#X connect 11 0 65 0; -#X connect 11 1 59 0; -#X connect 12 0 10 0; -#X connect 13 0 17 0; -#X connect 14 0 13 1; -#X connect 15 0 13 0; -#X connect 15 0 16 0; -#X connect 18 0 22 0; -#X connect 19 0 18 1; -#X connect 20 0 18 0; -#X connect 20 0 21 0; -#X connect 23 0 28 0; -#X connect 24 0 23 1; -#X connect 25 0 23 0; -#X connect 25 0 27 0; -#X connect 28 0 26 0; -#X connect 31 0 30 1; -#X connect 32 0 30 0; -#X connect 32 0 34 0; -#X connect 35 0 51 0; -#X connect 36 0 35 0; -#X connect 38 0 56 0; -#X connect 39 0 56 0; -#X connect 42 0 35 0; -#X connect 43 0 35 1; -#X connect 44 0 50 0; -#X connect 45 0 44 0; -#X connect 46 0 44 1; -#X connect 48 0 44 0; -#X connect 49 0 44 1; -#X connect 50 0 57 0; -#X connect 51 0 56 0; -#X connect 52 0 35 1; -#X connect 53 0 35 1; -#X connect 54 0 35 1; -#X connect 55 0 35 1; -#X connect 60 0 20 0; -#X connect 61 0 15 0; -#X connect 62 0 7 0; -#X connect 63 0 2 0; -#X connect 64 0 32 0; -#X connect 66 0 25 0; -#X connect 67 0 71 0; -#X connect 68 0 67 0; -#X connect 69 0 67 0; -#X connect 70 0 67 0; -#X connect 71 0 72 0; -#X connect 72 0 73 0; -#X connect 72 1 74 0; -#X connect 72 2 75 0; -#X connect 72 3 76 0; -#X connect 72 4 77 0; -#X connect 72 5 78 0; -#X connect 73 0 81 0; -#X connect 74 0 84 0; -#X connect 75 0 87 0; -#X connect 77 0 93 0; -#X connect 78 0 96 0; -#X connect 79 0 80 0; -#X connect 80 0 120 0; -#X connect 81 0 79 0; -#X connect 82 0 83 0; -#X connect 83 0 122 0; -#X connect 84 0 82 0; -#X connect 85 0 86 0; -#X connect 86 0 121 0; -#X connect 87 0 85 0; -#X connect 88 0 89 0; -#X connect 89 0 103 0; -#X connect 90 0 88 0; -#X connect 91 0 92 0; -#X connect 92 0 126 0; -#X connect 93 0 91 0; -#X connect 94 0 95 0; -#X connect 95 0 104 0; -#X connect 96 0 94 0; -#X connect 97 0 2 0; -#X connect 98 0 116 0; -#X connect 99 0 117 0; -#X connect 101 0 124 0; -#X connect 102 0 119 0; -#X connect 103 0 113 0; -#X connect 104 0 114 0; -#X connect 110 0 97 0; -#X connect 111 0 98 0; -#X connect 112 0 99 0; -#X connect 113 0 100 0; -#X connect 114 0 102 0; -#X connect 115 0 101 0; -#X connect 116 0 7 0; -#X connect 117 0 15 0; -#X connect 119 0 20 0; -#X connect 120 0 110 0; -#X connect 121 0 112 0; -#X connect 122 0 111 0; -#X connect 125 0 33 0; -#X connect 126 0 115 0; -#X restore 10 426 pd crickets ctrl; #X obj 896 154 print OSC; #X obj 1207 92 s NOTE; #X msg 1207 66 62 100 1; @@ -387,244 +119,7 @@ pollintervall 1 \, verbose 1; #X msg 1199 444 68 100 0; #X text 943 370 vol. control knob 'on' the keyboard is needed. instead of get/set it by other devivce this is quite messy!; -#N canvas 383 23 875 803 crickets 0; -#X obj 89 492 pack f f; -#X obj 134 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 92 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X floatatom 99 440 5 0 0 0 - - -; -#X msg 89 521 120 \$1 \$2; -#X obj 239 492 pack f f; -#X obj 284 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 242 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X floatatom 249 440 5 0 0 0 - - -; -#X msg 239 521 121 \$1 \$2; -#X obj 747 58 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X obj 747 82 t b a; -#X msg 695 69 0; -#X obj 389 492 pack f f; -#X obj 434 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 392 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X floatatom 399 440 5 0 0 0 - - -; -#X msg 389 521 122 \$1 \$2; -#X obj 539 492 pack f f; -#X obj 584 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 542 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X floatatom 549 440 5 0 0 0 - - -; -#X msg 539 521 123 \$1 \$2; -#X obj 539 702 pack f f; -#X obj 584 676 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 542 630 hsl 128 15 0 255 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X obj 539 763 s CTRL; -#X floatatom 549 650 5 0 0 0 - - -; -#X msg 539 731 127 \$1 \$2; -#X text 605 598 fishing-fly; -#X obj 689 492 pack f f; -#X obj 734 466 tgl 15 0 empty \$0-c-tgl r:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X obj 692 420 hsl 128 15 50 300 0 0 empty empty empty -2 -8 0 10 -262144 --1 -1 0 1; -#X obj 689 553 s CTRL; -#X floatatom 699 440 5 0 0 0 - - -; -#X obj 271 709 metro 1000; -#X obj 271 687 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X text 270 657 auto play; -#X msg 134 711 100 100 1; -#X msg 136 766 101 100 1; -#X text 145 690 gastank; -#X text 140 741 float; -#X msg 313 637 0; -#X msg 355 659 1000; -#X obj 704 705 metro 1000; -#X obj 704 683 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 -1; -#X floatatom 783 690 5 0 0 0 - - -; -#X text 703 653 auto play; -#X msg 746 633 0; -#X msg 788 655 1000; -#X msg 704 727 101 127 1; -#X msg 271 731 100 127 1; -#X msg 350 630 500; -#X msg 386 628 2000; -#X msg 374 604 300; -#X msg 404 584 3000; -#X obj 271 755 s CTRL; -#X obj 704 751 s CTRL; -#X text 717 23 cricket drummers; -#X obj 784 111 tgl 15 0 \$0-c-tgl empty s:0-c-tgl 17 7 0 10 -262144 --1 -1 0 1; -#X floatatom 539 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 389 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 239 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 89 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 689 389 5 0 0 0 r:0-c-sld #0-c-sld -; -#X floatatom 747 111 5 0 0 0 s:0-c-sld - #0-c-sld; -#X floatatom 539 599 5 0 0 0 r:0-c-sld #0-c-sld -; -#X obj 20 50 arduino; -#X msg 147 51 devices; -#X msg 215 68 close; -#X msg 20 12 devicename /dev/tty.HC-06-DevB \, baud 57600 \, pollintervall -1 \, verbose 1; -#X obj 20 71 route analog; -#X obj 20 92 route 0 1 2 3 4 5; -#X floatatom 20 113 5 0 0 0 - - -; -#X floatatom 120 133 5 0 0 0 - - -; -#X floatatom 220 153 5 0 0 0 - - -; -#X floatatom 320 113 5 0 0 0 - - -; -#X floatatom 605 74 5 0 0 0 - - -; -#X floatatom 420 153 5 0 0 0 - - -; -#X obj 20 204 * -1; -#X floatatom 20 225 5 0 0 0 - - -; -#X obj 20 183 - 1; -#X obj 120 204 * -1; -#X floatatom 120 225 5 0 0 0 - - -; -#X obj 120 183 - 1; -#X obj 220 204 * -1; -#X floatatom 220 225 5 0 0 0 - - -; -#X obj 220 183 - 1; -#X obj 320 204 * -1; -#X floatatom 320 225 5 0 0 0 - - -; -#X obj 320 183 - 1; -#X obj 605 145 * -1; -#X floatatom 605 166 5 0 0 0 - - -; -#X obj 605 124 - 1; -#X obj 420 204 * -1; -#X floatatom 420 225 5 0 0 0 - - -; -#X obj 420 183 - 1; -#X floatatom 20 287 5 0 0 0 - - -; -#X floatatom 120 287 5 0 0 0 - - -; -#X floatatom 220 287 5 0 0 0 - - -; -#X floatatom 320 287 5 0 0 0 - - -; -#X floatatom 605 228 5 0 0 0 - - -; -#X floatatom 420 287 5 0 0 0 - - -; -#X obj 320 245 * 300; -#X obj 420 245 * 300; -#X text 288 91 broken!! right/bottom; -#X text 35 135 top/right; -#X text 135 153 top/center; -#X text 259 155 top/left; -#X text 341 156 bottom/left; -#X obj 20 245 * 100; -#X obj 220 245 * 200; -#X obj 120 245 * 200; -#X floatatom 605 275 5 0 0 0 s:0-vol - #0-vol; -#X msg 719 521 105 100 1; -#X obj 605 186 * 0; -#X text 22 585 manually send 'play stop' messages; -#X obj 89 553 s CTRL; -#X obj 239 553 s CTRL; -#X obj 389 553 s CTRL; -#X obj 539 553 s CTRL; -#X text 52 537 disconnected for TESTING; -#X text 212 537 disconnected for TESTING; -#X text 372 537 disconnected for TESTING; -#X text 532 537 disconnected for TESTING; -#X text 489 300 resample always send messages!! --> plz fix / or change -controller will be patched --> no more jittering. i hope. we use only -[change] to limit \, net broadcast then net stability will become better. -i wish.; -#X text 564 142 still there is issue about non-linearity cut off lower -region stretch range etc.; -#X connect 0 0 4 0; -#X connect 1 0 0 1; -#X connect 2 0 0 0; -#X connect 2 0 3 0; -#X connect 5 0 9 0; -#X connect 6 0 5 1; -#X connect 7 0 5 0; -#X connect 7 0 8 0; -#X connect 10 0 11 0; -#X connect 11 0 65 0; -#X connect 11 1 59 0; -#X connect 12 0 10 0; -#X connect 13 0 17 0; -#X connect 14 0 13 1; -#X connect 15 0 13 0; -#X connect 15 0 16 0; -#X connect 18 0 22 0; -#X connect 19 0 18 1; -#X connect 20 0 18 0; -#X connect 20 0 21 0; -#X connect 23 0 28 0; -#X connect 24 0 23 1; -#X connect 25 0 23 0; -#X connect 25 0 27 0; -#X connect 28 0 26 0; -#X connect 31 0 30 1; -#X connect 32 0 30 0; -#X connect 32 0 34 0; -#X connect 35 0 51 0; -#X connect 36 0 35 0; -#X connect 38 0 56 0; -#X connect 39 0 56 0; -#X connect 42 0 35 0; -#X connect 43 0 35 1; -#X connect 44 0 50 0; -#X connect 45 0 44 0; -#X connect 46 0 44 1; -#X connect 48 0 44 0; -#X connect 49 0 44 1; -#X connect 50 0 57 0; -#X connect 51 0 56 0; -#X connect 52 0 35 1; -#X connect 53 0 35 1; -#X connect 54 0 35 1; -#X connect 55 0 35 1; -#X connect 60 0 20 0; -#X connect 61 0 15 0; -#X connect 62 0 7 0; -#X connect 63 0 2 0; -#X connect 64 0 32 0; -#X connect 66 0 25 0; -#X connect 67 0 71 0; -#X connect 68 0 67 0; -#X connect 69 0 67 0; -#X connect 70 0 67 0; -#X connect 71 0 72 0; -#X connect 72 0 73 0; -#X connect 72 1 74 0; -#X connect 72 2 75 0; -#X connect 72 3 76 0; -#X connect 72 4 77 0; -#X connect 72 5 78 0; -#X connect 73 0 81 0; -#X connect 74 0 84 0; -#X connect 75 0 87 0; -#X connect 77 0 93 0; -#X connect 78 0 96 0; -#X connect 79 0 80 0; -#X connect 80 0 110 0; -#X connect 81 0 79 0; -#X connect 82 0 83 0; -#X connect 83 0 112 0; -#X connect 84 0 82 0; -#X connect 85 0 86 0; -#X connect 86 0 111 0; -#X connect 87 0 85 0; -#X connect 88 0 89 0; -#X connect 89 0 103 0; -#X connect 90 0 88 0; -#X connect 91 0 92 0; -#X connect 92 0 115 0; -#X connect 93 0 91 0; -#X connect 94 0 95 0; -#X connect 95 0 104 0; -#X connect 96 0 94 0; -#X connect 97 0 2 0; -#X connect 114 0 33 0; -#X restore 10 448 pd crickets new; -#N canvas 13 89 710 712 crickets 1; +#N canvas 0 694 1431 785 crickets 0; #X obj 129 363 pack f f; #X obj 175 185 tgl 20 0 empty empty 120 17 7 0 10 -257985 -1 -1 0 1 ; @@ -1129,7 +624,7 @@ region stretch range etc.; #X obj 739 1048 print pos; #X obj 828 997 print togo; #X obj 784 1114 hsl 128 15 -9000 9000 0 0 empty empty empty -2 -8 0 -10 -262144 -1 -1 6350 1; +10 -262144 -1 -1 0 1; #X obj 364 994 s CTRL; #X obj 364 912 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; @@ -1140,7 +635,7 @@ region stretch range etc.; #X obj 586 1150 sel 1 0; #X msg 586 1196 120; #X obj 814 1169 hsl 128 15 -9000 9000 0 0 empty empty empty -2 -8 0 -10 -262144 -1 -1 8600 1; +10 -262144 -1 -1 0 1; #X msg 605 1173 4464; #X connect 0 0 73 0; #X connect 1 0 0 1; @@ -1464,7 +959,6 @@ region stretch range etc.; #X connect 351 0 282 0; #X connect 352 0 282 0; #X restore 374 333 pd crickets nanokontrol2; -#X text 16 404 NOT USED; #X obj 789 419 r NOTE; #X obj 789 440 unpack f f f; #X text 835 418 /pitch /velocity /onoff; @@ -1609,6 +1103,87 @@ pollintervall 1 \, verbose 1; #X obj 238 519 unpackOSC; #X obj 238 542 routeOSC /hello; #X obj 365 531 s HELLO; +#N canvas 87 453 1214 393 roundly 1; +#X floatatom 925 227 5 0 0 0 - - -; +#X obj 925 249 s PS; +#X msg 354 139 \$1 5000; +#X obj 354 162 unpack f f; +#X obj 354 185 s X1; +#X obj 411 185 s X2; +#X msg 253 150 2000 0 1; +#X msg 925 204 0; +#X msg 964 204 200; +#X obj 44 208 r HELLO; +#X obj 44 254 unpack f f f f; +#X floatatom 44 283 5 0 0 0 - - -; +#X obj 97 311 hsl 1000 15 -50000 50000 0 0 empty empty empty -2 -8 +0 10 -260097 -262144 -1 45500 1; +#X obj 97 331 hsl 1000 15 -50000 50000 0 0 empty empty empty -2 -8 +0 10 -13381 -262144 -1 58300 1; +#X obj 44 231 route 2000 2001; +#X obj 154 254 unpack f f f f; +#X floatatom 154 283 5 0 0 0 - - -; +#X obj 253 209 s CTRL; +#X floatatom 253 99 5 0 0 0 target_pos - -; +#X obj 97 31 hsl 1000 15 -50000 50000 0 0 empty empty empty -2 -8 0 +10 -260097 -262144 -1 45550 1; +#X obj 97 51 hsl 1000 15 -50000 50000 0 0 empty empty empty -2 -8 0 +10 -13381 -262144 -1 58300 1; +#X obj 253 121 t b a; +#X msg 704 139 \$1 5000; +#X obj 704 162 unpack f f; +#X obj 704 185 s X1; +#X obj 761 185 s X2; +#X obj 603 209 s CTRL; +#X floatatom 603 99 5 0 0 0 target_pos - -; +#X obj 603 121 t b a; +#X obj 945 141 tgl 25 0 empty empty monitoring 25 7 0 15 -159808 -257985 +-1 1 1; +#X obj 945 181 sel 0 1; +#X obj 1061 100 loadbang; +#X msg 1061 123 1; +#X obj 6 26 loadbang; +#X msg 6 49 0; +#X msg 603 150 2001 0 1; +#X obj 94 81 skip 500; +#X obj 348 81 skip 500; +#X connect 0 0 1 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 1 5 0; +#X connect 6 0 17 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 14 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 14 0 10 0; +#X connect 14 1 15 0; +#X connect 15 0 16 0; +#X connect 16 0 13 0; +#X connect 18 0 21 0; +#X connect 19 0 36 0; +#X connect 20 0 37 0; +#X connect 21 0 6 0; +#X connect 21 1 2 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 25 0; +#X connect 27 0 28 0; +#X connect 28 0 35 0; +#X connect 28 1 22 0; +#X connect 29 0 30 0; +#X connect 30 0 7 0; +#X connect 30 1 8 0; +#X connect 31 0 32 0; +#X connect 32 0 29 0; +#X connect 33 0 34 0; +#X connect 34 0 19 0; +#X connect 34 0 20 0; +#X connect 35 0 26 0; +#X connect 36 0 18 0; +#X connect 37 0 27 0; +#X restore 289 241 pd roundly; #X connect 0 0 3 0; #X connect 2 0 7 1; #X connect 3 0 11 0; @@ -1641,61 +1216,61 @@ pollintervall 1 \, verbose 1; #X connect 31 0 32 0; #X connect 33 0 24 0; #X connect 35 0 34 0; -#X connect 36 0 55 0; +#X connect 36 0 54 0; #X connect 37 0 32 0; #X connect 38 0 30 0; #X connect 39 0 40 0; #X connect 40 0 38 0; #X connect 41 0 38 0; -#X connect 44 0 50 0; -#X connect 48 0 47 0; -#X connect 49 0 7 1; -#X connect 50 0 43 0; -#X connect 51 0 50 1; -#X connect 52 0 46 0; -#X connect 53 0 52 1; -#X connect 54 0 13 1; -#X connect 55 0 42 0; -#X connect 56 0 55 1; -#X connect 57 0 81 0; -#X connect 58 0 122 0; -#X connect 59 0 58 1; -#X connect 60 0 58 1; -#X connect 61 0 58 0; -#X connect 62 0 61 0; -#X connect 63 0 13 1; -#X connect 65 0 75 0; -#X connect 66 0 75 0; -#X connect 67 0 75 0; -#X connect 68 0 75 0; -#X connect 69 0 75 0; -#X connect 70 0 75 0; -#X connect 71 0 75 0; -#X connect 74 0 75 0; -#X connect 76 0 79 0; -#X connect 77 0 76 1; -#X connect 78 0 76 0; -#X connect 80 0 52 0; -#X connect 81 0 38 0; -#X connect 83 0 82 0; -#X connect 88 0 89 0; -#X connect 89 0 92 0; -#X connect 89 2 91 0; -#X connect 91 0 92 1; -#X connect 92 0 97 0; -#X connect 96 0 93 0; -#X connect 97 0 96 0; -#X connect 97 1 96 1; -#X connect 99 0 101 0; -#X connect 101 0 100 0; -#X connect 105 0 103 0; -#X connect 106 0 104 0; -#X connect 108 0 58 1; -#X connect 109 0 58 1; -#X connect 110 0 111 0; -#X connect 112 0 113 0; -#X connect 114 0 115 0; -#X connect 116 0 58 1; -#X connect 117 0 121 0; -#X connect 122 0 123 0; -#X connect 123 0 124 0; +#X connect 44 0 49 0; +#X connect 47 0 46 0; +#X connect 48 0 7 1; +#X connect 49 0 43 0; +#X connect 50 0 49 1; +#X connect 51 0 45 0; +#X connect 52 0 51 1; +#X connect 53 0 13 1; +#X connect 54 0 42 0; +#X connect 55 0 54 1; +#X connect 56 0 80 0; +#X connect 57 0 119 0; +#X connect 58 0 57 1; +#X connect 59 0 57 1; +#X connect 60 0 57 0; +#X connect 61 0 60 0; +#X connect 62 0 13 1; +#X connect 64 0 74 0; +#X connect 65 0 74 0; +#X connect 66 0 74 0; +#X connect 67 0 74 0; +#X connect 68 0 74 0; +#X connect 69 0 74 0; +#X connect 70 0 74 0; +#X connect 73 0 74 0; +#X connect 75 0 78 0; +#X connect 76 0 75 1; +#X connect 77 0 75 0; +#X connect 79 0 51 0; +#X connect 80 0 38 0; +#X connect 82 0 81 0; +#X connect 85 0 86 0; +#X connect 86 0 89 0; +#X connect 86 2 88 0; +#X connect 88 0 89 1; +#X connect 89 0 94 0; +#X connect 93 0 90 0; +#X connect 94 0 93 0; +#X connect 94 1 93 1; +#X connect 96 0 98 0; +#X connect 98 0 97 0; +#X connect 102 0 100 0; +#X connect 103 0 101 0; +#X connect 105 0 57 1; +#X connect 106 0 57 1; +#X connect 107 0 108 0; +#X connect 109 0 110 0; +#X connect 111 0 112 0; +#X connect 113 0 57 1; +#X connect 114 0 118 0; +#X connect 119 0 120 0; +#X connect 120 0 121 0; diff --git a/roundly/src/main.cpp b/roundly/src/main.cpp index 0b3f9e7..a8c52bc 100644 --- a/roundly/src/main.cpp +++ b/roundly/src/main.cpp @@ -43,18 +43,18 @@ //==================== //======================== -#define ROUNDLY_A_KEY 200 // A-E-I-O-U-W-Y-N (up to 8 roundlys) - KEY 200 ~ 207 -#define ROUNDLY_E_KEY 201 -#define ROUNDLY_I_KEY 202 -#define ROUNDLY_O_KEY 203 -#define ROUNDLY_U_KEY 204 -#define ROUNDLY_W_KEY 205 -#define ROUNDLY_Y_KEY 206 -#define ROUNDLY_N_KEY 207 +#define ROUNDLY_A_KEY 2000 // A-E-I-O-U-W-Y-N (up to 8 roundlys) - KEY 200 ~ 207 +#define ROUNDLY_E_KEY 2001 +#define ROUNDLY_I_KEY 2002 +#define ROUNDLY_O_KEY 2003 +#define ROUNDLY_U_KEY 2004 +#define ROUNDLY_W_KEY 2005 +#define ROUNDLY_Y_KEY 2006 +#define ROUNDLY_N_KEY 2007 //======================= //======================== -#define ID_KEY ROUNDLY_I_KEY +#define ID_KEY ROUNDLY_E_KEY //======================= //========================