[PD] writesafe2~ = an avoidance of the crash when writesf~ output file reaches 2GB

ClaudiusMaximus gloriousclaudiusmaximus at yahoo.co.uk
Fri Oct 29 11:53:20 CEST 2004


I made an abstraction that writes multiple output files with a maximum 
size setable by the user.  Only stereo output files are supported, and 
the control is via multiple messages so it isn't a straight drop-in 
replacement.  The patch uses two [writesf~] objects for double buffering 
as the help file says there must be a delay between a "stop" and the 
next "open".

Attached are the patch and help patch.  It is advisable to send the 
messages to the writesafe2~ in the order given in the help patch, I 
haven't tested other orderings.

Still in the patch are [print]s to show what the [writesf~]s are 
receiving, example output from the help patch, playing with the start 
and stop controls towards the end:

===
writesafe2~-0: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0003.wav
writesafe2~-0: start
writesafe2~-0: stop
writesafe2~-1: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0004.wav
writesafe2~-1: start
writesafe2~-1: stop
writesafe2~-0: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0005.wav
writesafe2~-0: start
writesafe2~-0: stop
writesafe2~-1: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0006.wav
writesafe2~-1: start
writesafe2~-1: stop
writesafe2~-0: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0007.wav
writesafe2~-0: start
writesafe2~-0: stop
writesafe2~-1: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0008.wav
writesafe2~-1: start
writesafe2~-1: stop
writesafe2~-0: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0009.wav
writesafe2~-0: start
writesafe2~-0: stop
writesafe2~-1: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0010.wav
writesafe2~-1: start
writesafe2~-1: stop
writesafe2~-0: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0011.wav
writesafe2~-0: start
writesafe2~-0: stop
writesafe2~-1: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0012.wav
writesafe2~-1: start
writesafe2~-1: stop
writesafe2~-1: stop
writesafe2~-0: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0013.wav
writesafe2~-0: start
writesafe2~-0: stop
writesafe2~-1: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0014.wav
writesafe2~-1: start
writesafe2~-1: stop
writesafe2~-1: stop
writesafe2~-0: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0015.wav
writesafe2~-0: start
writesafe2~-0: stop
writesafe2~-0: stop
writesafe2~-1: open -bytes 4 -wave -rate 44100 /home/claude/tmp/test0016.wav
writesafe2~-1: start
writesafe2~-1: stop
===

And the resulting files:

===
$ ls ~/tmp/ -l
-rw-rw-r--    1 claude   claude     799788 Oct 29 09:51 test0003.wav
-rw-rw-r--    1 claude   claude     799788 Oct 29 09:51 test0004.wav
-rw-rw-r--    1 claude   claude     800300 Oct 29 09:51 test0005.wav
-rw-rw-r--    1 claude   claude     799788 Oct 29 09:51 test0006.wav
-rw-rw-r--    1 claude   claude     800300 Oct 29 09:51 test0007.wav
-rw-rw-r--    1 claude   claude     799788 Oct 29 09:51 test0008.wav
-rw-rw-r--    1 claude   claude     800300 Oct 29 09:51 test0009.wav
-rw-rw-r--    1 claude   claude     799788 Oct 29 09:51 test0010.wav
-rw-rw-r--    1 claude   claude     800300 Oct 29 09:52 test0011.wav
-rw-rw-r--    1 claude   claude     498732 Oct 29 09:52 test0012.wav
-rw-rw-r--    1 claude   claude     799788 Oct 29 09:52 test0013.wav
-rw-rw-r--    1 claude   claude     655916 Oct 29 09:52 test0014.wav
-rw-rw-r--    1 claude   claude     179756 Oct 29 09:52 test0015.wav
-rw-rw-r--    1 claude   claude     145452 Oct 29 09:52 test0016.wav
===


I hope this is useful for some of you :-)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: writesafe2~-help.pd
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20041029/07b952fa/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: writesafe2~.pd
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20041029/07b952fa/attachment.asc>


More information about the Pd-list mailing list