Big buzz - additive synthesis
hi all,
i want to build a big big buzz with many many sine waves. i found this yet
http://www.mail-archive.com/pd-list@iem.at/msg28073.html
but
if I want to sum for example 200 sine waves for my extra big buzz, i have to type a lot and copy and paste and so on. isn't there a faster way to build this up?
preferably with sine waves, to control the harmonics better.
i actually dont need different volumes for each sine wave.
can anyone help me? thanks a lot!
White Noise to Sine Wave?
i missed this thread the first time round, and it looks like there are some great suggestions,
but to turn white noise into a sine wave, you could turn the problem on its head.
first, start with a sine wave. then apply modulations to bash it up and turn it into noise.
whatever process you followed, then reverse, and you will turn the noise back into a sine wave.
not tried this in practice, but i guess it would probably work. hardest thing is going to be getting really white noise from a sine wave.
Writesf~ set parameters?
Hi Everyone,
this is my first post, I searched the forum but couldn't find the info I needed and was wondering if anyone had any insight into whats going on.
Basically I have a pd script I'm using that records a wav file to my hard drive, when I import that wav file into this other program I'm using, I get the following data but no playback.
BROKEN:
format: Unknown
channels: 2
sampleRate: 44100
bitRateUpper: 44100
bitRateLower: 44100
bitRateNominal: 0
blockAlign: 8
bitsPerSample: 32
sampleMultiplier: 1
commentList:
commentTable:
When I take that same file into an audio editor and export it as a wav i get the following data and the wav but with playback
WORKS:
format: PCM
channels: 2
sampleRate: 44100
bitRateUpper: 22050
bitRateLower: 22050
bitRateNominal: 0
blockAlign: 4
bitsPerSample: 16
sampleMultiplier: 1
commentList:
commentTable:
So my question is if writesf is the best way to write wav files to the harddrive? Also is there a way for me to set some parameters so that my broken wav file has the same parameters as my working wav ( i.e. format to PCM )?
thanks
Creating a harmonic tree
The f(xn) and f(xn+1) part is just saying to use the output of the previous iteration and feed it into the current iteration. To me, it makes more sense to look at it like this:
f(xn) = f(xn-1) * d / r
f(xn-1) is the frequency output of the previous pass, and will give you f(xn). f(xn) then becomes f(xn-1) in the next pass.
An easy way to do this would be to make a subpatch with the equation and feed the output back into it. I made an example to illustrate this. In mine, I actually made two copies of the same patch; the output of 1 feeds into 2 and vice versa. Doing it this way allows you to have different destinations and relatives for each one, and you can chain as many as you like. I also set up a randomization option with min and max boundaries for the destination and relative.
Edit: by the way, thanks for bring this to concept to our attention. It's quite a musical approach to random intervals.
Seq Sampler Loop
No sound out of this Oscar.
Here's a bit of the error message:
ch file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus13.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus16.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus16.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus14.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus14.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/zapa06.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav: No such file or directory
error: soundfiler_read: /home/pelao/Documentos/audio/loops/terminus15.wav:
But, it looks awesome.
Keep well ~ Shankar
Float output format
I am using a float as part of a filename (of a sound I record). However the filenames are like:
blabla0.wav
blabla10.wav
blabla20.wav
[..]
blabla100.wav
Now, I was wondering if it is possible to get:
blabla000.wav
blabla010.wav
blabla020.wav
[..]
blabla100.wav
In other words can I get a specific output format, e.g. 3decimals, from a [float]?
Note: I am computing the float (counter*constant), so I can't just type a 3 decimal number as input for the [makefilename]
Appending samples to the end of a wave file?
Hey all-
Is there a way to append samples to the end of a wave file in PD? I'm working on some voice activity detection stuff, and I basically want to read in a multi-channel wave file, determine if every 80 samples is speech or non-speech, and add another channel that contains the information about speech / non-speech.
I would like to write all of the original channels, plus the new channel, to a new wave file. My concern is that the channels will be too large to simply load them all into arrays, and then write out all the arrays (maybe I'm wrong and maybe I should just do that). I would like to basically...
read in 80 samples
determine speech
write out 80 samples (on all 5 channels)
repeat until the end of the file
Is there any way to do this? Or should I just try to load them all into arrays and just write the file @ the end (the files are like 20 minutes each, 4 channels, 8kHz).
I've looked at soundfiler (will let you skip parts of the array, but not parts of the file) and writesf (seems to only write in real time; stopping must be followed by an open before more writing, which overwrites the file)...
Any help would be appreciated!
All the best,
-Zach
New to pd, how do i make a lowpass filter with resonance?
some time ago i made this patch. it is a sort of lfo but only with sine, saw, and random wave types (i need only these...).
probably it is little naive, but works fine.
the left inlet is for frequency in Hertz (every frequency is accepted, so this not properly an LowFrequencyOscillator)
the righ inlet is for the wave type: 1 for sine wave, 2 for sawtooth wave, 3 for a random band-limited noise (similar to a random wave type, for this one you need cyclone library which is already in PDextended).
so you will have:
[audio~] [> ] [> ]
| | |
|______ [llfo~]
| |
[*~]
for sure there's a way to this with tabwrite~ and tabread~. maybe you can multiply [*~] your audio signal with an array you can draw/design yourself
Timbre conversion
@daisy said:
I have read some where that "if a voice is at same pitch and same loudness and still if one recognize that two voices are different , it is becuase of TIMBRE (tone quality)". (I agree there are other features as well who need to consider).
Timbre is another word for spectrum. The spectrum of a sound is the combination of basic sine waves that are mixed together to make it. Every sound (except a sine wave) is a mixture of sine waves. You can make any sound by adding the right sine waves together. This is called synthesis.
@daisy said:
First Question:
So how we can calculate the TIMBRE of voice? as fiddle~ object is used to determine the pitch of voice? what object is used for TIMBRE calculation?.
[fft~] object splits up the spectrum of a sound. Think of it like a prism acting on a ray of light. Sound which is a mixture of sines, like white light, goes in. A rainbow of different colours comes out. Now you can see how much red, blue, yellow or green light was in the input. That's called analysis.
So the calculation that gives the spectrum doesn't return a single number. Timbre is a vector, or list of numbers which give the frequencies and amplitudes of the sine waves in the mixture. We sometimes call these "partials".
If you use sine wave oscillators to make a bunch of new sine waves and add them together according to this recipe you get the original sound back! That's called resynthesis.
@daisy said:
Second Question:
And how one can change TIMBRE? as pitch shifting technique is used for pitch? what about timbre change?Thanks.
Many things change timbre. The simplest is a filter. A high pass filter removes all the low bits of the spectrum, a bandpass only lets through some of the sine waves in the middle, and so on...
Another way to change timbre is to do analysis with [fft~] and then shift some of the partials or remove some, and then resynthesise the sound.
@daisy said:
I have a kind of general idea (vcoder). but how to implement it? and how to change formant?.
A vocoder is a bank of filters and an analysis unit. Each partial that appears in the analysis affects the amplitude of a filter. The filter itself operates on another sound (often in real time). We can take the timbre of one sound by analysing it and get it to shape another sound that is fed through the filters. The second sound takes on some of the character of the first sound. This is called cross-synthesis.
/doc/4.fft.examples/05.sheepgoat.pd
Help -> 7.Stuff -> Sound file tools -> 6.Vocoder