• nicnut

    Hey @jameslo. I basically copied what you had in your patch and implemented it in a simpler earlier version of my patch. It totally works and eliminated the click. Genius. Thank you for sharing that.

    Here's a version that uses your method to eliminate the click

    simple_looper1fix.pd

    posted in technical issues read more
  • nicnut

    @jameslo ok awesome. thanks I'll keep working on this.

    posted in technical issues read more
  • nicnut

    @jameslo thank you for the info. I am still a noob at a lot of this kind of signal math stuff. I see how you achieved calculating the current playback point in your patch, but I don't understand it. I might just try and copy it and put it into my patch. Thank you for the info.

    posted in technical issues read more
  • nicnut

    Hi @jameslo and @whale-av

    I wanted to let you know I incorporated some of the ideas both of you presented and combined them into one bigger looper.

    I used the overdub concept, from the earlier posts, using [edge~] to line up the overdubs with the beginning/end of the original loop. And I am using the 2 tables concept presented later, but I am separating the tables so I can bounce one table into another.

    I made a video using my midi controller to demonstrate it. I also added delay and pitch shifting.

    I still have a few general questions.

    1. When you record into these tables like this, and don't save the audio ( in the properties of the array) Is this eating up any storage on my computer? or just recording and erasing when I open the patch?

    2. @jameslo I saw the way you did cross fading in your patch, but I really don't understand what you did. Can you explain it a bit? Since I have the length of the arrays is there an easy way to just do a quick fade out and fade in at the end points?

    Thank you both again for all the information and help

    EDIT: here's a simplified version of my patch. It has a lot of controls for my midi controller, but those can be ignored.
    3simple_edit.pd

    posted in technical issues read more
  • nicnut

    Hey @jameslo

    This is pretty amazing patch. I think one of the best things about it is that there is no click when it loops, it's very clean.
    I can't figure out all of the functionality, but even without knowing how to use the patch it's pretty good. I manually altered the speed with the slider and overdubbed a few times. The speed changes seemed to be recorded into the loop, I like the swap buffer method too. I was thinking I would just have two sets of controls, but your method is very clean. I will try and tweak this for my needs. Thanks so much!

    posted in technical issues read more
  • nicnut

    @jameslo

    Yes, I want to be able to punch in and out in the middle of a loop. I think enabling recording with using the [edge~] object to detect the top of the loop was a good idea. Only thing is, if I am playing a super slowed down loop I might have to wait a long time to get to the top of a loop.

    I found out about the loop~ object, which looks similar to the ipoke~ object. ipoke~ is a little annoying for me because it doesn't load everytime I launch pd.

    I think I'm going to try and go back to my initial looping patch, just record at normal speed, use loop~ and record into a 2nd buffer. Maybe bounce back and forth between two buffers and use loop~ to stretch and repitch the loops. I will try and construct a basic version of this and post here.

    posted in technical issues read more
  • nicnut

    Hi @jameslo,

    thank you for your input. I think maybe I should look at ipoke~ again. For some reason, after looking at the ipoke~ help file it seemed like it was good for playback but not recording/ overdubbing, but maybe I need to look at it again as I am having this issue.

    When I try and overdub in the middle of the loop I run into some issues. I think the loop starts to play at different speed within the new loop, which isn't what I wanted. I want it to be one speed, whatever that might be, You can alter that speed and then overdub into it at different speeds. The method @whale-av came up with, of locking the overdubbing to the beginning and end of the loop is actually really cool. If you are consistently playing at one speed it's pretty cool and you can endlessly overdub layers into it. I thought 2 buffers might be necessary too, but now I think I just need to figure out when/how to change the speed of the phasor~ when overdubbing.

    I think it might get more complicated if I do speeds other than 2 or 1/2, but to keep it simple I'm trying to figure out that math first.

    I'll go back into ipoke~ tonight and see how that works out.

    posted in technical issues read more
  • nicnut

    Hey @whale-av and anyone else interested in this issue.

    I'm still trying to wrap my head around this.
    So this looper works if you loop one pass and play it. It works with overdubbing at speed = 1 or -1.. The problem is if you overdub at any speed other than 1 or -1.

    I am going to explain the issue as I see it, although I may be mistaken. It is set up so the buffer length will not change after the first recording, so when overdubbing the buffer size doesn't change. If you doing playback at a speed other than 1 or -1 the speed of the phasor~ reading the array with the loop will change to that new speed. When you are done overdubbing, it would seem that the phasor~ should be at the same speed it was during the overdub, but if this is the case things get out of whack. At least that was my observation in the "simple3.pd" patch a few posts up.

    I added an [expr] object to try and accomodate for what I was hearing. But now what is happening is it seems that the loop is getting shorter if it is less than 1 and it's too long if it's greater than 1.

    I must be missing something obvious here.

    I haven't tried this yet, but maybe I should add another phasor~ that is lined up to start with the first phasor~ playing the array, but when I alter playback speed this 2nd phasor will change as well and i can use that to start and stop the overdub process. What I am hearing is the overdub, when playing at speed = 2, will double in speed , then double in speed again during a recording. and the opposite is true for half speed. I think maybe a 2nd phasor can modulate to the new speed when an overdub is activated then take over reading the array when an overdub is finished. It's just an idea I had.

    Anyway, any suggestions into this would be much appreciated.
    Here is what I have now. simple6.pd

    Thank you.

    posted in technical issues read more
  • nicnut

    @whale-av
    Hey David, I just want to thank you for you input on this patch once again.
    I had an idea. I think I need to implement a version of the same idea you had with the overdubbing to various speeds with over dubbing.

    So if I overdub a speed = 2, the overdub should occur during one full time through the loop as you have it, but at the exact end of that loop the speed should immediately jump to 1. I can try and make a spigot type solution, like what you did.

    I don't know if that explains it well, but I think it is something to try. I will assemble it and post a result.

    thanks, Nick

    posted in technical issues read more
  • nicnut

    @whale-av

    The simple3 looper works perfect. Your solution was super simple and works perfect, way better than messing around with 2 arrays.

    I couldn't try the loop.zip patch yet, because there are limiter~ objects from the zexy library that I don't have. I used Dekken and installed the library, but only the help file for limiter~ and z~ are there. I tried to join the github group for zexy to post a bug about that, but waiting for approval.

    There is only one other issue with this looper that is tricky. When I try to overdub to a loop at a speed other than 1 or -1 things get out of whack. If I over dub onto a loop that is at speed greater than 1, the speed seems to double on playback after the overdub. If I overdub onto a loop at a speed less than 1 it seems to go twice as slow on playback. Note, this is not a scientific observation, but something I am determining by listening to what's happening.

    I tried to implement this expr to resolve this: [expr if($f1 < 1, 2, if($f1 > 1, 0.5, 1))]

    which multiplies a value less than 1 by 2 and a value greater than 1 by .5.
    Here's the patch that I tried it out in: simple3.11.pd minus the array called loop that you need.

    Anyway, it didn't resolve the problem, in fact when I try it out it sort of creates a moment of silence in the loop, so something is off.
    If you have any ideas how to resolve this please let me know. Thank you for all your help!

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!