Little help please: building my own compressor (updated below...)
@svanya As you say...... it's a lot easier to understand when you have made it yourself!
The term "below threshold" is when the incoming signal is not high enough to reach the threshold...... and "above" when it is higher...... it is sort of logical.....
Choosing the threshold level is crucial to the best use of the compressor.
Some compressors (AKG were the first I remember) introduce a tiny delay to the main signal so as to introduce the required compression before the signal arrives (catch all transients). That is called "feed forward compression" if I remember well. It is ok for the studio, but less of a good idea live work. Very good for a "limiter" though as it catches everything...
You will also see (on manufactured units) "attack" (time for compression to ramp up....... approx.? 0-10ms.... to allow short transients to pass more naturally... un-"chopped") and "release" (the time to slowly release the compression after the signal has dropped below the threshold again....... 50ms-2sec.... usually about 300ms is good for vocals)
Compression is good for 2 things and maybe more....... clamping the dynamic range, and so smoothing out the effects of bad microphone technique.......
...... and increasing the "power under the curve" and so increasing loudness without an increase in level....... which guitarists value highly, as the transformer/valve combination of a valve amplifier introduces distortion of the signal as the transformer reaches saturation, that we now call "compression".... (and other distortions, but keep that to yourself!)........ So compression is always used for mastering now, as there is no analogue tape (which compressed everything anyway in the "good ole days")......
Don't get me going!
All of the extra touches (knee, attack, release, etc.) have been added in an attempt to hide any unpleasant effects of the compression for the human listener......
David.
Trying to use ADC~ on Android Studio Emulator - No microphone input signal
Hi all,,
I'm trying to do a simple talk-through using libpd with android studio.
adc~ -> *~ 0.5 -> dac~
However, I do not have an android phone, so I'm using an Android Studio emulator (Nexus 4, api 23).
I can't get any input from my laptop microphone (or from my earphones built-in microphone when I try that).
Is there something I'm missing?
I know when using Record_Audio directly in Android studio, you need to add permission.
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
Is my issue something along these lines?
Or is it a limitation with using emulators?
I've read many questions on forums about it, but not many are recent and there seems to be many conflicting answers also.
All the best
Mark
Stereo Butterfly effect (AKA: the WMP SRS-WOW effect)
@TerraByteTech It is Middle and Side from a microphone setup that you will find more about here..... http://ehomerecordingstudio.com/stereo-microphone-techniques/ (No.5)
It gives a stereo feed, but with true mono compatability and so was used a lot for television and radio in the good old days........
David.
When pitch shifting with [delwrite~] and [vd~] hidden feedback/oscillation occurs
@rjp9 Hello "rp"
I have looked at your patch from time to time......... and of course there are two feedback loops if you are using a laptop microphone..... the acoustic one > the microphone........ and the electronic one that gives (a part of) the echoes by design. Adding a whole "1" signal to another at the outputs of the [vd~] objects risks putting your patch into "positive" feedback. "1" is 0db= max level in Pd.
Obviously, depending on the latency of the soundcard and the media/audiosettings that you have the delays will be modified.
Until your patch sinks (not really the word)......."flies" into chronic feedback..... the sound is really "great" (as you say)......
If you were to use [clip~] you could contain the build-up........ but?........... Using "magic glass" I saw audio values into the tens of thousands at the outputs of the [vd~] objects.......not good.
I think you should play around with [limiter~] to get closer to the effect that you are looking for.
I have included it in your patch to contain the "disastrous" feedback, but it destroys the effect I think, Maybe not? That is because it acts in this case (with these parameters) as a "leveller".
feedback.pd
However [limiter~] is actually a compressor with attack, delay, ratio etc. and maybe you can insert it in certain places and get the perfection that you are seeking?
David.
Noise filter for microphone (Live Audio)
Well, the forum crash seems to have eaten my last post.
I have made a noise filter to clean up audio signals live.
Other noise removal filters need to have a noise sample selected and try to remove that noise from the complete track - they only work offline.
This patch works online. It removes any stationary noise from the signal and doesn't need any user adjustment except that it does need to be told how much to reduce the noise.
"Stationary noise" is a signal whose frequency content and amplitude stay (more or less) constant for over 1 second. Fan hum is a good example, as well as the more or less "white" noise from the wind from the fan. Car motor sounds from a car travelling at constant speed is also a good example.
It will also kill feedback squeal cold, even at the lowest settings.
The patch is built in layers, and the lower layers can be used independently or combined and used to build different filters.
The attached zip file includes all the components from the lowest level up to a complete demonstation that takes in audio from a microphone and puts out filtered audio on line out. It also includes a set of help files that describe the function and use of the various modules.
Included modules:
NoiseLevelDetector.pd - estimates the amplitude of the stationary noise
NoiseFilter.pd - attenuates the signal based on the amplitude from
NoiseLevelDetector.pd Since it is more effective at high frequencies, it is best to feed it limited bandwidth signals and use multiple filters to cover the desired audio range.
BandLimitedNoiseFilter.pd - a Noisefilter that only works on the specified frequency range.
MultibandNoiseFilter.pd - a complete filter that covers the range from 40Hz upto 22000 hz to filter the complete audio spectrum.
Test.pd - demo program that demonstrates the use of MultibandNoiseFilter.pd
It works best for speaking voices. Singing tends to be more stationary. It could be adapted to singing voices by changing a single value in one of the lower level blocks.
The original idea was to create filter for removing car noises from microphone audio for two-way radios. When used to cover just the range from 300Hz to 3000Hz, it does a very good job.
The biggest disadvantage is that it will start making "musical noise" if there is a lot of noise and the attenuation is set high. It also adds a slight echoing quality to the filtered audio.
The project is hosted on GitHub: PureData NoiseFilter project.
Write & read buffer
hi there,
just wondering if anybody has made a buffer that you can write to, and simultaneously read from?
I want to put live input from a microphone into pd, then manipulate the playback of the sound whilst still recording to the buffer...
i need to constantly record to the buffer, and be able to playback from any point (from the earliest up to the present point) in that buffer whilst it still keeps buffering/recording...
i.e.
performer plays with mallets on instrument.
microphone picks up sound for input
pd controls playback speed/pitch of sound picked up in microphone while still recording sound for next/now playback and manipulation etc...
does this make sense?
any help greatly 'preciated
thanks
Multichannel output
Hello - I am totally new to Pure Data and to this topic.
My daughter is a final year arts student, and she wants to make a sound installation in which different sounds should be heard from 8-10 different speakers positioned around a room.
A colleague of hers has suggested investigating Pure Data, and I've just been playing around with it for the last hour. While I've barely scratched the surface, I love it!
However, I was wondering what approach I could take to drive 8-10 speakers independently. Someone else has suggested a device like this
http://www.ebuyer.com/product/106540
which seems to have eight independent outputs. It comes with a driver disc, so I presume that will allow Windows somehow to access the different channels.
How would I go about mapping the [dac] objects in Pd onto such an external device?
Secondly, my daughter would like some aspects of the sound to be modified by external events - she's thinking of pressure pads (to sense the presence of people in the room and indeed the *number* of people in the room) or a microphone (to sense the sound people make when entering the room).
I can imagine using a microphone as an input and using its sound level to do something with it; but is there a simple way in which a pressure pad or a proximity sensor could be interfaced with the PC (and then on with Pd)?
Many thanks in anticipation!
Koenfucius
How to let an incoming signal result in playing in one key&scale?
Hi all, I kind of new to Pd and this is my first post here so bare over with me
I'm trying to make a synth-like patch that gets a signal in (from a microphone) and control an oscillator (osc~) so that the notes coming out is always within a certain (selectable) scale and key. I've already made a small patch that process the signal from the microphone, so my incoming signal is auto-calibrated to be between 0 (no signal/activity) and 1 (max signal/activity).
I now want to spilt my interval up in say 8 (I select major/ionian scale, and for instance the key C), so for an incoming signal of 0 it plays C3. If the signal become larger a D3 will be heard, and so on. For max signal I will hear C4. If I get for example a F3 and the signal gets weaker it should play E3. (hope you get the idea)
I know how to adjust the scale with just adding to a midi-note-number, so I reckon it would be easier to operate with midi-numbers rather than frequency...
I'm unsure on how to implement this. Maybe I should define all the different scales I want to use in tables, and pick notes from it by moving back and forth within the table (if this is possible) or maybe it's a smarter solution.
I hope any of you have any ideas. I know my explanation was not the best, but I want the end result to be a patch which let me play it like an instrument with the input from a microphone, always in tune with selected key/scale.
[adc~]
|
[module with noise filtering and auto-calibration (already made this)]
|
[magic module I need help with ]
| \
[osc~] or: [mtof]
| |
[dac~] [osc~]
|
[dac~]
Any ideas or reflections will be greatly appreciated,
best regards,
ZnakeByte
Agc
Here's an AGC (automatic gain control) abstraction I whipped up. I'm posting it here in case anyone finds it useful. Open agctest.pd and play with the top hslider for an example of how it works.
USB Mic ?
Hey guys, I'm very much a PD beginner, currently attempting to use it to just analyse input from a Microphone and create some values, that I am then passing to Processing and using as RGB values.
I have managed to get everything working great with the built in Mic on my Macbook.. Unfortunately I need to get it working with an external Microphone and Macbooks don't have a Microphone In, they have a Line In, that doesn't power devices.
Because of that I've had to get a little USB adapter that allows me to plug the mic in through the USB and it works well, my Macbook picks up the Mic.. Unfortunately Pure Data doesn't seem to see the USB mic at all..
I'm just wondering if I'm doing something wrong.. If anything needs to be changed when using USB input.. I'm just using an [adc~] thing at the moment.. Maybe I need to use a different kind of object or something to bring the USB sound in?
Any help would be fantastic, thankyou.