Hey all,
Does anyone know if there was any abstraction that realizes the bit crusher effect on Pd?
Thanks
Bit Crusher
Hey all,
Does anyone know if there was any abstraction that realizes the bit crusher effect on Pd?
Thanks
Are you trying to get lo-fi digital sounds? Is that what bit crushing is? I chop stuff up (in the time domain) like this sometimes;
[yoursignal~] [phasor~ 700]
\ /
\ /
\ /
\ /
\ /
[ samphold~]
|
|
[dac~]
This doesn't really do anything to change the bit depth, but it sort of emulates lower sample rate. I think there's a pdp external that does what you are looking for.
the sigpack library has some great externals, including [decimate~] which does exactly what you want.
Thanks hardoff,
I have one more question if you would please to answer; the library you have suggested, and a few other ones that I tried to install into Pd are RPM files, and although I checked on the internet for a way to use them on OS X 10.4.10, I couldn't succeed. Could you tell me how I can solve that?
Thanks for your help
hey tcihan
RPM files are redhat linux packages, and most definitly will not work on OS X.
however, the library in question is included in (yes, you guessed it) Hans' pd-extended installer (http://at.or.at/hans/pd/installers.html).
So how do you think you would go about making one of these yourself? I bet you could program in a lot more options on your own.
since a bit depth reduction is nothing else than quantizing the audio signal to specific value, this here should do the trick. at least i guess.
by the way, it seems there is an object, "quantize~", that should work like this.
(by Maelstorm)
Just took a look at your patch, and you're actually creating a 4-bit signal. To get the correct range for bit depth, you need to raise two to the power of the bit depth. So 2^8=256, but since we use zero the range would be 0-255. And then quantize it with int(). I've always done it like this:
[expr~ $v1*.5+.5] <-put the signal in 0-1 range
|
| [8\ <-bit-depth
| |
| [expr pow(2, $f1)-1]
| |\
[expr~ int($v1*$f2)] \
\ |
\ |
[expr~ $v1/$f2*2-1] <-bring it back to -1 - 1 range
I've never used [quantize~] before, but from looking at it's helpfile it would seem all of that can be done by sending it the [8bit( message, but that's not as fun .
@ezequielabregu said:
[expr~ $v1/$f2*2-1]
What is $f2 in this expression? The result of [expr pow(2, $f1)-1]? I tried your implementation but it doesn't sound quite right so I think I am not interpreting your signal flow correctly. Can you clarify, @ezequielabregu ?
@ricky I couldn't quite work it out at first but realised the diagonals are the connections from the right outlets. I couldn;t quite get the last expr~ to work but multiplying the output by 4 after that sorted it. Maybe someone can make this more elegant than me.bit_Crusher.pd
@ricky I meant going to the right inlets of the objects below
else/crusher~
@toxonic said:
by the way, it seems there is an object, "quantize~", that should work like this.
else/quantizer~ is better for this
@Element-S said:
Maybe someone can make this more elegant than me.bit_Crusher.pd
this example from my live electronics tutorial explains how to do this in a more elegant way with expr~
Oops! Looks like something went wrong!