-
myoozik
Take a look at this patch!
Now I've got something that almost does what I intended!
When you toggle record on, it starts writing to a large temporary table. When you toggle it off, it copies the contents of the temporary table to the table called $1 (in [pd tablecopy]). While it's playing, you can overdub by toggling [dub] and punch by toggling [pch].
Issues: If you push play too soon after you finish recording, it plays the first time through okay, and then makes this terrible block-sized-feedback noise. Strangely, if you toggle record again after this happens, it finishes playing the loop normally as it starts recording again (try it). So you have to wait to push play. Ideally, it would work like a looper pedal and start playing back immediately after you stop recording.
Also, there's a glitch when it wraps around to the beginning of the table (you can't overdub a steady tone and expect it to play without a gap).I want to use a table at some point because I really want the ability to load a wav file and overdub it, and to give other parts of my main patch access to my loop to chop it up, granularize it, and otherwise manipulate it. Is there a way to do this while fixing all the above issues?
Thanks!!!
-
myoozik
Take a look at this patch!
Now I've got something that almost does what I intended!
When you toggle record on, it starts writing to a large temporary table. When you toggle it off, it copies the contents of the temporary table to the table called $1 (in [pd tablecopy]). While it's playing, you can overdub by toggling [dub] and punch by toggling [pch].
Issues: If you push play too soon after you finish recording, it plays the first time through okay, and then makes this terrible block-sized-feedback noise. Strangely, if you toggle record again after this happens, it finishes playing the loop normally as it starts recording again (try it). So you have to wait to push play. Ideally, it would work like a looper pedal and start playing back immediately after you stop recording.
Also, there's a glitch when it wraps around to the beginning of the table (you can't overdub a steady tone and expect it to play without a gap).I want to use a table at some point because I really want the ability to load a wav file and overdub it, and to give other parts of my main patch access to my loop to chop it up, granularize it, and otherwise manipulate it. Is there a way to do this while fixing all the above issues?
Thanks!!!
-
myoozik
I have a system set up where any number of sound sources can be routed into a few different buses, i.e. throw~ 0-bus, throw~ 1-bus, throw~ 2-bus, throw~ 3-bus.
I also have an effects chain that can pull audio from any of the buses (except for the master bus, which could cause serious feedback loop problems) and then output to any bus.
Because send~ is one-to-many and throw~ is many-to-one, and I want many-to-many, I have a subpatch that does this for each bus N:
[catch~ N-bus]
|
[send~ N-bus-s]So, that way, I can have anything write to any bus as well as read from any bus.
The 3-bus acts as the master bus - anything thrown to it will be output via a subpatch that contains a [r~ 3-bus-s] connected to a [dac~].
There's a problem: If i have sound source S connected to the master bus, and if I then have the effects chain receiving a signal from bus B, and then have source S throw to bus B while remaining connected to the master bus as well, I get a comb filter, where the signal going from S through an empty effects chain to the master bus is added 64 samples later to the signal going straight from S to the master bus.
I want a solution that retains all the flexibility in routing of signals. Am I asking the impossible? I think the [throw~ 3-bus] from the end of the effects chain is the problem, because it then has to go through the [catch~ 3-bus]-[send~ 3-bus-s] before it is finally picked up by the [r~ 3-bus-s]-[dac~].
I guess I could just try to an add an artificial latency to the master bus... I thought I tried that, though, and it didn't work.
Thanks a million!
-
myoozik
I am working on an instrument that has abstractions that operate on two types of sources: 1) arrays and 2) sound sources (as defined by send~ objects).
I would like to have, in the graph-on-parent for each abstraction, a popup menu that can be used to switch sound sources. And, because send~ buffers may be named a variety of different things and depend on various abstractions' creation arguments, I would like to have a way to enumerate through all the different send~ buffers and populate a popup menu with them. Is there a way to do this?
It would be nice to have the ability to do this for arrays, but the send~ buffers are more important to me. I'd also like to do this without using any externals (I'm using Pd-vanilla 0.40-2).
Thanks!
Jake -
myoozik
I've noticed that Pd has some very basic user interface flaws, both on Mac and Linux.
Mac: There is no way to quickly cycle through open windows. Command-~ is the standard way to do that on a Mac. Instead, you have to go to the "Window" menu and select which window you want. Very cumbersome. Also, if a patch was built on a computer with a screen larger than yours, the patch opens up with no way to find the lower right hand corner resize handle because it's off the screen somewhere, and you're kind of stuck not being able to really use the patch. The full screen/zoom button in the title bar has no effect, when it should really collapse the window size down so it fits on your screen. Also, the color picking boxes do not show their colors on Mac - they just appear as a grid of generic gray buttons and you have to guess.
Linux: When you close a patch, a box pops up and asks you if you're sure, but it seems to be attached to the main Pd window and usually gets hidden under a bunch of other windows, and you have to do a bunch of extra clicking around just to close the window you wanted to close.
Both (I think): Pressing tab in a dialog box, like the properties for an element, does not move you to the next field. It is a real pain to have to select each new box with the mouse instead of just pushing tab.
Any others?
-
myoozik
Hi,
I used the %~ object in a patch I was building on my Linux box, and then the object didn't load when I opened the patch on my OS X laptop. Does anyone know what package %~ is a part of? (And don't say Pd-extended. It would be really helpful to know the name of the library).
Thanks!
-
myoozik
Hello,
I've got a granular synthesis patch that I've tried to build from the ground up. I don't really know all that much about granular synthesis, and I'm having issues with phasing.
If you record something into the patch (by clicking the record box and talking into your mic for 7 seconds, then unclicking the record box), then try and play things back, you'll notice some strange things, especially as you change the "rate" slider. If you record yourself humming one pitch for 7 seconds and then move the "rate" slider around, it seems that the sound goes in and out of phase, hitting several sweet spots along the slider's width. I know this must have to do with the fact that the same little snippet of the table is being played by enveloped, slightly overlapping tabread4's (in the granplay~ abstraction, in the "pd granplayers" subpatch), so sometimes adjacent periods of the wave in the table cancel each other out, and sometimes they reinforce each other. I also know that the number of sweet spots is related to the number of granplay~ objects I use (would these be called "voices?").
If I get rid of three of the granplay~ objects and just keep two of them, setting their offsets (argument $2) to 0 and .5, respectively, the problem mostly goes away, except the result is a lot choppier.
I want a really, really smooth way of doing what I'm trying to do here. I'm thinking that maybe I should go the fft route, unless there's a simple way to fix this patch I've got.
Any advice / help?
Thanks!
-
myoozik
I make patches that I use on both Gentoo Linux and Mac OS X. I've made do thus far without any externals (I'm using the vanilla version of Pd because Pd-extended for Mac is extremely unstable, and in the pd-overlay for Gentoo, pd-extended is also listed as being unstable).
So, my question is this: I've been trying to look at some example patches, but they tend to use objects like rand~ that I don't have. Where can I get them? Do I absolutely have to use pd-extended?
Thanks!
Jake -
myoozik
I have an Edirol FA-101, and I'm trying to get it to work on my PowerBook with Gentoo Linux installed. The issue is that sound just doesn't work for me.
I do this first:
jackd -d freeboband I get
jackd 0.102.20
Copyright 2001-2005 [...]JACK compiled with System V SHM support.
loading driver ..
Freebob using Firewire port 0, node -1
libiec61883 warning: Established connection on channel 0.
You may need to manually set the channel on the receiving node.
libiec61883 warning: Established connection on channel 1.
You may need to manually set the channel on the transmitting node.This is normal and is what I get on my amd64 system when I use this setup. When I open Pd, however, with -jack as a command line option, the Media menu is empty and Pd doesn't respond to anything. Also, if I don't use -jack, I can go to the Media menu and select jack, but after that everything stops responding.
Also, if I start jackd with -R -P 70, I get the same output from jackd, except after a couple of seconds I see "Aborted" and jackd stops running:
... etc, etc ...
libiec61883 warning: Established connection on channel 1.
You may need to manually set the channel on the transmitting node.
AbortedI'm using pd-0.39_p1 from the Gentoo portage tree, same as on my amd64 machine.
Thanks.
-
myoozik
When I'm working on certain nested abstractions in my patch (3 or 4 levels nested), and then I try and save, I get this error message multiple times (it looks like about 50 or 100 times in the main Pd window).
error: .x747af0: no such object
I also get error messages in the terminal I'm running Pd from that look like this:
bad window path name ".x713550.c"
bad window path name ".x713550"
bad window path name ".x713550"
bad window path name ".x713550.c"
bad window path name ".x713550"
invalid command name ".x713550.c"
invalid command name ".x713550.c"
invalid command name ".x713550.c"
invalid command name ".x713550.c"
invalid command name ".x713550.c"The program then stops responding, and the main patch window suddenly closes. Patch windows don't respond to clicking the close box. Menus pop up if I click on them, but selecting menu items has no effect, with one exception: If I do File -> Quit from the main Pd window, it asks if I want to discard changes to the window. I say no, and then the abstraction nested n-1 levels (where n is the depth of the abstraction I was working on) pops up and I have a chance to save it. I save it, and then this whole thing repeats until I get to the root window (the main window of my patch). Once I save that, I click Pd's close box and it exits with a segfault. Anywhere in this process, if I click the main Pd close box, it exits with a segfault (although sometimes there is no segfault - I haven't figured the pattern out yet).
This whole thing happens for certain combinations of abstractions, but not others. I have this problem both on Mac OS and Linux.
I don't lose any work because of this - the saves seem to work fine - but I'm wasting a lot of time restarting Pd every few minutes. Help!
-
myoozik
I just got an Edirol FA-101, hoping that it would work with both my 667mHz Powerbook and my Linux desktop machine through Freebob.
When I use it with my Powerbook, things are fine when I'm not using Pd (including using other audio apps), but when I open Pd and set it to use the FA-101 as input and output, the whole machine starts responding very slowly, and, even if I turn the latency up to 500 ms, just monitoring input through the Test patch sounds like I'm getting serious underruns as if I'd turned down the latency to 1 ms.
I'm testing my housemate's M-Audio FireWire 1814 right now with the same setup, and I don't have any of those problems at all. It's fine at 12 ms latency at 44100Hz.
So... the questions: Has anyone else gotten a similar setup to work? Does anyone have any suggestions? It seems like the problem might be Apple's CoreAudio driver for the FA-101. The FA-101 does not require any additional drivers, but the M-Audio requires you to install its own drivers.
Thanks a lot!
EDIT:
I get a lot of idiot points - and on my first post on the forum, too. I didn't match the Pd sampling rate to what I selected on the FA-101. The FA-101 has a knob to select sampling rate; you can't change it in software. Anyway, I'd still like to hear from anyone who has a similar setup. Thanks. -
myoozik
Domien,
I just tried your until method a short table for the display. 256 was way too short and didn't give me a very meaningful view - so I tried 1024. Choosing 1024 regularly spaced samples from the table doesn't give you the points that tell you the wave's amplitude - it gives you random points in the wave, so it doesn't give you a very good picture. The amplitudes shown don't necessarily reflect the amplitude of the real thing - it especially seems like you get pretty random results for tables with a bunch of really short sounds (clicking, popping). Here's a screen shot - I had to make Y range .08 to -.08 to see anything.
What else could I try?
-
myoozik
At first glance, I've had the best results with amp-simulator.pd above.
I added a wet/dry mixer to it, took out the EQ and spring verb, and I can get a huge range of sound qualities out of it, but things like keeping levels consistent relative to the source material aren't necessarily intuitive, and there are combinations of settings that look very different from each other but sound very similar.
I'd classify these sound qualities I can get out of it along a continuum ('less distored' to 'more distorted'?) that doesn't necessarily correspond directly to single parameter changes. I really want to be able to assign a knob or two on my control surface such that each one varies multiple parameters as I turn it, so the output can sound more distorted without my having to, for example, reduce the 'gain' setting on the compressor as I feed hotter input to increase the distortion effect.
So maybe I'd have a knob to control "brightness" as I perceive it... and maybe one to control "grunginess"... I to be able to intuitively change sounds on a dime in performance.
To restate/clarify, I love the range of sounds that this thing can produce, but it's counter-intuitive to operate, and I want to improve that aspect of it. Any help? Anyone dealt with this before?
Thanks!
-
myoozik
For clarification
Refer to this post for the delwrite~ vd~ way of doing this:
http://puredata.hurleur.com/viewtopic.php?pid=5168#p5168I want some hybrid way where I can load files into the looper for overdubbing and make my loop available outside the recorder~ abstraction.
Thanks again!
-
myoozik
What do you mean by a user defined delay compensation? Won't the inaccuracy be different every time because it depends on when within the block you stop recording?
-
myoozik
Domien, I have a couple of important related questions:
- [timer]'s precision: is it rounded to the nearest block length?
- For writing to an array later, do you do this with a tabwrite~ , and if so, is it a problem that tabwrite~ only starts on block boundaries?
Thanks.