Soundflower to Decrease CPU usage for those with Firewire interfaces
Hey Guys,
I've noticed, consistently, that if I select my MOTU 828mkII as both Audio In and Audio Out in PD .39extended (newest build from Hans in daily builds, RC4) my CPU usage jumps to almost double as compared to CPU usage with my Built In audio as Audio In and Audio Out. I have not seen this behaviour in any other Mac OS X application.
I've found a way around this.
If you're a Mac OS X user, go ahead and download Soundflower from Cycling74's website: http://www.cycling74.com/downloads/soundflower
Soundflower mirrors Jack in function, but is only available for OS X. It creates a virtual 2 channel and 16 channel interface in your OS so you can route audio between applications and out the soundcard.
To work around this CPU usage bug with firewire interfaces, select Soundflower 2ch or Soundflower 16ch as your default Audio Out / Audio In within Pd. Then within the Soundflowerbed menu, select your firewire interface as your soundflower output. I don't know why this works, but it does. You can now decrease your CPU usage up to about 2x when using a firewire interface. Screenshots follow.
Builtin audio OR soundflower as output while playing the 7. datastructure sequencer demo
Firewire as audio output while playing the 7. datastructure sequencer demo
Soundflower config
Memory/cpu consume
fdn uses heaps of cpu. if you are just using it as a reverb, maybe try swapping it for another reverb patch.
>i am not sure how to do that. maybe only a few soundfiles<
more soundfiles shouldn't affect things too badly.
attached to this patch is a little cpu meter abstraction. put that in your patch, and gradually delete parts. when the cpu usage drops significantly, you will know what part of your patch is having the effect.
if there is any fft stuff in your patch that will also be using a bunch of resources.
Install gridflow on linux
the last lines for 'make install' are:
cp bin/jmax2pd /usr/local/bin; chmod 755 /usr/local/bin/jmax2pd
mkdir -p /usr/lib/pd/doc/5.reference/gridflow/flow_classes
cp pd_help/*.pd /usr/lib/pd/doc/5.reference/gridflow
cp doc/*.html /usr/lib/pd/doc/5.reference/gridflow
cp doc/flow_classes/*.p* /usr/lib/pd/doc/5.reference/gridflow/flow_classes
cp -r images/ /usr/lib/pd/extra/gridflow
cp gridflow.pd_linux pd_abstractions/*.pd /usr/lib/pd/extra
for z in camera_control motion_detection color mouse centroid centre_of_gravity fade \
apply_colormap_channelwise checkers contrast posterize ravel remap_image solarize spread \
rgb_to_greyscale greyscale_to_rgb rgb_to_yuv yuv_to_rgb; do \
cp pd_abstractions/\#$z.pd /usr/lib/pd/extra/\@$z.pd; done
mkdir -p /usr/lib/pd/extra/gridflow/icons
install -m 644 java/peephole.gif /usr/lib/pd/extra/gridflow/icons/peephole.gif
(cd devices4ruby; make install)
make[1]: Entering directory `/home/bastien/Desktop/gridflow-0.8.0/devices4ruby'
install -m644 ioctl.rb /usr/local/lib/ruby/1.8/linux//ioctl.rb
install -m644 SoundPCM.rb /usr/local/lib/ruby/1.8/linux//SoundPCM.rb
install -m644 ParallelPort.rb /usr/local/lib/ruby/1.8/linux//ParallelPort.rb
install -m644 SoundMixer.rb /usr/local/lib/ruby/1.8/linux//SoundMixer.rb
make[1]: Leaving directory `/home/bastien/Desktop/gridflow-0.8.0/devices4ruby'
I don't have any other PD install. Just the ccrma.
I think (i don't remember) that i have installed ruby from the source.