• ryan7585

    Seems to work in every other way... But maybe this is the issue

    I would have figured, though, that they would have written the code in a way that would account for differering amounts of pins. Arduinos dont all have the same number of pins right?

    posted in technical issues read more
  • ryan7585

    after further testing.... pins 8-13 also work fine as digital outs. pins 28-37 are the problem pins. they work as digital inputs without issue, but do not work as digital outs. I've also tried it with a second teensy to rule out a bad board... same problem

    UGH

    posted in technical issues read more
  • ryan7585

    The title pretty much says it all. I have set the pinmode for pins 32-37 to digital out, yet they refuse to output any voltage when I send commands. It works fine for pins 0-7 so I'm kind of baffled. is there a maximum number of output pins with pduino or firmata? Or does anyone know what else could cause this?

    posted in technical issues read more
  • ryan7585

    I was able to solve my issue by using the Firmata-Analog example script rather than the Firmata-Standard. Not sure if it will work in your case but it did for me!

    posted in technical issues read more
  • ryan7585

    I am running this on a Raspberry Pi 4 model B with 2G RAM (latest Rasbian OS installed), with a Teensy ++ 2. I installed arduino IDE and TeensyDuino, and loaded the StandardFirmata firmware to the teensy successfully.However when I open Pd-L2Ork, and load the arduino-test.pd file from the Pduino examples, nothing is working, and I get the following error on repeat:

    error: gatom_list: need float or symbol

    If I delete the subpatch that is above the analog input numberboxes, those errors stop. Then, I am able to use the patch to select a comport. the comport opens successfully:

    [comport] opened serial line device 1 (/dev/ttyAMA0)

    But then, if I try to do anything like enable an analog input or request the firmware version, nothing works, and I get the following error:

    error: [comport]: Write failed for 0 bytes, error is 2

    And then... after trying one thing or another a few times, pure data crashes entirely. I have searched google for a solution but am coming up short. Does anyone have any idea what might be happening?

    posted in technical issues read more
  • ryan7585

    And thanks again for taking a look guys... I can work on it from here but if anyone has any ideas I'm all ears!

    posted in technical issues read more
  • ryan7585

    test.pd

    here is a super-simplified version, with a waveform display and play/write head indicator sliders.. for diagnostic purposes

    posted in technical issues read more
  • ryan7585

    my god, you're right

    <facepalm>

    all day i've spent on this

    well sorry for wasting your time on a nonexistent issue!

    well with that figured out I'll ask a more general question..... does anyone have any suggestions for a way to make this so the echoes aren't interrupted when playback speed is less than 1?

    posted in technical issues read more
  • ryan7585

    And.... just as a side question, does anyone know why the buffer would clear just because of a read or write error? I could understand a click... but clearing the whole buffer?

    Is there a possibility that this isn't even the reason this is happening?

    posted in technical issues read more
  • ryan7585

    jameslo--- unfortunately that still has the same issue.... the echoes cut out when the heads pass
    Can I suggest a specific scenario to test---

    I am running it with the play speed at 0.7, feedback around 50%, with a live microphone on input 1. I snap my fingers near the microphone, and it begins echoing, with each echo at a slower speed and lower pitch... then every time the heads pass and the edge~ sends a bang, the echoes cease

    I should also mention, I am running this on a Raspberry 4 model B with 2G RAM, using pd-L2Ork.... Trying to create a physical device with it eventually. that shouldnt effect something like this though, right?

    posted in technical issues read more
  • ryan7585

    Lol thanks ingox

    oid---- I tried that method but unfortunately the buffer still clears when the heads pass each other :(

    tried negative 1 for no-read, no luck. tried flipping it so it sends -1 for no-write instead.... still happens. does anyone know if maybe there is another dummy index I could use, or an alternative way to prevent this issue?

    I keep trying different solutions that seem foolproof but the problem persists. I'm at a loss!

    posted in technical issues read more
  • ryan7585

    No problem... here it is simplified, with some comments. Thanks!

    #N canvas 678 92 1242 928 12;
    #X msg 273 196 resize $1;
    #X obj 527 71 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 1 256 0 0 1 0;
    #X obj 273 221 array define sampler1;
    #X obj 923 853 dac~;
    #X obj 152 352 phasor~ 1;
    #X obj 919 286 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 0.7 256 0 0 1 0;
    #X text 526 84 buffer size (s);
    #X obj 978 636 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc
    #000000 #000000 0 1 0 1;
    #X obj 922 814 *~;
    #X obj 281 586 vsl 8 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc
    #000000 #000000 0 1 0 1;
    #X obj 263 753 *~;
    #X text 997 719 volume;
    #X text 300 644 feedback;
    #X obj 107 803 +~, f 4;
    #X obj 410 39 loadbang;
    #X obj 472 38 bng 26 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
    #000000 1;
    #X obj 106 22 adc~;
    #X obj 920 327 phasor~ 1;
    #X obj 517 451 edge~;
    #X obj 517 482 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
    #000000 #000000 1;
    #X obj 152 374 *~ 44099;
    #X obj 545 267 - 1;
    #X obj 920 369 *~ 44099;
    #X obj 107 839 poke~ sampler1;
    #X text 500 14 this part up here just calculates the buffer size as 1
    second , based on the sample rate;
    #X text 575 226 sutracting 1 from buffer size for index range because
    index range starts at 0 , not 1;
    #X text 992 341 phasor for playhead pointer;
    #X text 226 356 phasor for write head pointer;
    #X text 566 445 this is here to indicate when the read and write index are
    the same (diagnostic);
    #X obj 970 557 s~ feedback;
    #X obj 188 725 r~ feedback;
    #X obj 20 63 s~ dry;
    #X obj 516 420 expr~ (abs($v1-$v2)< 1);
    #X obj 927 493 tabread~ sampler1;
    #X text 976 282 playback speed (try 0.7);
    #X obj 832 777 r~ dry;
    #N canvas 0 0 450 300 buff 0;
    #X obj 40 107 samplerate~;
    #X obj 40 130 * 1;
    #X msg 127 105 1;
    #X obj 40 80 t b b;
    #X obj 40 152 t f f;
    #X obj 13 26 inlet;
    #X obj 63 26 inlet;
    #X obj 13 225 outlet;
    #X obj 69 225 outlet;
    #X obj 125 225 outlet;
    #X connect 0 0 1 0;
    #X connect 1 0 4 0;
    #X connect 2 0 9 0;
    #X connect 3 0 0 0;
    #X connect 3 1 2 0;
    #X connect 4 0 7 0;
    #X connect 4 1 8 0;
    #X connect 5 0 3 0;
    #X connect 6 0 1 1;
    #X restore 472 68 pd buff;
    #X text 249 244 defines and sizes the buffer;
    #N canvas 0 0 450 300 line 0;
    #X obj 40 100 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 0 256 0 0 1 0;
    #X obj 40 80 / 127;
    #X obj 40 148 line~;
    #X msg 40 118 $1 100;
    #X obj 13 26 inlet;
    #X obj 13 221 outlet~;
    #X connect 0 0 3 0;
    #X connect 1 0 0 0;
    #X connect 2 0 5 0;
    #X connect 3 0 2 0;
    #X connect 4 0 1 0;
    #X restore 281 725 pd line;
    #N canvas 0 0 450 300 line 0;
    #X obj 40 103 line~;
    #X msg 40 80 $1 100;
    #X obj 13 26 inlet;
    #X obj 13 176 outlet~;
    #X connect 0 0 3 0;
    #X connect 1 0 0 0;
    #X connect 2 0 1 0;
    #X restore 920 304 pd line;
    #N canvas 0 0 450 300 line 0;
    #X obj 40 100 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 0 256 0 0 1 0;
    #X obj 40 80 / 127;
    #X obj 40 148 line~;
    #X msg 43 118 $1 100;
    #X obj 13 26 inlet;
    #X obj 13 221 outlet~;
    #X connect 0 0 3 0;
    #X connect 1 0 0 0;
    #X connect 2 0 5 0;
    #X connect 3 0 2 0;
    #X connect 4 0 1 0;
    #X restore 978 774 pd line;
    #X connect 0 0 2 0;
    #X connect 1 0 36 1;
    #X connect 4 0 20 0;
    #X connect 5 0 39 0;
    #X connect 7 0 40 0;
    #X connect 8 0 3 0;
    #X connect 8 0 3 1;
    #X connect 9 0 38 0;
    #X connect 10 0 13 1;
    #X connect 13 0 23 0;
    #X connect 14 0 36 0;
    #X connect 15 0 36 0;
    #X connect 16 0 13 0;
    #X connect 16 0 31 0;
    #X connect 17 0 22 0;
    #X connect 18 0 19 0;
    #X connect 20 0 23 1;
    #X connect 20 0 32 0;
    #X connect 21 0 20 1;
    #X connect 21 0 22 1;
    #X connect 22 0 32 1;
    #X connect 22 0 33 0;
    #X connect 30 0 10 0;
    #X connect 32 0 18 0;
    #X connect 33 0 8 0;
    #X connect 33 0 29 0;
    #X connect 35 0 8 0;
    #X connect 36 0 0 0;
    #X connect 36 1 21 0;
    #X connect 36 2 1 0;
    #X connect 38 0 10 1;
    #X connect 39 0 17 0;
    #X connect 40 0 8 1;

    posted in technical issues read more
  • ryan7585

    Update--- still struggling with this. I treid a method the read and write head were swapping between two halves of the buffer so they wouldnt cross, but it ended up with some weird behavior on playback speeds other than 1x... So I scrapped that idea and am now back to square 1

    Any help you guys can provide would be greatly appreciated!

    posted in technical issues read more
  • ryan7585

    That's how I originally had patched it, but the goal is to have independent read and write heads. So I can record at 1x speed constantly, then read at whatever speed I want. So fed-back echoes get pitched up or down on each repeat and there is freedom for reverse delay, etc.

    So essentially, it is unavoidable that the read head and write head will pass each other occasionally. I just need it to not glitch out when that happens.

    The "equal-block" subpatch ensures that the tabread object is sent a "-1" rather than the current index, any time the read and write head are too close to each other.... you can set the size of that window inside the subpatch. maybe that "-1" is not something I should send?

    It seems like no matter what I do, the array clears when the heads pass each other :/

    posted in technical issues read more
  • ryan7585

    Trying to create Variable speed delay, but buffer clears when read index is same as write index. I have done some additional patching to try and avoid this, in the "pd equal-block" subpatch, however it still seems to be happening. All the echoes stop when the indexes pass each other.Can anyone give me any guidance? Patch is pasted below.

    #N canvas 678 88 1242 928 12;
    #X obj 269 89 samplerate~;
    #X msg 170 138 resize $1;
    #X obj 401 60 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 1 256 0 0 1 0;
    #X obj 277 111 * 1;
    #X msg 401 26 1;
    #X obj 95 165 array define sampler1;
    #X msg 517 139 set sampler1;
    #X obj 901 732 dac~;
    #X obj 519 387 *~ 44100;
    #X obj 518 353 phasor~ 1;
    #X obj 915 289 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 1 256 0 0 1 0;
    #X text 462 55 buffer size (s);
    #X text 937 141 playback speed;
    #X obj 1005 456 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc
    #000000 #000000 0 1 0 1;
    #X obj 1005 626 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0
    10 #fcfcfc #000000 #000000 0 256 0 0 1 0;
    #X obj 1005 606 / 127;
    #X obj 1005 674 line~;
    #X obj 900 693 *~;
    #X obj 921 66 vsl 15 128 0 512 0 0 empty empty empty 0 -9 0 10 #fcfcfc
    #000000 #000000 9525 1 0 1;
    #X obj 918 242 * 4;
    #X obj 919 263 - 2;
    #X obj 920 223 / 512;
    #X msg 920 27 384;
    #X obj 107 217 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc
    #000000 #000000 0 1 0 1;
    #X obj 114 355 / 127;
    #X obj 612 322 line~;
    #X msg 923 319 $1 100;
    #X obj 115 378 * 4410;
    #X obj 686 464 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc
    #000000 #000000 0 1 0 1;
    #X obj 686 620 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 0 256 0 0 1 0;
    #X obj 686 600 / 127;
    #X obj 686 668 line~;
    #X obj 670 695 *~;
    #X text 1024 539 volume;
    #X text 131 282 osc freq;
    #X text 705 522 feedback;
    #X msg 867 263 set $1;
    #X obj 50 400 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 0 256 0 0 1 0;
    #X msg 23 373 set $1;
    #X obj 48 438 line~;
    #X msg 48 418 $1 100;
    #X msg 686 638 $1 100;
    #X msg 1008 644 $1 100;
    #X text 939 69 2x;
    #X text 939 196 -2x;
    #X obj 517 160 s smplr;
    #X obj 420 809 r smplr;
    #X obj 839 457 r smplr;
    #X obj 475 694 +~, f 4;
    #X obj 49 470 osc~ 441;
    #X obj 498 830 poke~;
    #X obj 316 9 loadbang;
    #X obj 315 30 t b b b;
    #X obj 289 12 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
    #000000 1;
    #X obj 58 720 adc~;
    #X obj 111 593 vsl 8 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc
    #000000 #000000 0 1 0 1;
    #X obj 111 763 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 0 256 0 0 1 0;
    #X obj 111 743 / 127;
    #X obj 111 811 line~;
    #X obj 94 835 *~;
    #X msg 114 781 $1 100;
    #X text 130 676 dry sgnl;
    #X obj 180 306 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 #fcfcfc
    #000000 #000000 0 1 0 1;
    #X obj 180 476 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
    #fcfcfc #000000 #000000 0 256 0 0 1 0;
    #X obj 180 456 / 127;
    #X obj 180 524 line~;
    #X obj 75 543 *~;
    #X text 199 389 volume;
    #X msg 183 494 $1 100;
    #X obj 621 387 *~ 44100;
    #X obj 620 353 phasor~ 1;
    #X obj 292 145 t b f f;
    #X obj 901 484 tabread4~;
    #X obj 371 487 edge~;
    #X obj 371 518 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
    #000000 #000000 1;
    #X obj 484 110 t b b;
    #X obj 845 297 t f b;
    #X obj 371 455 expr~ \$v1 == \$v2;
    #N canvas 160 562 509 371 equal-block 0;
    #X obj 231 34 inlet~;
    #X obj 365 32 inlet~;
    #X obj 240 306 outlet~;
    #X obj 183 250 *~;
    #X obj 316 250 *~ -1;
    #X obj 135 175 edge~;
    #X obj 135 201 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
    #000000 #000000 1;
    #X obj 327 165 edge~;
    #X obj 327 191 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
    #000000 #000000 1;
    #X obj 178 88 -~;
    #X obj 178 112 abs~;
    #X obj 178 139 expr~ \$v1 >= \$v2;
    #X obj 311 139 expr~ \$v1 < \$v2;
    #X floatatom 383 72 5 0 0 0 - - - 0 0 1, f 5;
    #X obj 383 99 sig~ 4;
    #X obj 443 21 inlet;
    #X msg 443 54 1;
    #X connect 0 0 9 0;
    #X connect 1 0 9 1;
    #X connect 1 0 3 1;
    #X connect 3 0 2 0;
    #X connect 4 0 2 0;
    #X connect 5 0 6 0;
    #X connect 7 0 8 0;
    #X connect 9 0 10 0;
    #X connect 10 0 11 0;
    #X connect 10 0 12 0;
    #X connect 11 0 5 0;
    #X connect 11 0 3 0;
    #X connect 12 0 4 0;
    #X connect 12 0 7 0;
    #X connect 13 0 14 0;
    #X connect 14 0 11 1;
    #X connect 14 0 12 1;
    #X connect 15 0 16 0;
    #X connect 16 0 13 0;
    #X restore 584 419 pd equal-block;
    #X connect 0 0 3 0;
    #X connect 1 0 5 0;
    #X connect 2 0 3 1;
    #X connect 3 0 71 0;
    #X connect 4 0 2 0;
    #X connect 6 0 45 0;
    #X connect 8 0 78 0;
    #X connect 8 0 50 1;
    #X connect 8 0 77 0;
    #X connect 9 0 8 0;
    #X connect 10 0 26 0;
    #X connect 10 0 76 0;
    #X connect 13 0 15 0;
    #X connect 14 0 42 0;
    #X connect 15 0 14 0;
    #X connect 16 0 17 1;
    #X connect 17 0 7 0;
    #X connect 17 0 7 1;
    #X connect 18 0 21 0;
    #X connect 19 0 20 0;
    #X connect 20 0 36 0;
    #X connect 20 0 26 0;
    #X connect 20 0 76 0;
    #X connect 21 0 19 0;
    #X connect 22 0 18 0;
    #X connect 23 0 24 0;
    #X connect 24 0 27 0;
    #X connect 25 0 70 0;
    #X connect 26 0 25 0;
    #X connect 27 0 38 0;
    #X connect 27 0 40 0;
    #X connect 28 0 30 0;
    #X connect 29 0 41 0;
    #X connect 30 0 29 0;
    #X connect 31 0 32 1;
    #X connect 32 0 48 1;
    #X connect 36 0 10 0;
    #X connect 37 0 40 0;
    #X connect 38 0 37 0;
    #X connect 39 0 49 0;
    #X connect 40 0 39 0;
    #X connect 41 0 31 0;
    #X connect 42 0 16 0;
    #X connect 46 0 50 0;
    #X connect 47 0 72 0;
    #X connect 48 0 50 0;
    #X connect 49 0 66 0;
    #X connect 51 0 52 0;
    #X connect 52 0 75 0;
    #X connect 52 1 0 0;
    #X connect 52 2 4 0;
    #X connect 52 2 78 2;
    #X connect 53 0 52 0;
    #X connect 54 0 48 0;
    #X connect 54 0 59 0;
    #X connect 55 0 57 0;
    #X connect 56 0 60 0;
    #X connect 57 0 56 0;
    #X connect 58 0 59 1;
    #X connect 59 0 17 0;
    #X connect 60 0 58 0;
    #X connect 62 0 64 0;
    #X connect 63 0 68 0;
    #X connect 64 0 63 0;
    #X connect 65 0 66 1;
    #X connect 66 0 59 0;
    #X connect 66 0 48 0;
    #X connect 68 0 65 0;
    #X connect 69 0 78 1;
    #X connect 70 0 69 0;
    #X connect 71 1 1 0;
    #X connect 71 2 8 1;
    #X connect 71 2 69 1;
    #X connect 71 2 70 1;
    #X connect 72 0 17 0;
    #X connect 72 0 32 0;
    #X connect 73 0 74 0;
    #X connect 75 0 22 0;
    #X connect 75 1 6 0;
    #X connect 77 0 73 0;
    #X connect 78 0 72 0;
    #X connect 78 0 77 1;

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!