...
 
Commits (5)
tpf-server
----------
NOTE: tpf-server is still in development and might break
backwards compatibility.
About
-----
tpf-server is used to connect instances of tpf-clients. It is
supposed to run on public server with a public IP address.
tpf-client is a low-latency audio transmission software based
on the jacktrip protocol and built in Pure Data.
For more information visit:
https://gitlab.zhdk.ch/TPF/tpf-server
https://gitlab.zhdk.ch/TPF/tpf-client
Installation
------------
Make sure to get the latest Pure Data from:
https://puredata.info/downloads/
You need the following externals to run tpf-client
* iemnet
* osc
* slip
You can install externals through the Pd menu:
'Help' -> 'Find Externals'
Authors
-------
* Roman Haefeli <roman.haefeli@zhdk.ch>
* Johannes Schütt <johannes.schuett@zhdk.ch>
License
-------
TO_BE_DEFINED
#N canvas 463 43 468 434 10;
#X declare -stdpath ggee;
#X obj 25 42 inlet;
#X obj 253 47 inlet;
#X obj 76 301 outlet;
#X text 119 302 STDOUT;
#X obj 262 353 outlet;
#X text 305 354 EXECSTATUS;
#X text 73 44 COMMAND;
#X text 299 47 SIGHUP;
#X obj 14 9 declare -stdpath ggee;
#X obj 25 193 shell;
#X obj 25 150 list trim;
#X obj 52 344 s \$0.pid;
#X obj 25 318 t b a;
#X msg 25 366 1;
#X obj 25 395 s \$0.state;
#X obj 52 214 sel 0;
#X msg 52 234 0;
#X obj 52 253 s \$0.state;
#X obj 253 68 b;
#X obj 253 257 shell;
#X obj 268 189 r \$0.pid;
#X obj 253 211 f;
#X msg 253 235 kill \$1;
#X obj 262 323 r \$0.state;
#X obj 25 103 spigot 1;
#X obj 100 84 r \$0.state;
#X obj 100 104 ==;
#X obj 298 83 r \$0.state;
#X obj 25 130 list prepend include/command.sh;
#X obj 25 278 route PID;
#X obj 253 160 t b b;
#X msg 322 152 0;
#X obj 253 104 spigot 0;
#X obj 253 141 spigot 1;
#X obj 370 214 sel 0;
#X msg 370 237 1;
#X connect 0 0 24 0;
#X connect 1 0 18 0;
#X connect 9 0 29 0;
#X connect 9 1 15 0;
#X connect 10 0 9 0;
#X connect 12 0 13 0;
#X connect 12 1 11 0;
#X connect 13 0 14 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 18 0 32 0;
#X connect 19 1 34 0;
#X connect 20 0 21 1;
#X connect 21 0 22 0;
#X connect 22 0 19 0;
#X connect 23 0 4 0;
#X connect 24 0 28 0;
#X connect 25 0 26 0;
#X connect 26 0 24 1;
#X connect 27 0 32 1;
#X connect 28 0 10 0;
#X connect 29 0 12 0;
#X connect 29 1 2 0;
#X connect 30 0 21 0;
#X connect 30 1 31 0;
#X connect 31 0 33 1;
#X connect 32 0 33 0;
#X connect 33 0 30 0;
#X connect 34 0 35 0;
#X connect 35 0 33 1;
#!/bin/bash
while read line
do
echo "$line"
done < <($@ 2>&1 & echo "PID $!")
#N canvas 646 346 402 315 10;
#X obj 44 61 rzero_rev~ 0;
#X obj 29 90 -~;
#X obj 30 233 sel 1;
#X obj 28 31 inlet~;
#X obj 30 259 outlet;
#X obj 30 192 env~ 64 64;
#X obj 29 110 hip~ 10000;
#X obj 29 130 hip~ 10000;
#X obj 29 150 hip~ 10000;
#X obj 29 170 hip~ 10000;
#X obj 30 213 > 30;
#X connect 0 0 1 1;
#X connect 1 0 6 0;
#X connect 2 0 4 0;
#X connect 3 0 1 0;
#X connect 3 0 0 0;
#X connect 5 0 10 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 5 0;
#X connect 10 0 2 0;
#N canvas 753 528 328 227 10;
#X obj 110 16 inlet;
#X obj 110 36 b;
#X obj 110 109 f;
#X obj 37 16 loadbang;
#X obj 37 36 metro \$1;
#X obj 110 129 + 1;
#X obj 95 154 f;
#X obj 37 56 t b b;
#X msg 183 69 0;
#X obj 95 175 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 5 0 2 1;
#X connect 5 0 6 1;
#X connect 6 0 9 0;
#X connect 7 0 8 0;
#X connect 7 1 6 0;
#X connect 8 0 2 1;
#X connect 8 0 6 1;
#N canvas 0 53 704 578 10;
#X obj 20 20 adc~ 1 2;
#X obj 20 290 dac~ 1 2;
#X obj 498 23 tgl 20 0 empty empty empty 17 7 0 10 -204786 -1 -1 0
1;
#X text 524 26 start/stop;
#X floatatom 498 63 5 1 8 0 - - -, f 5;
#X text 533 63 channels;
#X msg 498 145 blocksize \$1;
#X msg 498 114 64;
#X msg 526 114 128;
#X msg 554 114 256;
#X msg 582 114 512;
#X msg 610 114 1024;
#X floatatom 498 173 5 0 0 0 - - -, f 5;
#X floatatom 498 223 5 0 0 0 - - -, f 5;
#X text 533 173 queue size;
#X msg 498 195 queue \$1;
#X msg 498 245 portoffset \$1;
#X text 533 223 port offset;
#X msg 499 410 status;
#X obj 119 250 route ERROR STATISTICS STATUS;
#X obj 119 459 print ERROR;
#X floatatom 176 412 8 0 0 0 - - -, f 8;
#X floatatom 259 412 8 0 0 0 - - -, f 8;
#X floatatom 342 412 8 0 0 0 - - -, f 8;
#X text 174 431 dropped;
#X text 257 431 glitch;
#X text 340 431 ooo;
#X symbolatom 498 275 22 0 0 0 - - -, f 22;
#X msg 498 292 server \$1;
#X text 568 291 server;
#X obj 176 372 route dropped_count glitch_count ooo_count;
#X obj 233 324 tgl 20 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 304 322 tgl 20 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 20 154 jacktrip . . . . . . . . .;
#X floatatom 498 318 5 0 0 0 - - -, f 5;
#X msg 498 335 peerport \$1;
#X floatatom 498 358 5 0 0 0 - - -, f 5;
#X msg 498 375 bindport \$1;
#X msg 498 85 outchannels \$1;
#X obj 16 424 loadbang;
#X msg 16 444 dsp 1;
#X obj 16 464 s pd;
#X obj 233 295 route connected receiving inchannels;
#X obj 395 349 print STATUS;
#X floatatom 375 331 5 0 0 0 - - -, f 5;
#X symbolatom 499 435 10 0 0 0 - - -, f 10;
#X msg 499 455 enabletoken \$1;
#X msg 499 492 disabletoken;
#X connect 0 0 33 0;
#X connect 0 1 33 1;
#X connect 2 0 33 8;
#X connect 4 0 38 0;
#X connect 6 0 33 8;
#X connect 7 0 6 0;
#X connect 8 0 6 0;
#X connect 9 0 6 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X connect 12 0 15 0;
#X connect 13 0 16 0;
#X connect 15 0 33 8;
#X connect 16 0 33 8;
#X connect 18 0 33 8;
#X connect 19 0 20 0;
#X connect 19 1 30 0;
#X connect 19 2 42 0;
#X connect 27 0 28 0;
#X connect 28 0 33 8;
#X connect 30 0 21 0;
#X connect 30 1 22 0;
#X connect 30 2 23 0;
#X connect 33 0 1 0;
#X connect 33 1 1 1;
#X connect 33 8 19 0;
#X connect 34 0 35 0;
#X connect 35 0 33 8;
#X connect 36 0 37 0;
#X connect 37 0 33 8;
#X connect 38 0 33 8;
#X connect 39 0 40 0;
#X connect 40 0 41 0;
#X connect 42 0 31 0;
#X connect 42 1 32 0;
#X connect 42 2 44 0;
#X connect 42 3 43 0;
#X connect 45 0 46 0;
#X connect 46 0 33 8;
#X connect 47 0 33 8;
This diff is collapsed.
#N canvas 331 281 495 383 10;
#X obj 21 13 inlet;
#X obj 329 82 command;
#X obj 21 33 s \$0.inlet;
#X obj 25 281 outlet;
#X obj 25 261 r \$0.outlet.0;
#X obj 329 29 r \$0.command;
#X obj 368 106 s \$0.running;
#X obj 329 132 s \$0.output;
#X text 126 13 params (default):;
#N canvas 795 481 475 429 params 0;
#X obj 45 21 r \$0.inlet;
#X obj 45 41 route server portoffset numofchannels bitres clientname
;
#X obj 12 164 pack s f f f s;
#X obj 12 137 symbol;
#X msg 12 184 jacktrip -c \$1 -o \$2 -n \$3 -b \$4 --clientname \$5
;
#X obj 12 101 r \$0.start;
#X obj 12 215 s \$0.command;
#X obj 45 75 list;
#X obj 306 68 list;
#X connect 0 0 1 0;
#X connect 1 0 7 0;
#X connect 1 1 2 1;
#X connect 1 2 2 2;
#X connect 1 3 2 3;
#X connect 1 4 8 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 4 0 6 0;
#X connect 5 0 3 0;
#X connect 7 0 3 1;
#X connect 8 0 2 4;
#X restore 29 140 pd params;
#X obj 128 34 loadbang;
#X msg 147 115 bitres 16;
#X msg 159 74 portoffset 0;
#X msg 151 94 numofchannels 2;
#X msg 137 134 clientname JackTrip;
#X obj 197 161 s \$0.inlet;
#N canvas 284 575 489 358 start/stop 0;
#X obj 9 12 r \$0.inlet;
#X obj 102 74 r \$0.running;
#X obj 9 76 b;
#X obj 56 76 b;
#X obj 9 106 f;
#X obj 56 108 f;
#X obj 9 137 sel 1;
#X obj 56 137 sel 0;
#X obj 9 200 s \$0.stop;
#X obj 79 200 s \$0.start;
#X obj 326 73 r \$0.running;
#X obj 311 93 f;
#X obj 311 113 sel 1;
#X obj 311 133 t b b;
#X obj 311 157 s \$0.stop;
#X obj 311 216 spigot;
#X obj 311 194 r \$0.running;
#X msg 400 189 1;
#X obj 311 236 sel 0;
#X obj 311 256 t b b;
#X msg 386 232 0;
#X obj 311 278 s \$0.start;
#X obj 311 56 b;
#X obj 203 112 print;
#X obj 9 32 route 0 1;
#X obj 70 31 route stop start restart;
#X connect 0 0 24 0;
#X connect 0 0 25 0;
#X connect 1 0 5 1;
#X connect 1 0 4 1;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X connect 10 0 11 1;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 13 1 17 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 15 1;
#X connect 18 0 19 0;
#X connect 19 0 21 0;
#X connect 19 1 20 0;
#X connect 20 0 15 1;
#X connect 22 0 11 0;
#X connect 24 0 2 0;
#X connect 24 1 3 0;
#X connect 25 0 2 0;
#X connect 25 1 3 0;
#X connect 25 2 22 0;
#X restore 29 168 pd start/stop;
#N canvas 860 315 632 312 errors 0;
#X obj 11 12 r \$0.output;
#X obj 11 32 route ERROR:;
#X obj 11 52 route Peer;
#X obj 11 92 route Size;
#X obj 11 112 route is;
#X obj 11 132 route :;
#X obj 160 120 route is;
#X obj 160 140 route :;
#X obj 160 100 route Rate;
#X msg 160 175 MISMATCH SAMPLERATE \$1;
#X msg 11 176 MISMATCH BUFFERSIZE \$1;
#X obj 307 133 route is;
#X obj 307 153 route :;
#X obj 307 94 route Bit;
#X obj 307 114 route Resolution;
#X obj 11 72 route Buffer Sampling Audio;
#X msg 307 176 MISMATCH BITRES \$1;
#X obj 440 56 route Unable;
#X obj 440 76 route to;
#X obj 440 96 route connect;
#X obj 440 116 route to;
#X obj 440 136 route JACK;
#X obj 440 156 route server;
#X obj 224 282 s \$0.outlet.1;
#X msg 440 179 JACK NOT RUNNING;
#X connect 0 0 1 0;
#X connect 0 0 17 0;
#X connect 1 0 2 0;
#X connect 2 0 15 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 10 0;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X connect 8 0 6 0;
#X connect 9 0 23 0;
#X connect 10 0 23 0;
#X connect 11 0 12 0;
#X connect 12 0 16 0;
#X connect 13 0 14 0;
#X connect 14 0 11 0;
#X connect 15 0 3 0;
#X connect 15 1 8 0;
#X connect 15 2 13 0;
#X connect 16 0 23 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X connect 22 0 24 0;
#X connect 24 0 23 0;
#X restore 29 220 pd errors;
#X obj 368 57 r \$0.stop;
#N canvas 331 504 599 419 status 0;
#X obj 32 23 r \$0.output;
#X obj 32 85 route for;
#X obj 32 106 route Peer...;
#X obj 121 82 route Connection;
#X obj 121 102 route for;
#X obj 121 122 route Peer!;
#X obj 32 43 route Waiting Received UDP;
#X obj 236 127 route too;
#X obj 236 147 route long;
#X obj 236 81 route waiting is;
#X obj 282 103 route waited;
#X obj 406 113 r \$0.running;
#X obj 32 186 b;
#X obj 121 188 b;
#X obj 406 133 sel 0 1;
#X msg 32 233 WAITING_FOR_PEER;
#X msg 406 161 STOPPED;
#X msg 465 162 STARTED;
#X msg 148 250 OK;
#X msg 255 284 NO_DATA;
#X obj 207 376 s \$0.outlet.0;
#X obj 275 204 del 100;
#X obj 236 183 t b b b;
#X obj 255 262 spigot 1;
#X msg 236 206 0;
#X obj 275 224 t b b;
#X msg 302 244 1;
#X msg 338 176 stop;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 2 0 12 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 13 0;
#X connect 6 0 1 0;
#X connect 6 1 3 0;
#X connect 6 2 9 0;
#X connect 7 0 8 0;
#X connect 8 0 22 0;
#X connect 9 0 7 0;
#X connect 9 1 10 0;
#X connect 10 0 7 0;
#X connect 11 0 14 0;
#X connect 12 0 15 0;
#X connect 13 0 18 0;
#X connect 14 0 16 0;
#X connect 14 0 27 0;
#X connect 14 1 17 0;
#X connect 14 1 27 0;
#X connect 15 0 20 0;
#X connect 16 0 20 0;
#X connect 17 0 20 0;
#X connect 18 0 20 0;
#X connect 19 0 20 0;
#X connect 21 0 25 0;
#X connect 22 0 24 0;
#X connect 22 1 23 0;
#X connect 22 2 21 0;
#X connect 23 0 19 0;
#X connect 24 0 23 1;
#X connect 25 0 18 0;
#X connect 25 1 26 0;
#X connect 26 0 23 1;
#X connect 27 0 21 0;
#X restore 29 196 pd status;
#X msg 159 55 server 195.176.247.53;
#X obj 298 288 outlet;
#X obj 298 268 r \$0.outlet.1;
#X connect 0 0 2 0;
#X connect 1 0 7 0;
#X connect 1 1 6 0;
#X connect 4 0 3 0;
#X connect 5 0 1 0;
#X connect 10 0 20 0;
#X connect 10 0 12 0;
#X connect 10 0 13 0;
#X connect 10 0 11 0;
#X connect 10 0 14 0;
#X connect 11 0 15 0;
#X connect 12 0 15 0;
#X connect 13 0 15 0;
#X connect 14 0 15 0;
#X connect 18 0 1 1;
#X connect 20 0 15 0;
#X connect 22 0 21 0;
#N canvas 618 643 439 289 10;
#X obj 17 13 inlet;
#X obj 17 33 route float;
#X obj 80 52 route clear;
#X obj 143 110 print moving_sum;
#X obj 143 72 list prepend no method for;
#X obj 143 91 list trim;
#X obj 265 193 table \$0.values \$1;
#X obj 36 78 f;
#X obj 36 98 mod \$1;
#X obj 36 118 t a a;
#X obj 106 116 + 1;
#X obj 36 153 pack f f;
#X obj 36 184 s \$0.values;
#X obj 17 56 t b b a;
#X obj 17 211 array sum \$0.values;
#X obj 17 242 outlet;
#X msg 167 194 const 0;
#X obj 167 214 s \$0.values;
#X connect 0 0 1 0;
#X connect 1 0 13 0;
#X connect 1 1 2 0;
#X connect 2 0 16 0;
#X connect 2 1 4 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 11 0;
#X connect 9 1 10 0;
#X connect 10 0 7 1;
#X connect 11 0 12 0;
#X connect 13 0 14 0;
#X connect 13 1 7 0;
#X connect 13 2 11 1;
#X connect 14 0 15 0;
#X connect 16 0 17 0;
#N canvas 379 44 504 427 10;
#X obj 1 0 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 308 395 see also:;
#X obj 17 267 snapshot~;
#X floatatom 17 287 10 0 0 0 - - -, f 10;
#X obj 17 124 sig~;
#X obj 372 394 netpd-sig-to-16bit~;
#X text 36 357 inlet0: audio signal (MSB);
#X text 36 370 inlet1: audio signal (LSB);
#X text 30 383 outlet0: audio signal (-1 to 1);
#X obj 17 177 netpd-16bit-to-sig~;
#X floatatom 17 67 5 0 255 0 - - -, f 5;
#X obj 127 124 sig~;
#X floatatom 127 67 5 0 255 0 - - -, f 5;
#X text 8 7 netpd-16bit-to-sig - convert two byte-streams to audio
signa;
#X obj 97 218 loadbang;
#X obj 97 238 metro 100;
#X connect 2 0 3 0;
#X connect 4 0 9 0;
#X connect 9 0 2 0;
#X connect 10 0 4 0;
#X connect 11 0 9 1;
#X connect 12 0 11 0;
#X connect 14 0 15 0;
#X connect 15 0 2 0;
#N canvas 574 67 573 320 10;
#X obj 22 18 inlet~;
#X obj 227 18 inlet~;
#X obj 22 218 outlet~;
#X obj 22 107 +~;
#X obj 22 142 /~ 32768;
#X obj 355 265 table \$0.msb 256;
#X obj 22 52 tabread~ \$0.msb;
#X obj 22 162 -~ 1;
#X obj 354 149 << 8;
#X obj 354 173 + 32768;
#X obj 354 193 mod 65536;
#X obj 354 43 loadbang;
#X msg 354 63 256;
#X obj 354 83 until;
#X obj 354 103 f;
#X obj 422 114 + 1;
#X obj 354 123 t a a a;
#X obj 354 219 tabwrite \$0.msb;
#X connect 0 0 6 0;
#X connect 1 0 3 1;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 6 0 3 0;
#X connect 7 0 2 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 17 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 16 0;
#X connect 15 0 14 1;
#X connect 16 0 8 0;
#X connect 16 1 17 1;
#X connect 16 2 15 0;
#N canvas 379 44 505 430 10;
#X obj 1 0 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 308 395 see also:;
#X text 8 7 netpd-sig-to-16bit - convert signal to two byte-streams
;
#X obj 17 177 netpd-sig-to-16bit~;
#X text 36 357 inlet0: audio signal (-1 to 1);
#X text 30 370 outlet0: audio signal (MSB);
#X text 30 383 outlet1: audio signal (LSB);
#X obj 17 267 snapshot~;
#X floatatom 17 287 5 0 0 0 - - -, f 5;
#X obj 127 267 snapshot~;
#X floatatom 127 287 5 0 0 0 - - -, f 5;
#X obj 159 223 loadbang;
#X obj 159 243 metro 100;
#X obj 20 89 hsl 400 15 -1 1 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 23600 1;
#X obj 17 124 sig~;
#X msg 17 53 -1;
#X msg 46 53 -0.5;
#X msg 81 53 0;
#X msg 110 53 0.5;
#X msg 139 53 1;
#X obj 372 394 netpd-16bit-to-sig~;
#X text 57 287 MSB;
#X text 165 287 LSB;
#X connect 3 0 7 0;
#X connect 3 1 9 0;
#X connect 7 0 8 0;
#X connect 9 0 10 0;
#X connect 11 0 12 0;
#X connect 12 0 9 0;
#X connect 12 0 7 0;
#X connect 13 0 14 0;
#X connect 14 0 3 0;
#X connect 15 0 13 0;
#X connect 16 0 13 0;
#X connect 17 0 13 0;
#X connect 18 0 13 0;
#X connect 19 0 13 0;
#N canvas 473 150 437 300 10;
#X obj 10 180 table \$0.msb 65536;
#X obj 10 198 table \$0.lsb 65536;
#X obj 173 18 inlet~;
#X obj 173 76 *~ 32768;
#X obj 174 202 outlet~;
#X obj 270 204 outlet~;
#X obj 173 134 tabread~ \$0.msb;
#X obj 271 135 tabread~ \$0.lsb;
#X obj 173 48 +~ 1;
#X obj 18 23 loadbang;
#N canvas 16 186 311 243 generate_msb_lsb 0;
#X obj 11 12 inlet;
#X obj 11 64 until;
#X obj 11 84 f;
#X obj 110 96 + 1;
#X obj 11 162 mod 256;
#X obj 11 189 tabwrite \$0.lsb;
#X msg 11 39 65536;
#X obj 148 202 tabwrite \$0.msb;
#X obj 11 111 t a a a a a;
#X obj 148 122 div 256;
#X obj 148 147 + 128;
#X obj 148 169 mod 256;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 2 0 8 0;
#X connect 3 0 2 1;
#X connect 4 0 5 0;
#X connect 6 0 1 0;
#X connect 8 0 4 0;
#X connect 8 1 5 1;
#X connect 8 2 9 0;
#X connect 8 3 7 1;
#X connect 8 4 3 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 7 0;
#X restore 18 66 pd generate_msb_lsb;
#X connect 2 0 8 0;
#X connect 3 0 6 0;
#X connect 3 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 5 0;
#X connect 8 0 3 0;
#X connect 9 0 10 0;
#N canvas 379 44 504 433 10;
#X obj 1 0 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 8 7 netpd-tabdump16 - dump table content as 16bit byte list
;
#X obj 291 160 table \$0.sometable 10;
#X obj 290 106 s \$0.sometable;
#X obj 290 59 loadbang;
#X msg 290 84 0 -0.5 0.5 1 -0.12 -0.3 0 0.2 -1;
#X obj 17 178 netpd-tabdump16 \$0.sometable;
#X obj 17 238 print netpd-tabdump16;
#X text 59 62 index \, count;
#X msg 17 62 0 10;
#X msg 37 85 2 1;
#X msg 50 107 7 1;
#X msg 62 150 set differentable;
#X text 15 270 [netpd-tabdump16] dumps content of a table as a list
of bytes representing 16bit sample values (2 bytes = 1 sample \, big
endian).;
#X text 48 342 arg1: <table>;
#X text 36 357 inlet0: <index> <count>;
#X text 82 372 set <table>;
#X text 30 387 outlet0: list of bytes;
#X obj 379 395 netpd-tabwrite16;
#X text 315 396 see also:;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 9 0 6 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X connect 12 0 6 0;
#N canvas 171 119 431 381 10;
#X obj 114 334 outlet;
#X obj 20 13 inlet;
#X obj 20 140 list;
#N canvas 443 388 344 105 msgbox 0;
#X obj 10 7 inlet;
#X obj 10 59 outlet;
#X msg 10 33;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 114 310 pd msgbox;
#X msg 114 282 bang \, set;
#N canvas 602 286 352 432 DSP.variant 0;
#X obj 65 138 unpack f f;
#X obj 65 158 array get \$1;
#X obj 65 178 list prepend 0;
#N canvas 529 129 378 248 DSP.processing 0;
#X obj 6 13 inlet;
#N canvas 307 284 576 264 reblock_upsampled_by_2 0;
#X obj 15 20 inlet;
#X obj 260 96 rzero_rev~ 0;
#X text 345 93 <- one sample delay;
#X obj 269 169 +~;
#X obj 268 33 inlet~ pad;
#X obj 347 35 inlet~ pad;
#X obj 268 201 tabsend~ \$0.out.segment;
#X obj 15 98 switch~ 2048 1 2;
#X obj 83 19 inlet;
#X obj 83 39 * 2;
#X msg 83 59 set \$1 1 2;
#X connect 0 0 7 0;
#X connect 1 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 1 0;
#X connect 5 0 3 1;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X restore 6 194 pd reblock_upsampled_by_2;
#X obj 79 120 tabreceive~ \$0.in.segment;
#X obj 6 55 t b b;
#X obj 33 83 switch~ 1024 1 1;
#X obj 79 142 netpd-sig-to-16bit~;
#X obj 128 17 inlet;
#X obj 128 37 t a a;
#X msg 128 59 set \$1 1 1;
#X connect 0 0 3 0;
#X connect 2 0 5 0;
#X connect 3 0 1 0;
#X connect 3 1 4 0;
#X connect 5 0 1 2;
#X connect 5 1 1 3;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 1 1;
#X connect 8 0 4 0;
#X restore 45 226 pd DSP.processing;
#X msg 26 251 \$2;
#X obj 26 273 * 2;
#X obj 65 198 s \$0.in.segment;
#X obj 26 118 t a b a;
#X obj 26 293 t b a;
#X obj 26 341 list prepend add2;
#X obj 26 316 array get \$0.out.segment;
#X obj 26 363 list trim;
#X obj 26 17 inlet;
#X obj 26 383 outlet;
#X obj 211 20 inlet;
#X obj 26 89 pack 0 1024;
#X obj 89 13 inlet;
#X obj 89 45 t a a;
#X connect 0 0 1 0;
#X connect 0 1 1 1;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 7 0 4 0;
#X connect 7 1 3 0;
#X connect 7 2 0 0;
#X connect 8 0 10 0;
#X connect 8 1 10 1;
#X connect 9 0 11 0;
#X connect 10 0 9 0;
#X connect 11 0 13 0;
#X connect 12 0 15 0;
#X connect 14 0 1 2;
#X connect 15 0 7 0;
#X connect 16 0 17 0;
#X connect 17 0 15 1;
#X connect 17 1 3 1;
#X restore 141 219 pd DSP.variant;
#X obj 141 259 t a;
#X obj 20 38 route set blocksize bang;
#X obj 114 67 t b b;
#X obj 264 14 table \$0.in.segment 4096;
#X obj 264 33 table \$0.out.segment 8192;
#X connect 1 0 7 0;
#X connect 2 0 5 2;
#X connect 3 0 0 0;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 7 0 2 0;
#X connect 7 1 5 1;
#X connect 7 2 8 0;
#X connect 8 0 4 0;
#X connect 8 1 5 0;
#N canvas 379 44 504 420 10;
#X obj 1 0 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 291 160 table \$0.sometable 10;
#X msg 62 150 set differentable;
#X text 27 319 arg1: <table>;
#X text 61 349 set <table>;
#X text 323 388 see also:;
#X text 8 7 netpd-tabwrite16 - write 16bit data to table;
#X obj 17 178 netpd-tabwrite16 \$0.sometable;
#X msg 17 62 0 63 255 191 255 255 255 112 163;
#X text 16 229 [netpd-tabwrite16] writes 16bit data represented as
list of bytes to a table.;
#X text 15 262 NOTE: the first element of the list is the index and
does not represent a byte value.;
#X text 15 334 inlet0: 16bit data (index \, msb \, lsb \, msb \, lsb
...);
#X obj 387 387 netpd-tabdump16;
#X connect 2 0 7 0;
#X connect 8 0 7 0;
#N canvas 300 50 435 461 10;
#X obj 13 13 inlet;
#X obj 13 419 s \$1;
#N canvas 604 358 455 515 DSP.variant 0;
#N canvas 645 426 437 362 DSP.processing 0;
#X obj 17 17 inlet;
#X obj 16 283 netpd-16bit-to-sig~;
#X obj 56 90 switch~ 1024 1 1;
#X obj 17 134 samplerate~;
#X obj 17 154 / 1024;
#X obj 17 177 phasor~;
#X obj 16 208 *~ 2048;
#X obj 17 234 +~ 1;
#X obj 16 312 tabsend~ \$0.out.buffer;
#X obj 17 67 t b b b;
#X msg 73 159 0;
#X obj 146 257 tabread~ \$0.buffer;
#X obj 17 258 tabread~ \$0.buffer;
#X obj 153 13 inlet;
#X text 203 12 blocksize;
#X obj 153 34 t a a a;
#X msg 153 61 set \$1 1 1;
#X obj 192 99 * 2;
#X connect 0 0 9 0;
#X connect 1 0 8 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 0 11 0;
#X connect 7 0 12 0;
#X connect 9 0 3 0;
#X connect 9 1 10 0;
#X connect 9 2 2 0;
#X connect 10 0 5 1;
#X connect 11 0 1 1;
#X connect 12 0 1 0;
#X connect 13 0 15 0;
#X connect 15 0 16 0;
#X connect 15 1 4 1;
#X connect 15 2 17 0;
#X connect 16 0 2 0;
#X connect 17 0 6 1;
#X restore 41 212 pd DSP.processing;
#X obj 22 107 t a b a;
#X obj 22 235 t a a;
#X obj 22 327 array get \$0.out.buffer;
#X msg 91 255 \$1;
#X msg 22 256 \$2;
#X obj 22 305 t b a;
#X obj 22 354 list prepend;
#X obj 22 278 * 0.5;
#X obj 91 275 * 0.5;
#X obj 22 16 inlet;
#X obj 22 382 outlet;
#X obj 225 14 inlet;
#X obj 225 57 * 2;
#X obj 22 79 pack 0 f;
#X obj 225 34 t a a;
#X text 267 13 blocksize;
#X connect 1 0 2 0;
#X connect 1 1 0 0;
#X connect 2 0 5 0;
#X connect 2 1 4 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 8 0;
#X connect 6 0 3 0;
#X connect 6 1 3 1;
#X connect 7 0 11 0;
#X connect 8 0 6 0;
#X connect 9 0 7 1;
#X connect 10 0 14 0;
#X connect 12 0 15 0;
#X connect 13 0 14 1;
#X connect 14 0 1 0;
#X connect 15 0 13 0;
#X connect 15 1 0 1;
#X restore 124 373 pd DSP.variant;
#X obj 259 34 table \$0.buffer 8192;
#X obj 259 57 table \$0.out.buffer 4096;
#X obj 13 35 route set blocksize;
#X obj 151 98 list length;
#X obj 124 66 t a a;
#X obj 190 132 * 2;
#X obj 151 174 t a a;
#X obj 124 206 spigot;
#X obj 151 154 == 2048;
#X obj 192 201 sel 0;
#X obj 192 244 print netpd-tabwrite16;
#X msg 192 223 error: not matching current blocksize;
#X obj 124 239 t b a;
#X obj 151 274 list prepend 0;
#X obj 151 294 s \$0.buffer;
#X connect 0 0 5 0;
#X connect 2 0 1 0;
#X connect 5 0 1 0;
#X connect 5 1 2 1;
#X connect 5 1 8 0;
#X connect 5 2 7 0;
#X connect 6 0 11 0;
#X connect 7 0 10 0;
#X connect 7 1 6 0;
#X connect 8 0 11 1;
#X connect 9 0 10 1;
#X connect 9 1 12 0;
#X connect 10 0 15 0;
#X connect 11 0 9 0;
#X connect 12 0 14 0;
#X connect 14 0 13 0;
#X connect 15 0 2 0;
#X connect 15 1 16 0;
#X connect 16 0 17 0;
#N canvas 747 274 450 300 10;
#N canvas 277 198 348 267 generate_msb 0;
#X obj 19 17 inlet;
#X obj 36 65 switch~ 256 1 1;
#N canvas 537 407 450 300 upsampled_by_256 0;
#X obj 12 21 inlet;
#X obj 12 63 switch~ 65536 1 256;
#X obj 205 24 inlet~ hold;
#X obj 204 55 tabsend~ TO.MSB;
#X connect 0 0 1 0;
#X connect 2 0 3 0;
#X restore 19 226 pd upsampled_by_256;
#X obj 53 115 samplerate~;
#X obj 53 135 / 256;
#X obj 53 155 phasor~;
#X obj 53 175 *~ 256;
#X msg 92 133 0.5;
#X obj 19 37 t b b b b;
#X connect 0 0 8 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 2 1;
#X connect 7 0 5 1;
#X connect 8 0 2 0;
#X connect 8 1 1 0;
#X connect 8 2 3 0;
#X connect 8 3 7 0;
#X restore 41 162 pd generate_msb;
#N canvas 31 236 311 243 generate_lsb 0;
#X obj 11 12 inlet;
#X obj 11 65 switch~ 65536 1 1;
#X obj 38 90 samplerate~;
#X obj 38 110 / 256;
#X obj 38 136 phasor~;
#X obj 38 156 *~ 256;
#X obj 11 32 t b b;
#X obj 38 176 tabsend~ TO.LSB;
#X connect 0 0 6 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 7 0;
#X connect 6 0 1 0;
#X connect 6 1 2 0;
#X restore 14 191 pd generate_lsb;
#X obj 17 232 table TO.MSB 65536;
#X obj 17 250 table TO.LSB 65536;
#N canvas 470 226 348 267 generate_msb 0;
#X obj 19 17 inlet;
#X obj 36 65 switch~ 256 1 1;
#X obj 53 115 samplerate~;
#X obj 53 135 / 256;
#X obj 53 155 phasor~;
#X msg 92 133 0.5;
#X obj 19 37 t b b b b;
#X obj 53 175 *~ 65536;
#X obj 53 198 tabsend~ FROM.MSB;
#X connect 0 0 6 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 5 0 4 1;
#X connect 6 1 1 0;
#X connect 6 2 2 0;
#X connect 6 3 5 0;
#X connect 7 0 8 0;
#X restore 256 158 pd generate_msb;
#X obj 259 211 table FROM.MSB 256;
#X obj 14 135 t b b b;
#X obj 14 10 loadbang;
#X obj 14 30 t b b;
#X msg 41 54 dsp 1;
#X obj 41 74 s pd;
#X connect 6 0 1 0;
#X connect 6 1 0 0;
#X connect 6 2 4 0;
#X connect 7 0 8 0;
#X connect 8 0 6 0;
#X connect 8 1 9 0;
#X connect 9 0 10 0;
#N canvas 485 44 557 502 10;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0.onblock 256 float 2;
#X coords 0 1 255 -1 256 80 1 0 0;
#X restore 16 369 graph;
#X msg 157 136 -1 \, 1 5.8;
#X obj 157 158 vline~;
#X obj 16 74 del 10;
#X obj 16 104 t b b;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0.precise 256 float 2;
#X coords 0 1 255 -1 256 80 1 0 0;
#X restore 16 259 graph;
#X text 9 12 rh_vtabwrite~ - precise tabwrite~;
#X floatatom 16 55 5 0 0 0 - - -, f 5;
#X obj 16 198 rh_vtabwrite~ \$0.precise;
#X obj 172 200 tabwrite~ \$0.onblock;
#X text 179 59 Unlike the original [tabwrite~ ] that starts recording
only on block boundaries \, [rh_tabwrite~] considers message scheduling
to start recording exactly when it's due.;
#N canvas 107 118 337 113 NETPD 0;
#X msg 22 18 version 0 1 0;
#X restore 436 16 pd NETPD 2 0;
#X connect 1 0 2 0;
#X connect 2 0 8 1;
#X connect 2 0 9 0;
#X connect 3 0 4 0;
#X connect 4 0 8 0;
#X connect 4 0 9 0;
#X connect 4 1 1 0;
#X connect 7 0 3 0;
#N canvas 107 44 460 347 10;
#X obj 76 20 inlet;
#X obj 164 176 inlet~;
#N canvas 0 44 450 300 second 0;
#X obj 47 41 inlet~;
#X obj 63 227 outlet~;
#X obj 49 167 delread~ \$0.compensate;
#X obj 189 44 inlet;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X restore 165 246 pd second;
#N canvas 0 44 450 300 first 0;
#X obj 23 11 inlet~;
#X obj 63 227 outlet~;
#X obj 53 123 delwrite~ \$0.compensate 100;
#X connect 0 0 2 0;
#X restore 165 214 pd first;
#X obj 101 134 timer;
#X obj 7 84 bang~;
#X obj 76 43 t b b;
#X obj 101 206 -;
#X obj 101 160 pack f f;
#X msg 101 184 \$2 \$1;
#X obj 146 39 samplerate~;
#X msg 146 61 1000 \$1;
#X obj 146 83 /;
#X obj 146 105 * 64;
#X obj 146 16 loadbang;
#X obj 79 299 tabwrite~ \$1;
#X obj 7 107 t b b;
#X msg 76 65 1;
#X obj 7 154 f;
#X obj 7 176 sel 1;
#X obj 7 198 t b b;
#X msg 65 189 0;
#N canvas 107 118 337 113 NETPD 0;
#X msg 22 18 version 0 1 0;
#N canvas 205 136 340 98 abslist 0;
#X msg 15 14 rh_vtabwrite~-help;
#X restore 19 50 pd abslist;
#X restore 327 28 pd NETPD 2 0;
#X connect 0 0 6 0;
#X connect 1 0 3 0;
#X connect 2 0 15 0;
#X connect 3 0 2 0;
#X connect 4 0 8 0;
#X connect 5 0 16 0;
#X connect 6 0 17 0;
#X connect 6 1 4 1;
#X connect 7 0 2 1;
#X connect 8 0 9 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 8 1;
#X connect 14 0 10 0;
#X connect 16 0 18 0;
#X connect 16 1 4 0;
#X connect 17 0 18 1;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 15 0;
#X connect 20 1 21 0;
#X connect 21 0 18 1;
#N canvas 861 257 934 643 10;
#X obj 10 12 vsl 24 316 0 1 0 0 \$0.handle.s \$0.handle.r empty 0 20
0 10 -262144 -1 -1 0 1;
#X obj 129 105 r \$0.handle.s;
#X obj 739 194 s \$0.handle.r;
#X obj 10 10 cnv 15 24 321 empty empty empty 4 12 0 14 -228856 -1 0
;
#X obj 10 10 cnv 2 24 321 empty \$0.handle.gui empty 4 12 0 14 -162280
-1 0;
#X obj 640 52 loadbang;
#X obj 640 73 f \$3;
#X obj 304 173 f;
#X obj 203 532 s \$0.handle.gui;
#X msg 203 494 pos 10 \$1;
#X msg 323 337 vis_size 24 \$1;
#X obj 333 134 t b a;
#X obj 304 194 /;
#X obj 304 216 min 1;
#X obj 304 238 * 321;
#X obj 304 259 max 5;
#X msg 333 106 1;
#X floatatom 610 140 5 0 0 0 - - -, f 5;
#X obj 333 85 moses 1;
#X obj 304 280 int;
#X obj 203 467 + 10;
#X obj 176 345 max 0;
#X obj 130 296 * 321;
#X msg 252 332 321 \$1;
#X obj 252 353 -;
#X obj 203 424 list prepend;
#X obj 203 445 -;
#X obj 252 374 t a a;
#X obj 176 376 min;
#X obj 168 150 sel 0;
#X obj 208 151 f;
#X obj 176 397 t a a;
#X obj 129 127 t a a a;
#X obj 111 381 / 321;
#X obj 168 172 f;
#X obj 130 152 -;
#X obj 130 216 f;
#X obj 130 241 + 1;
#X obj 130 191 t b a;
#X obj 130 262 t a a;
#X msg 341 425 321 \$1;
#X obj 630 8 r \$1;
#X obj 630 29 route displaysize;
#X obj 630 102 s \$0.displaysize;
#X obj 760 52 loadbang;
#X obj 750 8 r \$1;
#X obj 750 29 route totalsize;
#X obj 757 130 s \$0.totalsize;
#X obj 760 73 f \$4;
#X obj 304 37 r \$0.displaysize;
#X obj 333 62 r \$0.totalsize;
#X obj 616 172 s \$0.totalsize;
#X obj 471 303 r \$0.displaysize;
#X obj 452 282 r \$0.totalsize;
#X obj 452 349 -;
#X obj 471 324 t b a;
#X obj 671 136 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 452 373 max 0;
#X msg 392 415 321 \$1;
#X obj 392 436 -;
#X obj 341 446 -;
#X obj 341 467 -;
#X obj 304 301 t a a a a;
#X obj 392 459 /;
#X obj 341 494 /;
#X obj 341 544 int;
#X obj 341 522 + 0.5;
#X obj 648 278 r \$1;
#X obj 648 299 route setpos;
#X obj 648 343 max 0;
#X obj 648 367 min;
#X floatatom 648 398 5 0 0 0 - - -, f 5;
#X floatatom 713 262 5 0 0 0 - - -, f 5;
#X obj 648 320 int;
#X msg 739 162 0;
#X obj 341 610 s \$2;
#X msg 341 576 pos \$1;
#X obj 750 100 t b a;
#X connect 1 0 32 0;
#X connect 5 0 6 0;
#X connect 6 0 43 0;
#X connect 7 0 12 0;
#X connect 9 0 8 0;
#X connect 10 0 8 0;
#X connect 11 0 7 0;
#X connect 11 1 12 1;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 19 0;
#X connect 16 0 11 0;
#X connect 17 0 51 0;
#X connect 18 0 16 0;
#X connect 18 1 11 0;
#X connect 19 0 62 0;
#X connect 20 0 9 0;
#X connect 21 0 28 0;
#X connect 22 0 21 0;
#X connect 23 0 24 0;
#X connect 24 0 27 0;
#X connect 25 0 26 0;
#X connect 26 0 20 0;
#X connect 26 0 40 0;
#X connect 27 0 28 1;
#X connect 27 1 25 1;
#X connect 28 0 31 0;
#X connect 29 0 34 0;
#X connect 29 1 30 0;
#X connect 30 0 29 1;
#X connect 31 0 33 0;
#X connect 31 1 25 0;
#X connect 32 0 35 1;
#X connect 32 1 35 0;
#X connect 32 2 29 0;
#X connect 33 0 34 1;
#X connect 34 0 36 1;
#X connect 35 0 38 0;
#X connect 36 0 37 0;
#X connect 37 0 39 0;
#X connect 38 0 36 0;
#X connect 38 1 37 1;
#X connect 39 0 22 0;
#X connect 39 1 36 1;
#X connect 40 0 60 0;
#X connect 41 0 42 0;
#X connect 42 0 43 0;
#X connect 44 0 48 0;
#X connect 45 0 46 0;
#X connect 46 0 77 0;
#X connect 48 0 77 0;
#X connect 49 0 7 0;
#X connect 50 0 18 0;
#X connect 52 0 55 0;
#X connect 53 0 54 0;
#X connect 54 0 57 0;
#X connect 55 0 54 0;
#X connect 55 1 54 1;
#X connect 56 0 6 0;
#X connect 57 0 63 1;
#X connect 57 0 70 1;
#X connect 58 0 59 0;
#X connect 59 0 63 0;
#X connect 60 0 61 0;
#X connect 61 0 64 0;
#X connect 62 0 23 0;
#X connect 62 1 10 0;
#X connect 62 2 61 1;
#X connect 62 3 58 0;
#X connect 63 0 64 1;
#X connect 64 0 66 0;
#X connect 65 0 76 0;
#X connect 66 0 65 0;
#X connect 67 0 68 0;
#X connect 68 0 73 0;
#X connect 69 0 70 0;
#X connect 70 0 71 0;
#X connect 72 0 73 0;
#X connect 73 0 69 0;
#X connect 74 0 2 0;
#X connect 76 0 75 0;
#X connect 77 0 74 0;
#X connect 77 1 47 0;
#X coords 0 -1 1 1 24 321 2 10 10;
#N canvas 733 324 493 161 12;
#X obj 12 80 symbolatom_code \$0 \$1 \$2 \$3 203 16 \$4 \$5;
#X obj 13 11 hsl 2 16 0 127 0 0 \$0.clickarea \$0.clickarea.r empty
-2 12 0 10 -258113 -258113 -1 0 1;
#X obj 10 10 cnv 4 203 16 empty \$0.background empty 8 16 0 20 -262144
-262144 0;
#X symbolatom 10 10 25 0 0 0 - #3 #2, f 25;
#X obj 10 10 cnv 4 4 16 empty \$0.symbolatom.label empty 0 8 0 13 -1
-262144 0;
#X coords 0 -1 1 1 203 18 2 10 10;
#N canvas 780 297 465 192 24;
#X obj 7 72 symbolatom_code \$0 \$1 \$2 \$3 311 32 \$4 \$5;
#X obj 13 10 hsl 2 32 0 127 0 0 \$0.clickarea \$0.clickarea.r empty
-2 12 0 10 -258113 -258113 -1 0 1;
#X obj 10 10 cnv 4 311 32 empty \$0.background empty 8 16 0 20 -262144
-262144 0;
#X symbolatom 14 10 21 0 0 0 - #3 #2, f 21;
#X obj 10 10 cnv 3 311 3 empty empty empty 20 12 0 14 -262144 -66577
0;
#X obj 310 14 cnv 5 11 26 empty empty empty 20 12 0 14 -262144 -66577
0;
#X obj 10 39 cnv 3 311 3 empty empty empty 20 12 0 14 -262144 -66577
0;
#X obj 10 10 cnv 4 4 32 empty \$0.symbolatom.label empty 8 16 0 20
-1 -262144 0;
#X coords 0 -1 1 1 311 32 2 10 10;
#N canvas 1029 580 1116 184 12;
#X obj 12 80 symbolatom_code_2 \$0 \$1 \$2 \$3 600 22 \$4 \$5;
#X obj 13 10 hsl 595 22 0 127 0 0 \$0.clickarea \$0.clickarea.r empty
-2 8 0 10 -258113 -258113 -1 0 1;
#X obj 10 10 cnv 10 600 22 empty empty empty 20 12 0 14 -233017 -66577
0;
#X symbolatom 14 12 80 0 0 0 - #3 #2, f 80;
#X obj 10 10 cnv 2 4 22 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 574 10 cnv 10 36 22 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 10 30 cnv 2 600 2 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 10 10 cnv 2 600 2 empty empty empty 20 12 0 14 -233017 -66577
0;
#X coords 0 -1 1 1 600 22 2 10 10;
#N canvas 506 203 692 468 10;
#X obj 26 429 s \$1.symbolatom.label;
#X msg 49 401 vis_size \$1 \$2;
#X msg 26 282 vis_size 4 \$1;
#X obj 26 239 sel 0 1;
#X obj 26 146 r \$1.clickarea;
#X obj 26 166 sel 0;
#X obj 83 175 t a;
#X obj 179 427 s \$1.clickarea.r;
#X msg 179 391 size 0 \$1;
#X obj 249 336 unpack f f;
#X obj 249 356 - 5;
#X obj 249 376 pack f f;
#X msg 249 397 size \$1 \$2;
#X msg 26 207 0;
#X msg 144 210 1;
#X obj 225 172 t b a;
#X msg 252 194 label \$1;
#X obj 252 214 s \$1.symbolatom.label;
#X obj 26 186 t b b;
#X msg 59 209 symbol empty;
#X msg 207 267 set \$1;
#X msg 207 245 symbol ...;
#X text 17 10 dollar1: parent dollar zero;
#X text 17 24 dollar2: top dollar zero;
#X text 17 39 dollar3: send name;
#X text 17 54 dollar4: receive name;
#X text 17 69 dollar5: gop width;
#X text 17 84 dollar6: gop height;
#X text 17 99 dollar7: click x;
#X text 17 114 dollar7: click y;
#X obj 225 152 r \$3;
#X obj 49 302 list append \$5 \$6;
#X obj 26 261 f \$6;
#X obj 207 288 s \$4;
#X obj 375 384 s \$2.main.cnv;
#X msg 375 354 mouse \$1 \$2 1 0;
#X obj 375 323 list append \$7 \$8;
#X obj 372 294 delay 10;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 32 0;
#X connect 3 1 31 0;
#X connect 4 0 5 0;
#X connect 5 0 18 0;
#X connect 5 1 6 0;
#X connect 6 0 5 1;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 9 1 11 1;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 7 0;
#X connect 13 0 3 0;
#X connect 14 0 3 0;
#X connect 15 0 14 0;
#X connect 15 1 16 0;
#X connect 16 0 17 0;
#X connect 18 0 13 0;
#X connect 18 1 19 0;
#X connect 18 1 21 0;
#X connect 18 1 37 0;
#X connect 19 0 16 0;
#X connect 20 0 33 0;
#X connect 21 0 20 0;
#X connect 30 0 15 0;
#X connect 31 0 1 0;
#X connect 31 0 9 0;
#X connect 32 0 2 0;
#X connect 32 0 8 0;
#X connect 35 0 34 0;
#X connect 36 0 35 0;
#X connect 37 0 36 0;
#N canvas 506 203 692 468 10;
#X obj 26 429 s \$1.symbolatom.label;
#X msg 49 401 vis_size \$1 \$2;
#X msg 26 282 vis_size 4 \$1;
#X obj 26 239 sel 0 1;
#X obj 26 146 r \$1.clickarea;
#X obj 26 166 sel 0;
#X obj 83 175 t a;
#X obj 179 427 s \$1.clickarea.r;
#X msg 179 391 size 0 \$1;
#X obj 249 336 unpack f f;
#X obj 249 356 - 5;
#X obj 249 376 pack f f;
#X msg 249 397 size \$1 \$2;
#X msg 26 207 0;
#X msg 144 210 1;
#X obj 225 172 t b a;
#X msg 252 194 label \$1;
#X obj 252 214 s \$1.symbolatom.label;
#X obj 26 186 t b b;
#X msg 59 209 symbol empty;
#X msg 207 267 set \$1;
#X msg 207 245 symbol ...;
#X text 17 10 dollar1: parent dollar zero;
#X text 17 24 dollar2: top dollar zero;
#X text 17 39 dollar3: send name;
#X text 17 54 dollar4: receive name;
#X text 17 69 dollar5: gop width;
#X text 17 84 dollar6: gop height;
#X text 17 99 dollar7: click x;
#X text 17 114 dollar7: click y;
#X obj 225 152 r \$3;
#X obj 49 302 list append \$5 \$6;
#X obj 26 261 f \$6;
#X obj 207 288 s \$4;
#X obj 375 384 s pd-chat;
#X msg 375 354 mouse \$1 \$2 1 0;
#X obj 375 323 list append \$7 \$8;
#X obj 372 294 delay 10;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 32 0;
#X connect 3 1 31 0;
#X connect 4 0 5 0;
#X connect 5 0 18 0;
#X connect 5 1 6 0;
#X connect 6 0 5 1;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 9 1 11 1;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 7 0;
#X connect 13 0 3 0;
#X connect 14 0 3 0;
#X connect 15 0 14 0;
#X connect 15 1 16 0;
#X connect 16 0 17 0;
#X connect 18 0 13 0;
#X connect 18 1 19 0;
#X connect 18 1 21 0;
#X connect 18 1 37 0;
#X connect 19 0 16 0;
#X connect 20 0 33 0;
#X connect 21 0 20 0;
#X connect 30 0 15 0;
#X connect 31 0 1 0;
#X connect 31 0 9 0;
#X connect 32 0 2 0;
#X connect 32 0 8 0;
#X connect 35 0 34 0;
#X connect 36 0 35 0;
#X connect 37 0 36 0;
#N canvas 379 44 504 433 10;
#X obj 1 0 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 8 7 netpd-tabdump16 - dump table content as 16bit byte list
;
#X obj 291 160 table \$0.sometable 10;
#X obj 290 106 s \$0.sometable;
#X obj 290 59 loadbang;
#X msg 290 84 0 -0.5 0.5 1 -0.12 -0.3 0 0.2 -1;
#X obj 17 178 netpd-tabdump16 \$0.sometable;
#X obj 17 238 print netpd-tabdump16;
#X text 59 62 index \, count;
#X msg 17 62 0 10;
#X msg 37 85 2 1;
#X msg 50 107 7 1;
#X msg 62 150 set differentable;
#X text 15 270 [netpd-tabdump16] dumps content of a table as a list
of bytes representing 16bit sample values (2 bytes = 1 sample \, big
endian).;
#X text 48 342 arg1: <table>;
#X text 36 357 inlet0: <index> <count>;
#X text 82 372 set <table>;
#X text 30 387 outlet0: list of bytes;
#X obj 379 395 netpd-tabwrite16;
#X text 315 396 see also:;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 9 0 6 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X connect 12 0 6 0;
#N canvas 174 129 431 381 10;
#X obj 71 328 outlet;
#X obj 20 13 inlet;
#X obj 20 38 route set;
#X obj 20 140 list;
#X obj 71 61 t b a;
#N canvas 443 388 344 105 msgbox 0;
#X obj 10 7 inlet;
#X obj 10 59 outlet;
#X msg 10 33;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 71 304 pd msgbox;
#X msg 71 276 bang \, set;
#X obj 264 14 table \$0.in.segment 1024;
#X obj 264 33 table \$0.out.segment 2048;
#N canvas 0 43 341 417 MSG.variant 0;
#X obj 29 115 until;
#X obj 29 139 f;
#X obj 29 163 t a a;
#X obj 78 156 + 1;
#X obj 29 338 pack f f;
#X msg 29 360 add2 \$1 \$2;
#X obj 29 41 t a a;
#X msg 29 68 \$2;
#X msg 56 68 \$1;
#X obj 29 189 tabread \$1;
#X obj 29 264 t a a;
#X obj 29 290 >> 8;
#X obj 64 291 & 255;
#X obj 29 312 mod 256;
#X obj 29 240 * 32768;
#X obj 29 213 clip -1 0.99997;
#X obj 29 14 inlet;
#X obj 29 386 outlet;
#X obj 195 35 inlet;
#X msg 195 152 set \$1;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 9 0;
#X connect 2 1 3 0;
#X connect 3 0 1 1;
#X connect 4 0 5 0;
#X connect 5 0 17 0;
#X connect 6 0 7 0;
#X connect 6 1 8 0;
#X connect 7 0 0 0;
#X connect 8 0 1 1;
#X connect 9 0 15 0;
#X connect 10 0 11 0;
#X connect 10 1 12 0;
#X connect 11 0 13 0;
#X connect 12 0 4 1;
#X connect 13 0 4 0;
#X connect 14 0 10 0;
#X connect 15 0 14 0;
#X connect 16 0 6 0;
#X connect 18 0 19 0;
#X connect 19 0 9 0;
#X restore 98 200 pd MSG.variant;
#X obj 98 253 t a;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 3 0 9 1;
#X connect 4 0 6 0;
#X connect 4 1 9 0;
#X connect 5 0 0 0;
#X connect 6 0 5 0;
#X connect 9 0 10 0;
#X connect 10 0 5 0;
#N canvas 379 44 504 420 10;
#X obj 1 0 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 291 160 table \$0.sometable 10;
#X msg 62 150 set differentable;
#X text 27 319 arg1: <table>;
#X text 61 349 set <table>;
#X text 323 388 see also:;
#X text 8 7 netpd-tabwrite16 - write 16bit data to table;
#X msg 17 62 0 63 255 191 255 255 255 112 163;
#X text 16 229 [netpd-tabwrite16] writes 16bit data represented as
list of bytes to a table.;
#X text 15 262 NOTE: the first element of the list is the index and
does not represent a byte value.;
#X text 15 334 inlet0: 16bit data (index \, msb \, lsb \, msb \, lsb
...);
#X obj 17 178 tabwrite16 \$0.sometable;
#X obj 387 387 tabdump16;
#X connect 2 0 11 0;
#X connect 7 0 11 0;
#N canvas 312 43 433 472 10;
#X obj 13 13 inlet;
#X obj 98 256 list length;
#X obj 13 419 s \$1;
#X obj 13 35 route set;
#X obj 64 57 list split 1;
#X obj 149 100 array size \$0.in.buffer;
#X obj 159 190 array size \$0.in.buffer;
#X obj 98 78 t a a a b;
#X obj 132 171 moses;
#X obj 149 120 + 1;
#X obj 115 213 list prepend 0;
#X obj 115 233 s \$0.in.buffer;
#X obj 64 281 pack f f;
#X obj 259 34 table \$0.buffer 2048;
#X obj 259 57 table \$0.out.buffer 1024;
#X obj 259 13 table \$0.in.buffer 2048;
#X obj 132 145 list length;
#N canvas 0 43 302 540 MSG.variant 0;
#X obj 15 11 inlet;
#X obj 15 494 outlet;
#X obj 32 126 until;
#X obj 32 151 f;
#X obj 100 166 + 2;
#X obj 32 173 t a a a;
#X obj 51 195 + 1;
#N canvas 307 165 395 306 msg 0;
#X obj 23 17 inlet;
#X msg 23 39;
#X obj 23 249 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 15 472 pd msg;
#X msg 32 424 add2 \$1;
#X obj 15 97 t b a b b;
#X msg 15 446 bang \, set;
#X obj 15 75 >> 1;
#X obj 32 333 +;
#X obj 32 352 / 32768;
#X obj 32 312 << 8;
#X msg 72 126 0;
#X obj 15 32 t a a;
#X msg 15 52 \$2;
#X msg 213 207 \$1;
#X obj 51 218 tabread \$0.in.buffer;
#X obj 32 239 tabread \$0.in.buffer;
#X obj 32 372 - 1;
#X obj 32 263 - 128;
#X obj 32 285 mod 256;
#X connect 0 0 16 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 4 0 3 1;
#X connect 5 0 20 0;
#X connect 5 1 6 0;
#X connect 5 2 4 0;
#X connect 6 0 19 0;
#X connect 7 0 1 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 9 1 2 0;
#X connect 9 2 15 0;
#X connect 10 0 7 0;
#X connect 11 0 9 0;
#X connect 12 0 13 0;
#X connect 13 0 21 0;
#X connect 14 0 12 0;
#X connect 15 0 3 1;
#X connect 16 0 17 0;
#X connect 16 1 18 0;
#X connect 17 0 11 0;
#X connect 18 0 8 0;
#X connect 19 0 12 1;
#X connect 20 0 22 0;
#X connect 21 0 8 0;
#X connect 22 0 23 0;
#X connect 23 0 14 0;
#X restore 65 351 pd MSG.variant;
#X connect 0 0 3 0;
#X connect 1 0 12 1;
#X connect 3 0 2 0;
#X connect 3 1 4 0;
#X connect 4 0 12 0;
#X connect 4 1 7 0;
#X connect 5 0 9 0;
#X connect 7 0 1 0;
#X connect 7 1 10 0;
#X connect 7 2 16 0;
#X connect 7 3 5 0;
#X connect 8 1 6 0;
#X connect 9 0 8 1;
#X connect 10 0 11 0;
#X connect 12 0 17 0;
#X connect 16 0 8 0;
#X connect 17 0 2 0;
#N canvas 739 603 726 288 10;
#X obj 23 20 hsl 123 32 0 127 0 0 \$0.button.click empty empty -2 -8
0 10 -262144 -1 -1 0 1;
#X obj 20 20 cnv 32 128 32 empty \$0.button.fg \$1 8 16 0 20 -233017
-1 0;
#X obj 278 56 r \$0.button.click;
#X obj 278 77 sel 0;
#X obj 320 79 t a;
#X msg 296 184 color \$1 \$1 -1;
#X obj 296 219 s \$0.button.fg;
#X msg 353 140 1;
#X obj 278 102 t b b b;
#X obj 297 130 del 200;
#X msg 297 151 10;
#X obj 278 250 s \$2;
#N canvas 1589 505 310 209 rgb2iem 0;
#X obj 14 2 inlet;
#X obj 14 23 unpack f f f;
#X obj 14 168 outlet;
#X obj 48 49 << 8;
#X obj 14 49 << 16;
#X obj 14 106 +;
#X obj 48 78 +;
#X text 93 79 converts rgb 8bit to iem colors;
#X obj 14 126 * -1;