• Tombot7

    @Jona I read up on it and see what you mean about saving arrays inside patches. I appreciate it but it's not a great fit for what I'm trying to do. Thanks though

    posted in technical issues read more
  • Tombot7

    @seb-harmonik.ar I'll take a closer look at organelle does it - but I if I recall it doesn't actually use overdubbing, you just create new loops out of old ones, right? That still might give me a clue on how to buffer file loading, since it still has to solve the problem of immediately playing the files when you have just finished looping.

    @Jona what object would take the -k flag. I'm not familiar? Is this soundfiler? Tabwrite? I'm having trouble locating it. I do like the idea of auto-saving my arrays though. And I don't mind only recalling the last saved state... This sounds very promising.

    posted in technical issues read more
  • Tombot7

    I didn't know about file. It looks perfect. I didn't even know about PD 52. I'm using purr-data nw.js version 0.24.5 on linux - mostly because it includes limiter~ and z~. It does not seem to have file. Maybe there's an update out there? Or, I could probably just pull in limiter and z to vanilla.

    posted in technical issues read more
  • Tombot7

    Does anybody know of a sample looper that uses soundfiler or readsf~ and writesf~ instead of arrays?

    I am currently using arrays for my 16 track looper. For saving them to file, I was going to simply copy the array to disk, but it would be ideal if I could loop the sound files instead of the arrays. This would also free up a lot of memory. I'm currently running this on a 4gb rasberry pi, but it would be great if I could get this down to a 1gb pi so other people might be able to use it easier.

    From what I can tell, the main problem with .aiffs is the save and load time. My program already uses an input buffer and an output buffer around the looping array, but not for purposes of giving the array time to save and load. It is also constantly reading and writing from the same array. I don't think I can do this with files, right?

    Anyway, if anybody knows of an example program out there that successfully uses buffers to account for saving and loading times -- AND / OR -- that allows unlimited overdubs to the loops -- it would save me a ton of time trying to figure this out from scratch.

    Thank you

    posted in technical issues read more
  • Tombot7

    @Jona Thanks! I didn't realize that. I can probably cook up a solution using that.

    posted in technical issues read more
  • Tombot7

    I know that soundfiler essentially reads and writes .aiff files by copying into and out of arrays.

    Is there a way to delete files from within a running PD patch without using a dialogue box?

    Here is the problem I'm trying to solve:

    I have a 16 track looper which uses a combination of delay lines as buffers and self-overwriting arrays for the loops. I have 100 save slots where you can save tracks (copy the arrays to .aifff files), then load those .aiffs into the track arrays.

    All of this uses hardware and does not use any screens, keyboards or mice. The problem is that those 100 slots fill up quickly, so I'd like to be able to delete the contents of slots -- again, this needs to be "automatic" without using any dialogue boxes or anything like that. It's easy to keep track of the names, they would just be 0-100.aiff, essentially. So I would know I want to delete 4.aiff for example. Is there a way to do that?

    Thank you!

    posted in technical issues read more
  • Tombot7

    @bocanegra I spent a little time with this and got my head around it. I then put it in my looper to replace the vlines and it works GREAT. It took the attack from a dull 7 msecs to a nice crisp 1 msec. The attack on this sounds much more like the DL4, which was my goal (I love how that looper sounds). Thank you so much for both the program and for explaining it so clearly!

    posted in technical issues read more
  • Tombot7

    @bocanegra Thanks very much. I'm having a hard time wrapping my head around it at present, but I think if I mess with it I can get it.

    posted in technical issues read more
  • Tombot7

    I have a sample looper that is working just fine. It uses vline as a volume ramp when it starts and ends recording a sample. It uses a 7 msec vline. It does not click - however, I would love for it to have a super fast (but still clickless) attack when the sample is played back. However, when I drop below 7 msecs it sometimes clicks.

    Would it help to use tabread4~ and an exponential curve instead of vline? (Kind of how Hanning windows work)?

    These are LONG samples - up to 100 seconds, so I would need a way to only use the window for the first few msecs of recording.

    Thanks!

    posted in technical issues read more
  • Tombot7

    I’m in the process of eliminating Comport entirely and using MIDI USB devices instead - same hardware but reprogramming the arduinos. I’m hoping it will make things faster for pure data but also hoping it will mean I can use those same hardware devices with other computers as MIDI devices that can be free of their parent so to speak.

    Any thoughts on whether a rasberry pi running pure data will be faster handling incoming USB midi signals as opposed to two instances of comport?

    posted in technical issues read more
  • Tombot7

    That's fascinating that Mac and Linux would handle that differently. I've been using comport x 2succesfsully to run two different Arduinos through PD on Linux on my last project and it's worked great. I did not however happen to use the number 13 though. I was doing it the exact same way for this project but had been doing the testing and uploading on a mac... then when I went to implement it with the pi ran into this. Wow! Thank you!

    posted in technical issues read more
  • Tombot7

    I have a patch with Comport communicating with an Arduino. The Arduino is supposed to send a 13 when a particular button is pushed down and a 33 when the button comes back up. This works perfectly when I run PD on a MacBook. When I run it on a Rasberry pi though, it sends 10 instead of 13 (the 33 works fine). When I changed the Arduino code to have it send a 40 instead of a 13, then it all works fine. When I changed it back to a 13 though, the PI starts reading 10s again. I CANNOT figure out why this would be. I'm able to use the workaround of just picking a different number than 13, but at this point I'm just curious. Why would this be?

    posted in technical issues read more
  • Tombot7

    Reddit post

    GitHub

    posted in patch~ read more
  • Tombot7

    So I tried booting from an old image of the patchbox OS and it worked. I then swapped back to my current OS disk and booted ... and it worked!! However when I unplugged it and plugged it back in again it was up to its old trick for losing power after one second.

    I’ll try the dmsg thing

    posted in I/O hardware diyread more
  • Tombot7

    Hi!

    I have an old Korg NanoKontrol (not NanoKontrol 2 or studio - but the old old version) and it was running great with my pure data looper.  Then, all the sudden it stopped!  The light comes on for a second then goes off. It's not recognized by the system.   I can plug it into a PC and run the korg setup software and it all seems fine, but suddenly on my rasberry pi it won't stay powered. I tried a powered USB hub and different cablers so I know it's not that.   My full system is a rasberry pi 4 B with a Pisound sound card. I'm running purr-data on the patchbox linux distro...

    Thanks everybody

    posted in I/O hardware diyread more
  • Tombot7

    I’m on a phone, so sorry for the typos.

    posted in technical issues read more
  • Tombot7

    Hi zigmhount!

    This is a copy paste of a message I (hopefully) sent via chat as well:

    I figured I’d tell you a bit more about my patch so we can see if there’s overlap. Switch is definitely an overlap. I’m not using a metronome at all on mine. The inspiration was two loopers I love: the line 6 DL4 and the EHX 45000. It’s going to be 4 foot switches. Record, play, previous and next. Record and play function the way they do in the DL4. Record to start a new loop, record again to set length and start overdubbing or play to simply set length and start looping. From there record works like overdub on/ off toggle and play stop or restarts the loop. Previous and next are where it gets interesting.

    There’s a 7 segment display (meaning a 1 digit number read out) that tells you what loop you’re “focused” on. It starts on 0. You can’t change focus until you have a loop going. Once you do, prev or next change focus. If you change focus while recording, it closes the loop you’re on and starts playing it, then immediately starts recording the next loop. The next loop though can be as long as you want. However, silence gets added to the end of the loop when you are done so that it matches up with a multiple of “loop 0”

    In other words, loop 0, acts as a measure length and all other loops are set to a multiple of that measure length.

    But...they can start anywhere you want. To the person playing the looper, it will feel like individual loops are all overdubs of the first loop, just at any length you want. I don’t know if I’m explaining this so well, but the point is, you don’t have to worry about timing or a metronome with this. You don’t have to wait for the beginning of measures to start or end loops. Once you have the timing of the first loop down there’s no waiting... you start recording and playing whenever you want as long as you want t and if it’s in time when you play it it will be i the recording.

    So far I have recording and overdubbing down on loop 0 WITHOUT CLICKS. this took a lot of work and messing. Sounds like you are struggling with that now. Hardware is important yes.

    I’m running it on a rasberry pi 4b 4 gig memory but with a pi sound audio interface. It’s more expensive than the pi but the latency and sound quality are GREAT. I also wanted to make the hardware all independent eventually and have the whole thing fit i it’s own box. The foot pedals run on an arduino that talks through comport to the pi and pure data.

    In pure data I’m timing the loops and recording them via tabwrite. I’m then playing them with tabplay with a 0 $1 message box where 0 is start and $1 is the length, rounded to block size, of the recording. I record and play the same arrays for each loop at the same time while overdubbing, but delay the recording so it’s a few blocks back from the tabplay. The delay on the recording seemed to help elimate clocks as well. So did using tabplay instead of tabread 4. I think the phasor is CPU expensive or something. I don’t know. When I start / stop recording I use a line ramp on the volume going into the recording of 5 msecs. This is also necessary to eliminate clicks. Also, I had to stop resizing or clearing arrays as both cause clicks. Now I just overwrite what I need and don’t read from what I didn’t overwrite (If that makes sense).

    If you are getting clicking I would try upping block size, buffer size and just delaying the actual recording (delay the audio in the same amount) giving the computer time to think avoids drop outs. Also you don’t want monitoring if you can avoid it. I don’t know if you are using a mic or what.

    Hopefully some of this made sense.

    posted in technical issues read more
  • Tombot7

    I don’t know the answer to your question but I’m also building a multiloop looper (I’m thinking either 10 tracks total or 10 loops of 4 tracks each.)

    We’re probably solving a lot of the same problems. Right now I’m working on latency and overdub timing. Next up will be learning how to use switch for CPU savings...

    Would be very interested in any updates from you.

    Best, Tom

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!