Signature
-
slovos
Hi forum,
I am trying to figure out how to build a circular buffer in order to granulate and pitch shift live input. I would like the incoming signal to be stored in an Array and have the read index follow behind the write index. I specifically want to use an Array for this and not a delay line.
The problem is obviously that the read index cannot overtake the write index since there will be a glitch in audio, and with pitch shifting and randomization this would be inevitable.
Through some research I'm thinking that this sort of implementation can maybe be done with wrap~ and some kind of delay line on the read index, but I'm not sure how to build it. I've seen examples of circular buffers in other languages but with very little concrete explanation of how the code works.
I'm hoping someone here might be able explain to me in detail how I should approach this.
Thanks in advance!!
j -
slovos
Hi all,
I've been working on a project in which I'm trying to route MIDI control data from pd to automate 16 audio track faders in Live. I've run into a problem with MIDI feedback whenever I try to send multiple messages. Its really baffling me since I have no midi in set in pd and no midi out set in Ableton. I don't understand where the feedback is coming from.
I'm using LoopBe1 on a Windows machine so this might also be an issue. Or maybe I'm flooding the port?
Here's the config and what I've troubleshot so far..
pd -1 midi out set to LoopBe1
- no midi in devices
Live preferences - 1 midi in port set to LoopBe1 - Track On / Sync Off/ Remote On
- Sync Type: Midi Clock
- Port MME
All track faders are set and sync when I manually move them up and down in pd. As soon as I start sending automated messages I get a MIDI feedback error and the port is closed. I also have no issues when routing other patches that use |noteout| to midi tracks in order to send MIDI note data with this configuration.
This leads me to believe that the issue might be how I'm using ctlout, or its LoopBe1, or that its just impossible to do what I want to do with MIDI in this situation and I need to come up with a different solution entirely.
I've also tried setting up JACK but it doesn't seem to route MIDI out of pd only audio.
Hopefully you guys can help me figure this out. I've been working on various stages of this project for almost a month and its painful to get hit with such a brutal snag when I'm almost at the finish line.
Patch is posted at the bottom.
Thanks in advance!!johnny
- no midi in devices
-
slovos
Hi all,
I'm currently working on a project where I'd like to store waveforms in tables or arrays which I could then use with some kind of line objects as amplitude envelope generators for triggered events.
I've been able to figure out how to create break point style tables via the documentation (like a standard ADSR), but I'm wondering, is it possible to generate tables/arrays using exponential/logarithmic curves?
I'm thinking of these as similar to the kinds of unipolar tables that are generated using the GEN08, GEN05 families in Csound, that are read with an oscil1 or phasor.
With this approach I'm hoping I can simply swap tables in and out of different patches when I need them.I'm fairly new at Pd and Csound and have only been studying them for about a year, so if its something obvious or simple I apologize.
Thanks for your help!!
-
slovos
Thanks Alexandros, I'm going to check out your patch.. At a glance it looks like basically what I had in mind in terms of delaying the signal and playback
I was thinking for pitch shifting etc. that a phasor would be needed to control the rate and position of playback, and maybe this is where wrap~ would somehow come into play.
I'll mess around with it over the next few days and if I figure out anything concrete I'll post it back.
...also I dig your music that you have up on your site!
cheers!
j -
slovos
Thanks so much for sharing your design. I've been trying to figure out something similar for a project I'm working on. Not really for waveshaping, but to generate exponential ADSR envelopes, similar to the GEN routines in Csound. I think working with a visual representation of waveforms can really help with design.
If you could share the article that inspired you that would be sweet. If you have any new developments with this patch please let me know!!
Thanks!!
-
slovos
Whoah thanks!! Lars' bezier curve patches help alot. That's really close to what I was looking for. He mentions in his post that he's going to work on a version that computes several points, which would essentially be able to create the envelopes I was envisioning for my project.
Unfortunately my math is not very good and I'm having a hard time trying to follow the design, but will work on it.
If anyone else has enveloping design/implementation suggestions using tables/arrays or otherwise feel free to post.
Thanks!