Purr Data alpha2
This is the alpha 2 release of Purr Data (the GUI port of Pd-l2ork)
Change log:
- OSX build included (Thanks to Matt Barber)
- Gem works on Windows now
- fixed bug that broke infinite undo in some cases
- build improvements for deb packages (Thanks to Albert Gräf)
- shorter console messages for legacy tk gui commands (Thanks to Albert Gräf)
- determistic build of deb packages with l2ork_addons/tar_em_up.sh
- you can now use the build instructions to build a binary on Windows with
msys2 - updated moocow and some iem libraries
- fixed bug where the window menus weren't inheriting the OS theme correctly
on GNU/Linux distros
Lots of changes in this one, so expect-- and please report-- lots of bugs to
git.purrdata.net
Binaries:
Finally:
Albert Gräf added an AUR package here
"This always builds from the latest git sources and can be used as a drop-in replacement for the pd-l2ork or pd-l2ork-git package. Just run yaourt -S purr-data-git
and you should be set (be patient, this package takes quite a while to build)."
[ntof] and [fton]
They're like [mtof] and [ftom], but now the objects accept 2 parameters:
- the reference pitch for middle A (default value is 440)
- the number of tones (default value is 12)
So let's say you want your reference pitch to be 432, considered by some to be a more mellow frequency, you would write:
- [ntof 432]
and to split an octave into just 8 distinct tones instead of the most conventional 12, you'd write:
- [ntof 432 8]
You can change these values after instantiation by using messages:
- [ref $1(
- changes the reference pitch
- [tet $1(
- changes the number of tones (in equal temperament)
It also comes with two counter objects: [cupq], and [cupqb]
[cupq] has three inlets:
- left inlet decrements
- right inlet increments
- middle inlet changes the step size.
[cupqb] is similar, but it includes an atom box, allowing you to slide the current count. It has two inlets:
- first inlet receives [+ $1( and [- $1( messages
- second inlet controls the step size.
[cupq] and [cupqb] are .pd files, so there's actually more you can do with them than what I've specified here.
These files are also on my github page under pd-externals.
EDIT: My musical scale object [muse] now also takes advantage of the ref and tet messages. Its help file allows you to play around with these features. The files have now also been added to the zip.
Ewolverine 4 U
New version 5.5:
- added advanced functionality to the Splicer that allows you to randomize custom sections of parameters, if you want to evolve only some parts of your synthesizer (eg envelopes)
- added MIDI implementation for custom parameter-section randomizer
- tidied up the optical appearance
- updated the Help-subpatch
EWOLVERINE v.5.5 by Henry Dalcke.pd
Plans:
- automatic target driven selection mechanism that listens to the audio output of your instruments and decides which sounds are the closest to a target sample sound you feed Ewolverine with
- storage for user SPLICER pattern
- 4 more random sounds per set (A/B) to select from
- discontinuous MIDI messaging interrupted by assignment switching CC events
- possibility to interpolate between new random population sounds to smoothly re-direct the modwheel-morphing path while morphing
[muse] -- float array that acts like a musical scale
Creates music scales using simple lists or by sending new pitches to individual notes. The more creation arguments there are, the more inlets there will be. It sends a frequency value through the 1st outlet and the unaltered midi value through the 2nd outlet.
- [muse 40 4 7]
- Sending 0, 1, 2 returns 40, 44, 47 respectively.
- The scale cycles through higher and lower octaves
- 3, 4, 5 returns 52, 56, 59
- -1, -2, -3 returns 35, 32, 28
functions:
- [list | l | d | x | i ..(
- Takes a list of numbers and maps the values to the array.
- Any non-numeric values are skipped over.
- They're basically all the same function, with the differences being in their offsets and/or whether it should change the size of the scale implicitly based on list size.
-- i is an implicit list, which changes the size of the scale based on the number of arguments specified.
-- x is an explicit list, which means that it doesn't change the scale size because it's leaving that up to the user to change explicitly. This message is also good for changing the root note.
-- list or l is the default list, and whether it interprets lists implicitly or explicitly is based on whether the toggle "exp" is set to 1 or 0. By default, lists are interpreted implicitly.
-- d has an offset of 1. It's basically a short form of [list d ...( or, a list that skips the root note. Like a normal list, it also adheres to the "exp" toggle to determine whether it is implicit or explicit.
- [exp 1|0(
- sets a boolean to determine whether or not scale size is implied in the size of lists sent.
- if exp equals 1, scale size will not change, unless the list is preceded by i.
- if exp equals 0, scale size will change, unless the list is preceded by x.
- [n $1(
- sets the size of the scale.
- the scale by default, with no creation arguments, is only 2 float values. This amount grows based on how many arguments are specified. but the array also resizes itself automatically to twice its original size whenever a size requested goes over the current maximum range.
- the same doubling effect applies to lists with more arguments than the maximum scale size.
-- [muse 40 2 4 5 7 9 11] has 7 floats worth of bytes reserved for the scale.
-- upon receiving [n 16(, since 16 is greater than (7 x 2), scale is resized to hold 16 floats.
-- upon receiving [n 17(, scale is resized to hold 32 floats. This doesn't mean the scale uses all 32 notes, but the space is now reserved if you ever decide to increase the scale size later.
- sets the size of the scale.
- [set $2 $1(
- scale is assigned the value $1 at index $2.
-- [set 6 11( set the 6th interval to 11.
- scale is assigned the value $1 at index $2.
- [ref $1(
- sets the reference pitch of middle A.
-- default value is 440.
- sets the reference pitch of middle A.
- [tet $1(
- assign the number of tones in an octave.
-- tones refer to how large a semi-tone needs to be in order to evenly disperse an octave into a specific amount of distinct pitches.
- assign the number of tones in an octave.
- [oct $1(
- assign the number of notes in an octave.
-- notes refer to the number of semi-tones that the scale should jump when going to the next or previous octave.
- assign the number of notes in an octave.
- [octet $1( / [ot $1(
- assigns # of notes and # of tones simultaneously
- [peek label(
- prints the current scale.
- a label is optional.
- [ptr label(
- prints the current size of the float pointer that your scale uses. It isn't necessarily the same size as the scale itself.
ALFALOOP 0.1.2
Hi everyone!
Thanks to you all for this great forum.
I sure learned a lot here! I'm glad to finally present some work of mine, too...
ALFALOOP is a dynamic looper I've developed with PD Vanilla 0.42.6.
I call it a "non-sticky looper" since it allows you to change its loop-length at any time.
ALFALOOP let's you do basically anything related to looping, such as:
- super short loops of a few milliseconds (that would be a delay...)
- volume-control of the loop in a delayish way (feedback). This results in a "forgettable" looper.
- recording while overdubbing and vice-versa
- free time-shift (make your loop shorter/longer, incl. adjustment of the level of the previous recordings)
- sidechain-compressing of the loop by the input-signal
- proper latency-correction
- etc...
ALFALOOP has four main-buttons: recording, overdubbing, feedback and ducking.
If you assign these four buttons to midi-controllers, you don't need to watch the computers
screen. Everything can be achieved by using these four controllers. You can assign midi or key controllers simply by "touching" like in Ableton and such.
There are plenty of settings-parameters to play around with, like:
- crossfade-length
- crossfade-offset
- fade-in/out-time of the input-signal
- fade-in/out-time of the previous recording while overdubbing (ducking-level)
- automated overdubbing (threshold)
- pre-recording-time (like: 50ms before you hit your controller, scary, isn't it?)
- etc..
All the settings get stored automatically.
My goal was that people with little knowledge of PureData (or computers in general) can easily use it too. ALFALOOP features a lot of on-screen-info.
To make sure the GUI looks more or less the same on every platform only canvases were used as visible gui-objects. I did my best to clean everything up and make it look neat...
The main-engine is a built out of a mixture of delays and tables. In a future release, I will document the subpatches.
There is still a lot to do, of course. But now I feel more like making some music...
You can download ALFALOOP and get some further information at:
https://www.marcobaumgartner.com/#puredata/ALFALOOP
Have fun!
Marco
Interaction Design Student Patches Available
Greetings all,
I have just posted a collection of student patches for an interaction design course I was teaching at Emily Carr University of Art and Design. I hope that the patches will be useful to people playing around with Pure Data in a learning environment, installation artwork and other uses.
The link is: http://bit.ly/8OtDAq
or: http://www.sfu.ca/~leonardp/VideoGameAudio/main.htm#patches
The patches include multi-area motion detection, colour tracking, live audio looping, live video looping, collision detection, real-time video effects, real-time audio effects, 3D object manipulation and more...
Cheers,
Leonard
Pure Data Interaction Design Patches
These are projects from the Emily Carr University of Art and Design DIVA 202 Interaction Design course for Spring 2010 term. All projects use Pure Data Extended and run on Mac OS X. They could likely be modified with small changes to run on other platforms as well. The focus was on education so the patches are sometimes "works in progress" technically but should be quite useful for others learning about PD and interaction design.
NOTE: This page may move, please link from: http://www.VideoGameAudio.com for correct location.
Instructor: Leonard J. Paul
Students: Ben, Christine, Collin, Euginia, Gabriel K, Gabriel P, Gokce, Huan, Jing, Katy, Nasrin, Quinton, Tony and Sandy
GabrielK-AsteroidTracker - An entire game based on motion tracking. This is a simple arcade-style game in which the user must navigate the spaceship through a field of oncoming asteroids. The user controls the spaceship by moving a specifically coloured object in front of the camera.
Features: Motion tracking, collision detection, texture mapping, real-time music synthesis, game logic
GabrielP-DogHead - Maps your face from the webcam onto different dog's bodies in real-time with an interactive audio loop jammer. Fun!
Features: Colour tracking, audio loop jammer, real-time webcam texture mapping
Euginia-DanceMix - Live audio loop playback of four separate channels. Loop selection is random for first two channels and sequenced for last two channels. Slow volume muting of channels allows for crossfading. Tempo-based video crossfading.
Features: Four channel live loop jammer (extended from Hardoff's ma4u patch), beat-based video cross-cutting
Huan-CarDance - Rotates 3D object based on the audio output level so that it looks like it's dancing to the music.
Features: 3D object display, 3d line synthesis, live audio looper
Ben-VideoGameWiiMix - Randomly remixes classic video game footage and music together. Uses the wiimote to trigger new video by DarwiinRemote and OSC messages.
Features: Wiimote control, OSC, tempo-based video crossmixing, music loop remixing and effects
Christine-eMotionAudio - Mixes together video with recorded sounds and music depending on the amount of motion in the webcam. Intensity level of music increases and speed of video playback increases with more motion.
Features: Adaptive music branching, motion blur, blob size motion detection, video mixing
Collin-LouderCars - Videos of cars respond to audio input level.
Features: Video switching, audio input level detection.
Gokce-AVmixer - Live remixing of video and audio loops.
Features: video remixing, live audio looper
Jing-LadyGaga-ing - Remixes video from Lady Gaga's videos with video effects and music effects.
Features: Video warping, video stuttering, live audio looper, audio effects
KatyC_Bunnies - Triggers video and audio using multi-area motion detection. There are three areas on each side to control the video and audio loop selections. Video and audio loops are loaded from directories.
Features: Multi-area motion detection, audio loop directory loader, video loop directory loader
Nasrin-AnimationMixer - Hand animation videos are superimposed over the webcam image and chosen by multi-area motion sensing. Audio loop playback is randomly chosen with each new video.
Features: Multi-area motion sensing, audio loop directory loader
Quintons-AmericaRedux - Videos are remixed in response to live audio loop playback. Some audio effects are mirrored with corresponding video effects.
Features: Real-time video effects, live audio looper
Tony-MusicGame - A music game where the player needs to find how to piece together the music segments triggered by multi-area motion detection on a webcam.
Features: Multi-area motion detection, audio loop directory loader
Sandy-Exerciser - An exercise game where you move to the motions of the video above the webcam video. Stutter effects on video and live audio looper.
Features: Video stutter effect, real-time webcam video effects
Export patch as rtas?
@Maelstorm said:
If you're on OSX, jack can be used as an insert plug-in so you can avoid the separate tracks, but you still get the latency.
which you can, depending on your host, eliminate by setting the track delay for the track with the plugin. So if the buffer is 512 sample/11.82 ms then set the delay to that and it should be spot on.
I've had the whole Jack graph latency explained to me numerous times by Stephane Letz and it still doesn't go in.....Heres what he told me...
> > Its the Pd > JAck > Ableton latency. (Ableton has otoh 3 different
> > ways of manually setting latency compensation - I'm just not very
> > clear on where to start with regards to input from JAck)
> >>>>
>
> This is NO latency introduced in a Pd > JAck > Ableton kind of
> chain; the JACK server activate each client in turn (that is Pd *then*
> Ableton in this case) in the *same* given audio cycle.
>
> Remember : the JACK server is able to "sort" (in some way) the graph
> of all connected clients to activate each client audio callback at the
> right place during the audio cycle. For example:
>
> 1) in a sequential kind of graph like IN ==> A ==> B ==> C ==> OUT,
> JACK server will activate A (which would typically consume new audio
> buffers available in machine audio IN drivers) then activate B (which
> would typically consume "output" just produced by A) , then activate
> C , then produce the machine OUT audio buffers.
>
> 2) in a graph will parallel sub-graph like : IN ==> A ==> B ==> C
> ==> OUT and IN ==> D ==> B ==> C ==> OUT (that is both A and D are
> connected to input and send to, then JACK server is able to
> activate A and D at the same time (since the both only depends of IN)
> and a multi-core machine will typically run A and D at the same time
> on 2 different cores. Then when A *and* D are finished, B can be
> activated... and so on.
>
> The input/output latency of a usual CoreAudio application running
> is: driver input latency + driver input latency offset + 2
> application buffer-size + driver output latency + driver output
> latency offset.
>
this next part is the important bit i think...
> For a graph of JACK clients: driver input latency + driver input
> latency offset + 2 JACK Server buffer-size + ( one extra buffer-
> size ) + driver output latency + driver output latency offset.
>
> (Note : there is an additional one extra buffer-size latency on OSX,
> since the JACK server is running in the so called "asynchronous" mode
> [there is also a "synchronous" mode without this one extra buffer-size
> available, but it is less reliable on OSX and we choose to use the
> "asynchronous" mode by default.])
>
> Stephane
>
Pd sound editor 0.0.1
here is the text... seems to be my only option.
#N canvas 0 22 1280 737 10;
#N canvas 777 105 398 583 codey-code 0;
#N canvas 115 48 1154 665 zoom 0;
#X obj 881 70 r \$0-filesize;
#X obj 854 227 s \$0-length;
#X obj 944 158 s \$0-windowsize;
#X msg 873 173 0;
#X obj 872 196 s \$0-selectstart-r;
#X msg 903 153 1;
#X obj 855 125 t f b b f;
#X obj 901 176 s \$0-selectend-r;
#X obj 136 559 pack 0 0;
#X obj 181 530 tabread original-R;
#X obj 136 582 s -RIGHT;
#X obj 126 507 tabread original-L;
#X obj 80 535 pack 0 0;
#X obj 80 558 s -LEFT;
#X obj 96 175 r \$0-length;
#N canvas 0 22 462 312 untils 0;
#X obj 261 160 f;
#X obj 288 162 + 1;
#X obj 261 138 until;
#X msg 299 132 0;
#X obj 261 107 t f b;
#X obj 261 78 inlet;
#X obj 261 190 outlet;
#X connect 0 0 1 0;
#X connect 0 0 6 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 4 0 2 0;
#X connect 4 1 3 0;
#X connect 5 0 4 0;
#X restore 37 343 pd untils;
#X msg 38 322 16000;
#X obj 673 317 *;
#X obj 37 365 t f f;
#X obj 124 431 *;
#X obj 97 279 / 16000;
#X obj 190 145 r \$0-filesize;
#X obj 175 176 *;
#X text 195 89 fraction of file to graph;
#X obj 891 332 s \$0-offset;
#X obj 860 338 -;
#X obj 860 300 t b f;
#X obj 860 252 r \$0-selectstart;
#X obj 891 276 r \$0-selectend;
#X obj 673 363 s \$0-zoomfraction;
#X obj 176 69 r \$0-zoomfraction;
#X obj 12 299 t b b;
#X obj 11 499 s \$0-done;
#X obj 123 467 +;
#X obj 159 6 r \$0-zoom2sel;
#X obj 715 315 r \$0-zoomfraction;
#X text 158 311 start position (0->filesize);
#X obj 158 429 *;
#X obj 229 367 r \$0-filesize;
#X obj 859 359 s \$0-fraction;
#X obj 685 194 r \$0-fraction;
#X msg 717 255 1;
#X obj 717 275 t f f;
#X obj 672 230 f;
#X obj 161 106 f;
#X obj 471 290 f;
#X obj 495 395 s \$0-zoomoffset;
#X obj 485 234 r \$0-offset;
#X obj 486 262 *;
#X obj 471 168 t b b;
#X obj 496 366 +;
#X msg 570 326 0;
#X obj 159 333 r \$0-zoomoffset;
#X msg 531 327 0;
#X obj 260 405 r \$0-filein;
#X msg 260 427 0;
#X obj 81 205 f;
#X obj 80 243 t b f;
#X obj 58 120 r \$0-filein;
#X obj 59 143 t b;
#X obj 542 282 r \$0-length;
#X obj 543 304 t b b b;
#X msg 89 146 1;
#X obj 83 70 r \$0-zoomed;
#X obj 563 236 r \$0-zoomfraction;
#X msg 220 265 0;
#X obj 219 288 s \$0-selectstart-r;
#X msg 250 245 1;
#X obj 248 268 s \$0-selectend-r;
#X obj 218 219 t b b;
#X obj 160 28 t b b b;
#X obj 535 367 r \$0-zoomoffset;
#X obj 533 65 r \$0-zoom100;
#X obj 532 89 t b b b;
#X obj 855 100 f;
#X obj 851 39 r \$0-filein;
#X obj 468 457 r \$0-fraction;
#X obj 635 462 r \$0-offset;
#X obj 502 481 r \$0-zoomfraction;
#X obj 468 537 *;
#X obj 468 561 s \$0-sel-fraction;
#X obj 502 503 t b f;
#X obj 656 546 *;
#X obj 690 512 t b f;
#X obj 656 598 s \$0-sel-offset;
#X obj 713 461 r \$0-zoomfraction;
#X obj 656 571 +;
#X obj 700 547 r \$0-zoomoffset;
#N canvas 455 151 506 362 wrapend 0;
#X obj 329 69 r \$0-zoomfraction;
#X obj 289 102 +;
#X obj 285 69 t b f;
#X obj 197 104 r \$0-filesize;
#X obj 204 215 -;
#X obj 287 124 t b f;
#X obj 222 155 *;
#X obj 214 185 t b f;
#X obj 204 241 moses 0;
#X obj 190 265 +;
#X obj 181 43 inlet;
#X obj 185 66 t f f;
#X obj 191 291 outlet;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 5 1 6 1;
#X connect 6 0 7 0;
#X connect 7 0 4 0;
#X connect 7 1 4 1;
#X connect 8 0 9 1;
#X connect 9 0 12 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 11 1 2 0;
#X restore 288 595 pd wrapend;
#X obj 288 619 t b f;
#X text 326 613 *finds the end of the file;
#X connect 0 0 74 1;
#X connect 3 0 4 0;
#X connect 5 0 7 0;
#X connect 6 0 1 0;
#X connect 6 1 3 0;
#X connect 6 2 5 0;
#X connect 6 3 2 0;
#X connect 8 0 10 0;
#X connect 9 0 8 1;
#X connect 11 0 12 1;
#X connect 12 0 13 0;
#X connect 14 0 56 1;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 29 0;
#X connect 18 0 12 0;
#X connect 18 0 8 0;
#X connect 18 1 19 0;
#X connect 19 0 33 0;
#X connect 20 0 19 1;
#X connect 21 0 22 1;
#X connect 22 0 57 0;
#X connect 25 0 39 0;
#X connect 26 0 25 0;
#X connect 26 1 25 1;
#X connect 26 1 24 0;
#X connect 27 0 26 0;
#X connect 28 0 25 0;
#X connect 30 0 44 1;
#X connect 31 0 32 0;
#X connect 31 1 16 0;
#X connect 33 0 11 0;
#X connect 33 0 9 0;
#X connect 34 0 70 0;
#X connect 35 0 17 1;
#X connect 37 0 33 1;
#X connect 38 0 37 1;
#X connect 40 0 43 1;
#X connect 41 0 42 0;
#X connect 42 0 17 0;
#X connect 42 1 17 1;
#X connect 43 0 17 0;
#X connect 44 0 22 0;
#X connect 45 0 50 0;
#X connect 47 0 48 0;
#X connect 48 0 45 1;
#X connect 49 0 45 0;
#X connect 49 1 43 0;
#X connect 50 0 46 0;
#X connect 51 0 50 1;
#X connect 51 0 48 0;
#X connect 52 0 37 0;
#X connect 53 0 50 0;
#X connect 54 0 55 0;
#X connect 55 0 33 1;
#X connect 56 0 57 0;
#X connect 57 0 31 0;
#X connect 57 1 20 0;
#X connect 58 0 59 0;
#X connect 59 0 56 0;
#X connect 59 0 62 0;
#X connect 60 0 61 0;
#X connect 61 0 53 0;
#X connect 61 1 51 0;
#X connect 61 2 41 0;
#X connect 62 0 44 1;
#X connect 63 0 44 0;
#X connect 64 0 48 1;
#X connect 65 0 66 0;
#X connect 67 0 68 0;
#X connect 69 0 65 0;
#X connect 69 1 67 0;
#X connect 70 0 69 0;
#X connect 70 1 44 0;
#X connect 70 2 49 0;
#X connect 71 0 50 1;
#X connect 72 0 73 0;
#X connect 73 0 59 0;
#X connect 73 2 74 0;
#X connect 74 0 6 0;
#X connect 75 0 74 0;
#X connect 76 0 79 0;
#X connect 77 0 82 0;
#X connect 78 0 81 0;
#X connect 79 0 80 0;
#X connect 81 0 79 0;
#X connect 81 1 79 1;
#X connect 82 0 86 0;
#X connect 83 0 82 0;
#X connect 83 1 82 1;
#X connect 85 0 83 0;
#X connect 86 0 84 0;
#X connect 87 0 86 1;
#X connect 88 0 89 0;
#X restore 78 412 pd zoom;
#N canvas 0 22 793 420 file 0;
#X obj 51 115 soundfiler;
#X obj 52 59 openpanel;
#X msg 54 83 read -resize \$1 original-L original-R;
#X obj 77 170 s \$0-filesize;
#X obj 56 35 r \$0-openfile;
#X obj 51 136 t b f;
#X obj 55 193 s \$0-filein;
#X obj 573 16 table original-L;
#X obj 573 39 table original-R;
#X obj 562 116 table clipboard-L;
#X obj 561 139 table clipboard-R;
#X obj 303 128 soundfiler;
#X msg 306 96 write \$1 original-L original-R;
#X obj 308 48 r \$0-savefile;
#X obj 304 72 savepanel;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 4 0 1 0;
#X connect 5 0 6 0;
#X connect 5 1 3 0;
#X connect 12 0 11 0;
#X connect 13 0 14 0;
#X connect 14 0 12 0;
#X restore 72 96 pd file;
#N canvas 327 88 808 653 zoom+scroll 0;
#X obj 154 353 s \$0-zoomoffset;
#X obj 127 329 t b f;
#X obj 126 374 s \$0-zoomed;
#X obj 166 187 r \$0-zoomfraction;
#X obj 118 208 *;
#X obj 127 273 +;
#X obj 156 251 r \$0-zoomoffset;
#X obj 129 300 max 0;
#X obj 11 13 r \$0-goleft;
#X obj 95 13 r \$0-goright;
#X obj 572 98 r \$0-zoomfraction;
#X obj 555 261 clip 0 1;
#X obj 603 307 s \$0-zoomfraction;
#X obj 594 334 s \$0-zoomed;
#X obj 490 21 r \$0-zoomin;
#X obj 568 22 r \$0-zoomout;
#X msg 570 69 2;
#X msg 491 71 0.5;
#X obj 584 539 s \$0-selectend-r;
#X obj 555 512 s \$0-selectstart-r;
#X obj 566 394 r \$0-selectstart;
#X obj 599 417 r \$0-selectend;
#X obj 585 455 *;
#X obj 556 281 t f b f;
#X obj 536 340 t f f;
#X obj 522 108 * 1;
#X obj 521 133 *;
#X obj 525 198 t f f;
#X obj 554 456 *;
#X obj 506 314 expr 1/$f1;
#X obj 115 46 r \$0-nudgeleft;
#X obj 178 71 r \$0-nudgeright;
#X msg 11 57 -0.0625;
#X msg 74 60 0.0625;
#X msg 116 89 -0.015625;
#X msg 177 93 0.015625;
#X msg 282 107 -0.000976562;
#X msg 366 123 0.000976562;
#X obj 281 63 r \$0-nudgeleft2;
#X obj 368 102 r \$0-nudgeright2;
#X obj 525 162 clip 0 1;
#X connect 1 0 2 0;
#X connect 1 1 0 0;
#X connect 3 0 4 1;
#X connect 4 0 5 0;
#X connect 5 0 7 0;
#X connect 6 0 5 1;
#X connect 7 0 1 0;
#X connect 8 0 32 0;
#X connect 9 0 33 0;
#X connect 10 0 26 1;
#X connect 11 0 23 0;
#X connect 14 0 17 0;
#X connect 15 0 16 0;
#X connect 16 0 25 0;
#X connect 17 0 25 0;
#X connect 20 0 28 1;
#X connect 21 0 22 1;
#X connect 22 0 18 0;
#X connect 23 1 13 0;
#X connect 23 2 12 0;
#X connect 24 0 28 0;
#X connect 24 1 22 0;
#X connect 25 0 26 0;
#X connect 26 0 40 0;
#X connect 27 0 29 0;
#X connect 27 1 11 0;
#X connect 28 0 19 0;
#X connect 29 0 24 0;
#X connect 30 0 34 0;
#X connect 31 0 35 0;
#X connect 32 0 4 0;
#X connect 33 0 4 0;
#X connect 34 0 4 0;
#X connect 35 0 4 0;
#X connect 36 0 4 0;
#X connect 37 0 4 0;
#X connect 38 0 36 0;
#X connect 39 0 37 0;
#X connect 40 0 27 0;
#X restore 79 432 pd zoom+scroll;
#N canvas 556 91 708 661 playselection 0;
#X obj 201 597 dac~;
#X obj 150 481 tabread4~ original-L;
#X obj 290 480 tabread4~ original-R;
#X obj 231 185 r \$0-playbackspeed;
#X obj 235 232 tabread \$0-arc;
#X obj 489 516 switch~;
#X msg 475 485 0;
#X msg 520 494 1;
#X obj 55 396 +~;
#X obj 371 143 t f f;
#X obj 299 314 pipe 5;
#X obj 376 323 vline~;
#X obj 179 536 *~;
#X obj 280 538 *~;
#X msg 374 295 0 4 \, 1 5 7;
#X obj 230 207 + 200;
#X obj 50 263 f;
#X msg 35 192 1;
#X obj 49 284 pack 0 1;
#X obj 47 362 vline~;
#X obj 128 88 *;
#X obj 143 29 r \$0-filesize;
#X obj 267 80 *;
#X obj 284 35 r \$0-filesize;
#X obj 267 15 r \$0-sel-offset;
#X obj 126 9 r \$0-sel-fraction;
#X obj 127 56 t b f;
#X obj 266 56 t b f;
#X obj 179 317 >=;
#X obj 180 342 sel 1;
#X obj 49 236 metro 1;
#X msg 196 151 0;
#X obj 37 149 t b b;
#X msg 48 336 \$1 1;
#X msg 94 326 \$1 1;
#X obj 96 354 line 0 0.01;
#X obj 182 401 s \$0-loopit;
#X obj 16 83 r \$0-loopit;
#X obj 78 263 + 44.1;
#X obj 234 257 * 44.1;
#X obj 411 371 - 1;
#X obj 412 394 abs;
#X obj 182 376 spigot 0;
#X obj 370 416 spigot 1;
#X obj 438 329 r \$0-loopsel;
#X obj 467 126 s \$0-playbackspeed-r;
#X msg 469 106 300;
#X obj 467 9 r \$0-playback-norm;
#X obj 489 65 r \$0-arcmade;
#X obj 38 128 r \$0-playnow;
#X obj 567 202 r \$0-play;
#X obj 591 279 s \$0-playnow;
#X obj 571 253 sel 0 1;
#X obj 568 226 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0
1;
#X msg 528 395 set 0;
#X floatatom 214 299 5 0 0 0 - - -;
#X connect 1 0 12 0;
#X connect 2 0 13 0;
#X connect 3 0 15 0;
#X connect 4 0 39 0;
#X connect 6 0 5 0;
#X connect 6 0 30 0;
#X connect 6 0 54 0;
#X connect 7 0 5 0;
#X connect 8 0 1 0;
#X connect 8 0 2 0;
#X connect 9 0 10 0;
#X connect 9 1 14 0;
#X connect 10 0 8 1;
#X connect 11 0 12 1;
#X connect 11 0 13 1;
#X connect 12 0 0 0;
#X connect 13 0 0 1;
#X connect 14 0 11 0;
#X connect 15 0 4 0;
#X connect 16 0 18 0;
#X connect 16 0 38 0;
#X connect 17 0 30 0;
#X connect 18 0 33 0;
#X connect 18 0 34 0;
#X connect 19 0 8 0;
#X connect 20 0 28 1;
#X connect 21 0 20 0;
#X connect 22 0 9 0;
#X connect 23 0 22 0;
#X connect 24 0 27 0;
#X connect 25 0 26 0;
#X connect 26 0 20 0;
#X connect 26 1 20 1;
#X connect 27 0 22 0;
#X connect 27 1 22 1;
#X connect 28 0 29 0;
#X connect 29 0 42 0;
#X connect 29 0 43 0;
#X connect 30 0 16 0;
#X connect 31 0 16 1;
#X connect 31 0 19 0;
#X connect 31 0 35 0;
#X connect 32 0 17 0;
#X connect 32 1 31 0;
#X connect 32 1 7 0;
#X connect 33 0 19 0;
#X connect 34 0 35 0;
#X connect 35 0 28 0;
#X connect 37 0 32 0;
#X connect 38 0 16 1;
#X connect 39 0 38 1;
#X connect 39 0 55 0;
#X connect 40 0 41 0;
#X connect 41 0 43 1;
#X connect 42 0 36 0;
#X connect 43 0 6 0;
#X connect 44 0 42 1;
#X connect 44 0 40 0;
#X connect 46 0 45 0;
#X connect 47 0 46 0;
#X connect 48 0 46 0;
#X connect 49 0 32 0;
#X connect 50 0 53 0;
#X connect 52 0 6 0;
#X connect 52 1 51 0;
#X connect 53 0 52 0;
#X connect 54 0 53 0;
#X restore 160 182 pd playselection;
#N canvas 0 22 541 518 tan-arc 0;
#X obj 201 115 f;
#X obj 229 114 + 1;
#X obj 203 85 until;
#X obj 201 140 t f f;
#X msg 269 87 0;
#X obj 132 2 loadbang;
#X obj 128 246 expr pow($f1 \, 3);
#X obj 127 205 - 0.5;
#X obj 129 225 * 2;
#X obj 127 183 / 1000;
#X msg 129 24 1000;
#X obj 134 290 expr pow(1000 \, $f1);
#X obj 285 285 expr tanh($f1);
#X obj 358 154 f;
#X obj 386 153 + 1;
#X obj 360 124 until;
#X obj 285 249 - 5;
#X obj 358 179 t f f;
#X msg 426 126 0;
#X obj 363 72 loadbang;
#X msg 360 93 100000;
#X obj 285 222 / 10000;
#X obj 326 339 tabwrite \$0-tanh;
#X obj 143 353 tabwrite \$0-arc;
#X obj 161 376 table \$0-arc 1000;
#X obj 323 370 table \$0-tanh 100000;
#X obj 131 47 t b f;
#X obj 44 173 s \$0-arcmade;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 9 0;
#X connect 3 1 23 1;
#X connect 4 0 0 1;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 7 0 8 0;
#X connect 8 0 6 0;
#X connect 9 0 7 0;
#X connect 10 0 26 0;
#X connect 11 0 23 0;
#X connect 12 0 22 0;
#X connect 13 0 14 0;
#X connect 13 0 17 0;
#X connect 14 0 13 1;
#X connect 15 0 13 0;
#X connect 16 0 12 0;
#X connect 17 0 21 0;
#X connect 17 1 22 1;
#X connect 18 0 13 1;
#X connect 19 0 20 0;
#X connect 20 0 15 0;
#X connect 21 0 16 0;
#X connect 26 0 27 0;
#X connect 26 1 2 0;
#X restore 209 94 pd tan-arc;
#N canvas 0 22 764 631 delete 0;
#X obj 455 164 r \$0-filesize;
#X obj 441 211 *;
#X obj 454 187 t b f;
#X obj 385 52 r \$0-filesize;
#X obj 371 99 *;
#X obj 369 151 +;
#X obj 369 125 * -1;
#X obj 383 75 t b f f;
#X obj 352 299 moses 1000;
#X obj 261 139 f;
#X obj 260 160 moses 1;
#X obj 339 241 f;
#X obj 367 241 + 1;
#X obj 340 208 until;
#X obj 340 181 t f f b;
#X msg 378 209 0;
#X obj 535 234 r \$0-filesize;
#X obj 521 281 *;
#X obj 533 257 t b f f;
#X obj 409 327 +;
#X obj 396 359 tabread original-L;
#X obj 402 398 tabread original-R;
#X obj 325 271 t f f;
#X obj 326 442 s original-L;
#X obj 353 519 s original-R;
#X obj 326 414 pack 0 0;
#X obj 353 496 pack 0 0;
#X msg 231 329 resize \$1;
#X obj 241 193 f;
#X obj 239 354 s original-R;
#X obj 222 375 s original-L;
#X obj 511 209 r \$0-sel-fraction;
#X obj 438 144 r \$0-sel-offset;
#X obj 361 28 r \$0-sel-fraction;
#X obj 244 106 t b b b;
#X obj 142 322 s \$0-filesize;
#X obj 219 234 t f f;
#X obj 106 217 s \$0-refresh;
#X obj 225 57 t b b;
#X obj 222 31 r \$0-delete;
#X obj 251 80 s \$0-sendundo;
#X connect 0 0 2 0;
#X connect 1 0 8 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 7 0;
#X connect 4 0 6 0;
#X connect 5 0 9 1;
#X connect 5 0 28 1;
#X connect 6 0 5 0;
#X connect 7 0 4 0;
#X connect 7 1 4 1;
#X connect 7 2 5 1;
#X connect 8 0 20 0;
#X connect 8 0 21 0;
#X connect 8 1 19 0;
#X connect 9 0 10 0;
#X connect 10 1 14 0;
#X connect 11 0 12 0;
#X connect 11 0 22 0;
#X connect 12 0 11 1;
#X connect 13 0 11 0;
#X connect 14 0 13 0;
#X connect 14 2 15 0;
#X connect 15 0 11 1;
#X connect 16 0 18 0;
#X connect 17 0 19 1;
#X connect 18 0 17 0;
#X connect 18 1 17 1;
#X connect 19 0 20 0;
#X connect 19 0 21 0;
#X connect 20 0 25 1;
#X connect 21 0 26 1;
#X connect 22 0 25 0;
#X connect 22 0 26 0;
#X connect 22 1 8 0;
#X connect 25 0 23 0;
#X connect 26 0 24 0;
#X connect 27 0 29 0;
#X connect 27 0 30 0;
#X connect 28 0 36 0;
#X connect 31 0 17 0;
#X connect 32 0 1 0;
#X connect 33 0 4 0;
#X connect 34 0 37 0;
#X connect 34 1 28 0;
#X connect 34 2 9 0;
#X connect 36 0 35 0;
#X connect 36 1 27 0;
#X connect 38 0 34 0;
#X connect 38 1 40 0;
#X connect 39 0 38 0;
#X restore 172 292 pd delete;
#N canvas 178 115 455 651 silence 0;
#X obj 132 142 r \$0-filesize;
#X obj 118 189 *;
#X obj 131 165 t b f;
#X obj 237 145 r \$0-filesize;
#X obj 223 192 *;
#X obj 236 168 t b f;
#X obj 101 226 f;
#X obj 102 278 f;
#X obj 152 407 f;
#X obj 180 407 + 1;
#X obj 103 253 t b f;
#X obj 153 374 until;
#X obj 113 324 moses 1;
#X obj 153 347 t f f b;
#X msg 191 375 0;
#X obj 14 31 t b b b;
#X obj 114 122 r \$0-sel-offset;
#X obj 213 121 r \$0-sel-fraction;
#X obj 12 6 r \$0-silence;
#X obj 99 549 s original-L;
#X obj 202 548 s original-R;
#X obj 116 481 pack 0 0;
#X obj 205 515 pack 0 0;
#X obj 151 448 +;
#X obj 9 252 s \$0-refresh;
#X obj 59 61 s \$0-sendundo;
#X connect 0 0 2 0;
#X connect 1 0 6 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 5 0;
#X connect 4 0 7 1;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 10 0;
#X connect 7 0 12 0;
#X connect 8 0 9 0;
#X connect 8 0 23 0;
#X connect 9 0 8 1;
#X connect 10 0 7 0;
#X connect 10 1 23 1;
#X connect 11 0 8 0;
#X connect 12 1 13 0;
#X connect 13 0 11 0;
#X connect 13 2 14 0;
#X connect 14 0 8 1;
#X connect 15 0 24 0;
#X connect 15 1 6 0;
#X connect 15 2 25 0;
#X connect 16 0 1 0;
#X connect 17 0 4 0;
#X connect 18 0 15 0;
#X connect 21 0 19 0;
#X connect 22 0 20 0;
#X connect 23 0 21 0;
#X connect 23 0 22 0;
#X restore 172 316 pd silence;
#N canvas 0 22 703 683 refresh 0;
#X obj 254 522 pack 0 0;
#X obj 299 493 tabread original-R;
#X obj 254 545 s -RIGHT;
#X obj 244 470 tabread original-L;
#X obj 198 498 pack 0 0;
#X obj 198 521 s -LEFT;
#N canvas 0 22 462 312 untils 0;
#X obj 261 160 f;
#X obj 288 162 + 1;
#X obj 261 138 until;
#X msg 299 132 0;
#X obj 261 107 t f b;
#X obj 261 78 inlet;
#X obj 261 190 outlet;
#X connect 0 0 1 0;
#X connect 0 0 6 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 4 0 2 0;
#X connect 4 1 3 0;
#X connect 5 0 4 0;
#X restore 155 306 pd untils;
#X msg 156 285 16000;
#X obj 155 328 t f f;
#X obj 242 394 *;
#X obj 215 242 / 16000;
#X obj 130 262 t b b;
#X obj 241 430 +;
#X text 276 307 start position (0->filesize);
#X obj 276 392 *;
#X obj 291 368 r \$0-filesize;
#X obj 277 329 r \$0-zoomoffset;
#X obj 378 368 r \$0-filein;
#X msg 378 390 0;
#X obj 202 169 f;
#X obj 198 206 t b f;
#X obj 275 82 r \$0-filesize;
#X obj 261 129 *;
#X obj 274 105 t b f;
#X obj 250 58 r \$0-zoomfraction;
#X obj 145 82 r \$0-refresh;
#X obj 147 111 t b b;
#X connect 0 0 2 0;
#X connect 1 0 0 1;
#X connect 3 0 4 1;
#X connect 4 0 5 0;
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 4 0;
#X connect 8 0 0 0;
#X connect 8 1 9 0;
#X connect 9 0 12 0;
#X connect 10 0 9 1;
#X connect 11 1 7 0;
#X connect 12 0 3 0;
#X connect 12 0 1 0;
#X connect 14 0 12 1;
#X connect 15 0 14 1;
#X connect 16 0 14 0;
#X connect 17 0 18 0;
#X connect 18 0 12 1;
#X connect 19 0 20 0;
#X connect 20 0 11 0;
#X connect 20 1 10 0;
#X connect 21 0 23 0;
#X connect 22 0 19 1;
#X connect 23 0 22 0;
#X connect 23 1 22 1;
#X connect 24 0 22 0;
#X connect 25 0 26 0;
#X connect 26 1 19 0;
#X restore 75 119 pd refresh;
#N canvas 352 116 690 400 select 0;
#X obj 114 163 s \$0-selectstart-r;
#X obj 273 130 s \$0-selectend-r;
#X obj 43 57 r \$0-selall;
#X obj 120 58 r \$0-selstarts1;
#X msg 84 109 0;
#X obj 137 82 r \$0-selends1;
#X msg 314 98 1;
#X obj 247 21 r \$0-selall;
#X obj 271 44 r \$0-selstarts2;
#X obj 314 73 r \$0-selends2;
#X msg 452 182 \; editor-left-r vis_size \$1 400;
#X msg 451 77 \; editor-middle-r vis_size \$1 400;
#X obj 452 52 * 1000;
#X obj 448 154 * 1000;
#X obj 451 29 r \$0-selectend;
#X obj 450 131 r \$0-selectstart;
#X msg 272 98 0.001;
#X msg 144 105 0.995;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 5 0 17 0;
#X connect 6 0 1 0;
#X connect 7 0 6 0;
#X connect 8 0 16 0;
#X connect 9 0 6 0;
#X connect 12 0 11 0;
#X connect 13 0 10 0;
#X connect 14 0 12 0;
#X connect 15 0 13 0;
#X connect 16 0 1 0;
#X connect 17 0 0 0;
#X restore 76 390 pd select;
#N canvas 465 200 755 428 grid 0;
#X obj 286 279 f \$0;
#X obj 285 256 loadbang;
#X msg 323 282 bang;
#X msg 223 235 0;
#X msg 240 256 410;
#X obj 518 13 loadbang;
#X obj 520 56 s \$0-gridtype-r;
#X obj 454 279 f \$0;
#X obj 453 256 loadbang;
#X msg 491 282 bang;
#X msg 391 235 0;
#X msg 408 256 410;
#X msg 416 329 \; \$2-grid2 vis_size 1 \$1;
#X obj 146 46 r \$0-gridtype;
#X msg 248 329 \; \$2-grid1 vis_size 1 \$1;
#X obj 116 272 f \$0;
#X obj 115 249 loadbang;
#X msg 153 275 bang;
#X msg 53 228 0;
#X msg 78 322 \; \$2-grid vis_size 1 \$1;
#X obj 52 171 > 0;
#X obj 52 194 sel 0 1;
#X obj 223 206 sel 0 1;
#X obj 224 183 > 1;
#X obj 389 206 sel 0 1;
#X obj 390 183 > 2;
#X obj 575 231 s \$0-grid2;
#X msg 571 201 color \$1;
#X msg 643 178 color \$1;
#X floatatom 574 174 5 0 0 0 - - -;
#X obj 645 201 s \$0-grid1;
#X msg 559 114 color \$1;
#X floatatom 573 87 5 0 0 0 - - -;
#X obj 561 137 s \$0-grid;
#X obj 413 308 pack 0 \$0;
#X obj 246 308 pack 0 \$0;
#X obj 76 301 pack 0 \$0;
#X msg 519 34 0;
#X msg 70 249 410;
#X connect 0 0 35 1;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 35 0;
#X connect 4 0 35 0;
#X connect 5 0 37 0;
#X connect 7 0 34 1;
#X connect 8 0 7 0;
#X connect 9 0 7 0;
#X connect 10 0 34 0;
#X connect 11 0 34 0;
#X connect 13 0 20 0;
#X connect 13 0 23 0;
#X connect 13 0 25 0;
#X connect 15 0 36 1;
#X connect 16 0 15 0;
#X connect 17 0 15 0;
#X connect 18 0 36 0;
#X connect 20 0 21 0;
#X connect 21 0 18 0;
#X connect 21 1 38 0;
#X connect 22 0 3 0;
#X connect 22 1 4 0;
#X connect 23 0 22 0;
#X connect 24 0 10 0;
#X connect 24 1 11 0;
#X connect 25 0 24 0;
#X connect 27 0 26 0;
#X connect 28 0 30 0;
#X connect 29 0 27 0;
#X connect 31 0 33 0;
#X connect 32 0 31 0;
#X connect 32 0 28 0;
#X connect 34 0 12 0;
#X connect 35 0 14 0;
#X connect 36 0 19 0;
#X connect 37 0 6 0;
#X connect 38 0 36 0;
#X restore 82 485 pd grid;
#N canvas 735 127 201 188 cut 0;
#X obj 13 30 r \$0-cut;
#X obj 30 84 t b b b;
#X obj 53 128 s \$0-copy;
#X obj 29 154 s \$0-delete;
#X obj 73 105 s \$0-sendundo;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 1 2 0;
#X connect 1 2 4 0;
#X restore 73 180 pd cut;
#N canvas 178 115 455 651 gain 0;
#X obj 139 120 r \$0-filesize;
#X obj 125 167 *;
#X obj 138 143 t b f;
#X obj 244 123 r \$0-filesize;
#X obj 230 170 *;
#X obj 243 146 t b f;
#X obj 108 204 f;
#X obj 109 256 f;
#X obj 159 385 f;
#X obj 187 385 + 1;
#X obj 110 231 t b f;
#X obj 160 352 until;
#X obj 120 302 moses 1;
#X obj 160 325 t f f b;
#X msg 198 353 0;
#X obj 14 55 t b b b;
#X obj 121 100 r \$0-sel-offset;
#X obj 220 99 r \$0-sel-fraction;
#X obj 63 627 s original-L;
#X obj 166 626 s original-R;
#X obj 74 588 pack 0 0;
#X obj 169 593 pack 0 0;
#X obj 158 426 +;
#X obj 9 252 s \$0-refresh;
#X obj 157 449 t f f;
#X obj 193 481 tabread original-L;
#X obj 310 480 tabread original-R;
#X obj 195 504 * 1;
#X obj 310 505 * 1;
#X obj 194 530 clip -1 1;
#X obj 311 530 clip -1 1;
#X obj 285 370 r \$0-gainamount;
#X msg 290 276 500;
#X obj 291 252 r \$0-arcmade;
#X obj 291 306 s \$0-gainamount-r;
#X obj 287 398 tabread \$0-arc;
#X obj 12 29 r \$0-gain;
#X obj 78 69 s \$0-sendundo;
#X connect 0 0 2 0;
#X connect 1 0 6 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 5 0;
#X connect 4 0 7 1;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 10 0;
#X connect 7 0 12 0;
#X connect 8 0 9 0;
#X connect 8 0 22 0;
#X connect 9 0 8 1;
#X connect 10 0 7 0;
#X connect 10 1 22 1;
#X connect 11 0 8 0;
#X connect 12 1 13 0;
#X connect 13 0 11 0;
#X connect 13 2 14 0;
#X connect 14 0 8 1;
#X connect 15 0 23 0;
#X connect 15 1 6 0;
#X connect 15 2 37 0;
#X connect 16 0 1 0;
#X connect 17 0 4 0;
#X connect 20 0 18 0;
#X connect 21 0 19 0;
#X connect 22 0 24 0;
#X connect 24 0 20 0;
#X connect 24 0 21 0;
#X connect 24 1 25 0;
#X connect 24 1 26 0;
#X connect 25 0 27 0;
#X connect 26 0 28 0;
#X connect 27 0 29 0;
#X connect 28 0 30 0;
#X connect 29 0 20 1;
#X connect 30 0 21 1;
#X connect 31 0 35 0;
#X connect 32 0 34 0;
#X connect 33 0 32 0;
#X connect 35 0 27 1;
#X connect 35 0 28 1;
#X connect 36 0 15 0;
#X restore 171 337 pd gain;
#N canvas 178 115 708 654 normalize 0;
#X obj 158 121 r \$0-filesize;
#X obj 144 168 *;
#X obj 157 144 t b f;
#X obj 263 124 r \$0-filesize;
#X obj 249 171 *;
#X obj 262 147 t b f;
#X obj 97 164 f;
#X obj 98 216 f;
#X obj 148 345 f;
#X obj 176 345 + 1;
#X obj 99 191 t b f;
#X obj 149 312 until;
#X obj 109 241 moses 1;
#X msg 187 313 0;
#X obj 14 55 t b b b;
#X obj 140 101 r \$0-sel-offset;
#X obj 239 100 r \$0-sel-fraction;
#X obj 52 587 s original-L;
#X obj 155 586 s original-R;
#X obj 63 548 pack 0 0;
#X obj 158 553 pack 0 0;
#X obj 147 386 +;
#X obj 9 252 s \$0-refresh;
#X obj 146 409 t f f;
#X obj 182 441 tabread original-L;
#X obj 299 440 tabread original-R;
#X obj 184 464 * 1;
#X obj 299 465 * 1;
#X obj 183 490 clip -1 1;
#X obj 300 490 clip -1 1;
#X obj 12 29 r \$0-normalize;
#X obj 262 403 expr 1/$f1;
#X obj 296 258 f;
#X obj 324 258 + 1;
#X obj 297 225 until;
#X msg 335 226 0;
#X obj 149 285 t f f b f;
#X obj 297 287 +;
#X obj 314 348 tabread original-L;
#X obj 431 347 tabread original-R;
#X obj 301 308 t f f;
#X obj 500 455 >;
#X obj 464 481 spigot;
#X obj 464 421 t f f;
#X obj 464 504 t f f;
#X msg 562 434 0;
#X obj 297 198 t f f b b;
#X obj 81 68 s \$0-sendundo;
#X connect 0 0 2 0;
#X connect 1 0 6 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 5 0;
#X connect 4 0 7 1;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 10 0;
#X connect 7 0 12 0;
#X connect 8 0 9 0;
#X connect 8 0 21 0;
#X connect 9 0 8 1;
#X connect 10 0 7 0;
#X connect 10 1 21 1;
#X connect 10 1 37 1;
#X connect 11 0 8 0;
#X connect 12 1 36 0;
#X connect 13 0 8 1;
#X connect 14 0 22 0;
#X connect 14 1 6 0;
#X connect 14 2 47 0;
#X connect 15 0 1 0;
#X connect 16 0 4 0;
#X connect 19 0 17 0;
#X connect 20 0 18 0;
#X connect 21 0 23 0;
#X connect 23 0 19 0;
#X connect 23 0 20 0;
#X connect 23 1 24 0;
#X connect 23 1 25 0;
#X connect 24 0 26 0;
#X connect 25 0 27 0;
#X connect 26 0 28 0;
#X connect 27 0 29 0;
#X connect 28 0 19 1;
#X connect 29 0 20 1;
#X connect 30 0 14 0;
#X connect 31 0 26 1;
#X connect 31 0 27 1;
#X connect 32 0 33 0;
#X connect 32 0 37 0;
#X connect 33 0 32 1;
#X connect 34 0 32 0;
#X connect 35 0 32 1;
#X connect 36 0 11 0;
#X connect 36 2 13 0;
#X connect 36 3 46 0;
#X connect 37 0 40 0;
#X connect 38 0 43 0;
#X connect 39 0 43 0;
#X connect 40 0 38 0;
#X connect 40 1 39 0;
#X connect 41 0 42 1;
#X connect 42 0 44 0;
#X connect 43 0 42 0;
#X connect 43 1 41 0;
#X connect 44 0 31 0;
#X connect 44 1 41 1;
#X connect 45 0 41 1;
#X connect 46 0 34 0;
#X connect 46 2 35 0;
#X connect 46 3 45 0;
#X restore 172 358 pd normalize;
#N canvas 178 115 840 626 reverse 0;
#X obj 129 105 r \$0-filesize;
#X obj 115 152 *;
#X obj 128 128 t b f;
#X obj 234 108 r \$0-filesize;
#X obj 220 155 *;
#X obj 233 131 t b f;
#X obj 98 189 f;
#X obj 99 241 f;
#X obj 114 539 s clipboard-L;
#X obj 162 480 tabread original-L;
#X obj 117 506 pack 0 0;
#X obj 149 370 f;
#X obj 177 370 + 1;
#X obj 100 216 t b f;
#X obj 150 337 until;
#X obj 84 265 moses 1;
#X obj 149 393 t f f;
#X obj 176 424 +;
#X obj 239 330 s clipboard-R;
#X msg 231 305 resize \$1;
#X obj 222 350 s clipboard-L;
#X obj 206 540 pack 0 0;
#X obj 251 514 tabread original-R;
#X obj 203 573 s clipboard-R;
#X obj 150 310 t f f b;
#X msg 188 338 0;
#X obj 111 85 r \$0-sel-offset;
#X obj 210 84 r \$0-sel-fraction;
#X obj 479 271 f;
#X obj 507 271 + 1;
#X obj 480 238 until;
#X obj 479 294 t f f;
#X obj 480 211 t f f b;
#X msg 518 239 0;
#X obj 507 324 -;
#X obj 507 348 abs;
#X obj 525 388 tabread clipboard-R;
#X obj 513 410 tabread clipboard-L;
#X obj 462 464 pack 0 0;
#X obj 457 388 +;
#X obj 461 494 s original-L;
#X obj 546 492 pack 0 0;
#X obj 549 519 s original-R;
#X obj 59 82 t b b;
#X obj 41 352 s \$0-refresh;
#X obj 58 11 r \$0-reverse;
#X obj 127 286 t f f;
#X obj 58 37 t b b;
#X obj 84 60 s \$0-sendundo;
#X connect 0 0 2 0;
#X connect 1 0 6 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 5 0;
#X connect 4 0 7 1;
#X connect 4 0 34 1;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 13 0;
#X connect 7 0 15 0;
#X connect 9 0 10 1;
#X connect 10 0 8 0;
#X connect 11 0 12 0;
#X connect 11 0 16 0;
#X connect 12 0 11 1;
#X connect 13 0 7 0;
#X connect 13 1 17 1;
#X connect 13 1 39 1;
#X connect 14 0 11 0;
#X connect 15 1 46 0;
#X connect 16 0 10 0;
#X connect 16 0 21 0;
#X connect 16 1 17 0;
#X connect 17 0 9 0;
#X connect 17 0 22 0;
#X connect 19 0 18 0;
#X connect 19 0 20 0;
#X connect 21 0 23 0;
#X connect 22 0 21 1;
#X connect 24 0 14 0;
#X connect 24 1 19 0;
#X connect 24 2 25 0;
#X connect 25 0 11 1;
#X connect 26 0 1 0;
#X connect 27 0 4 0;
#X connect 28 0 29 0;
#X connect 28 0 31 0;
#X connect 29 0 28 1;
#X connect 30 0 28 0;
#X connect 31 0 39 0;
#X connect 31 1 34 0;
#X connect 32 0 30 0;
#X connect 32 2 33 0;
#X connect 33 0 28 1;
#X connect 34 0 35 0;
#X connect 35 0 36 0;
#X connect 35 0 37 0;
#X connect 36 0 41 1;
#X connect 37 0 38 1;
#X connect 38 0 40 0;
#X connect 39 0 38 0;
#X connect 39 0 41 0;
#X connect 41 0 42 0;
#X connect 43 0 44 0;
#X connect 43 1 6 0;
#X connect 45 0 47 0;
#X connect 46 0 32 0;
#X connect 46 1 24 0;
#X connect 47 0 43 0;
#X connect 47 1 48 0;
#X restore 173 382 pd reverse;
#N canvas 185 37 460 703 fadeout 0;
#X obj 128 121 r \$0-filesize;
#X obj 114 168 *;
#X obj 127 144 t b f;
#X obj 233 124 r \$0-filesize;
#X obj 219 171 *;
#X obj 232 147 t b f;
#X obj 97 205 f;
#X obj 98 257 f;
#X obj 148 386 f;
#X obj 176 386 + 1;
#X obj 99 232 t b f;
#X obj 149 353 until;
#X obj 109 303 moses 1;
#X obj 149 326 t f f b;
#X msg 187 354 0;
#X obj 16 36 t b b b;
#X obj 110 101 r \$0-sel-offset;
#X obj 209 100 r \$0-sel-fraction;
#X obj 52 651 s original-L;
#X obj 155 650 s original-R;
#X obj 63 612 pack 0 0;
#X obj 158 617 pack 0 0;
#X obj 147 450 +;
#X obj 9 293 s \$0-refresh;
#X obj 146 473 t f f;
#X obj 182 505 tabread original-L;
#X obj 299 504 tabread original-R;
#X obj 184 528 * 1;
#X obj 299 529 * 1;
#X obj 183 554 clip -1 1;
#X obj 300 554 clip -1 1;
#X obj 12 8 r \$0-fadeout;
#X obj 282 401 /;
#X obj 149 413 t f f;
#X obj 283 425 - 1;
#X obj 282 448 abs;
#X obj 75 65 s \$0-sendundo;
#X connect 0 0 2 0;
#X connect 1 0 6 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 5 0;
#X connect 4 0 7 1;
#X connect 4 0 32 1;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 10 0;
#X connect 7 0 12 0;
#X connect 8 0 9 0;
#X connect 8 0 33 0;
#X connect 9 0 8 1;
#X connect 10 0 7 0;
#X connect 10 1 22 1;
#X connect 11 0 8 0;
#X connect 12 1 13 0;
#X connect 13 0 11 0;
#X connect 13 2 14 0;
#X connect 14 0 8 1;
#X connect 15 0 23 0;
#X connect 15 1 6 0;
#X connect 15 2 36 0;
#X connect 16 0 1 0;
#X connect 17 0 4 0;
#X connect 20 0 18 0;
#X connect 21 0 19 0;
#X connect 22 0 24 0;
#X connect 24 0 20 0;
#X connect 24 0 21 0;
#X connect 24 1 25 0;
#X connect 24 1 26 0;
#X connect 25 0 27 0;
#X connect 26 0 28 0;
#X connect 27 0 29 0;
#X connect 28 0 30 0;
#X connect 29 0 20 1;
#X connect 30 0 21 1;
#X connect 31 0 15 0;
#X connect 32 0 34 0;
#X connect 33 0 22 0;
#X connect 33 1 32 0;
#X connect 34 0 35 0;
#X connect 35 0 27 1;
#X connect 35 0 28 1;
#X restore 174 245 pd fadeout;
#N canvas 78 101 1206 598 undo 0;
#X obj 270 259 tabread original-L;
#X obj 330 231 tabread original-R;
#X obj 245 47 r \$0-filesize;
#X obj 209 297 pack 0 0;
#X obj 232 131 until;
#X obj 230 76 f;
#X obj 223 13 r \$0-sendundo;
#X obj 231 152 f;
#X obj 258 151 + 1;
#X obj 230 175 t f f;
#X obj 266 304 pack 0 0;
#X msg 366 148 \; \$2-undo-L resize \$1 \; \$2-undo-R resize \$1;
#X obj 365 126 pack 0 0;
#X obj 411 102 f \$0;
#X obj 412 78 loadbang;
#X obj 267 350 s \$0-undo-R;
#X obj 210 374 s \$0-undo-L;
#X obj 841 331 pack 0 0;
#X obj 864 165 until;
#X obj 862 110 f;
#X obj 863 186 f;
#X obj 890 185 + 1;
#X obj 862 209 t f f;
#X obj 898 338 pack 0 0;
#X obj 635 30 r \$0-undo;
#X obj 327 200 s \$0-undosize;
#X obj 878 80 r \$0-undosize;
#X msg 973 210 \; original-L resize \$1 \; original-R resize \$1;
#X obj 963 265 tabread \$0-undo-R;
#X obj 902 294 tabread \$0-undo-L;
#X obj 842 408 s original-L;
#X obj 898 384 s original-R;
#X obj 637 281 s \$0-refresh;
#X obj 452 317 r \$0-zoomoffset;
#X obj 423 296 r \$0-zoomfraction;
#X obj 984 185 s \$0-filesize;
#X obj 401 352 f;
#X obj 434 352 f;
#X obj 339 302 t b b;
#X obj 405 384 s \$0-undo-fraction;
#X obj 429 404 s \$0-undo-offset;
#X obj 231 101 t f f f b;
#X obj 635 64 t b b b;
#X obj 703 122 r \$0-undo-fraction;
#X obj 718 146 r \$0-undo-offset;
#X obj 690 214 s \$0-zoomfraction;
#X obj 719 235 s \$0-zoomoffset;
#X obj 690 180 f;
#X obj 719 187 f;
#X obj 663 123 t b b;
#X msg 301 95 0;
#X msg 928 130 0;
#X obj 861 136 t f f f b;
#X obj 17 111 table \$0-undo-L;
#X obj 116 110 table \$0-undo-R;
#X connect 0 0 3 1;
#X connect 1 0 10 1;
#X connect 2 0 5 1;
#X connect 3 0 16 0;
#X connect 4 0 7 0;
#X connect 5 0 41 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 0 3 0;
#X connect 9 0 10 0;
#X connect 9 1 0 0;
#X connect 9 1 1 0;
#X connect 10 0 15 0;
#X connect 12 0 11 0;
#X connect 13 0 12 1;
#X connect 14 0 13 0;
#X connect 17 0 30 0;
#X connect 18 0 20 0;
#X connect 19 0 52 0;
#X connect 20 0 21 0;
#X connect 20 0 22 0;
#X connect 21 0 20 1;
#X connect 22 0 17 0;
#X connect 22 0 23 0;
#X connect 22 1 28 0;
#X connect 22 1 29 0;
#X connect 23 0 31 0;
#X connect 24 0 42 0;
#X connect 26 0 19 1;
#X connect 28 0 23 1;
#X connect 29 0 17 1;
#X connect 33 0 37 1;
#X connect 34 0 36 1;
#X connect 36 0 39 0;
#X connect 37 0 40 0;
#X connect 38 0 36 0;
#X connect 38 1 37 0;
#X connect 41 0 4 0;
#X connect 41 1 12 0;
#X connect 41 2 25 0;
#X connect 41 3 38 0;
#X connect 41 3 50 0;
#X connect 42 0 32 0;
#X connect 42 1 49 0;
#X connect 42 2 19 0;
#X connect 43 0 47 1;
#X connect 44 0 48 1;
#X connect 47 0 45 0;
#X connect 48 0 46 0;
#X connect 49 0 47 0;
#X connect 49 1 48 0;
#X connect 50 0 7 1;
#X connect 51 0 20 1;
#X connect 52 0 18 0;
#X connect 52 1 27 0;
#X connect 52 2 35 0;
#X connect 52 3 51 0;
#X restore 212 128 pd undo;
#N canvas 178 115 523 658 crop 0;
#X obj 69 -10 r \$0-crop;
#X obj 192 90 r \$0-filesize;
#X obj 178 137 *;
#X obj 191 113 t b f;
#X obj 297 93 r \$0-filesize;
#X obj 283 140 *;
#X obj 296 116 t b f;
#X obj 161 174 f;
#X obj 162 226 f;
#X obj 163 502 s clipboard-L;
#X obj 211 443 tabread original-L;
#X obj 166 469 pack 0 0;
#X obj 198 333 f;
#X obj 226 333 + 1;
#X obj 163 201 t b f;
#X obj 199 300 until;
#X obj 159 250 moses 1;
#X obj 198 356 t f f;
#X obj 225 387 +;
#X obj 288 293 s clipboard-R;
#X msg 280 268 resize \$1;
#X obj 271 313 s clipboard-L;
#X obj 255 503 pack 0 0;
#X obj 300 477 tabread original-R;
#X obj 252 536 s clipboard-R;
#X obj 58 213 f;
#X obj 69 302 f;
#X obj 97 302 + 1;
#X obj 70 269 until;
#X obj 199 273 t f f b;
#X msg 237 301 0;
#X obj 69 324 t f f;
#X obj 28 388 pack 0 0;
#X obj 76 359 tabread clipboard-L;
#X obj 78 65 t b b b;
#X obj 29 471 pack 0 0;
#X obj 74 445 tabread clipboard-R;
#X obj 28 411 s original-L;
#X obj 30 494 s original-R;
#X obj 37 554 s original-R;
#X obj 20 574 s original-L;
#X msg 16 531 resize \$1;
#X obj 54 239 t f f f;
#X obj 56 164 s \$0-filesize;
#X obj 27 110 f;
#X obj 175 70 r \$0-sel-offset;
#X obj 273 69 r \$0-sel-fraction;
#X obj 27 132 t b f;
#X obj 21 189 s \$0-filein;
#X obj 78 16 t b b;
#X obj 104 39 s \$0-sendundo;
#X connect 0 0 49 0;
#X connect 1 0 3 0;
#X connect 2 0 7 1;
#X connect 3 0 2 0;
#X connect 3 1 2 1;
#X connect 4 0 6 0;
#X connect 5 0 8 1;
#X connect 5 0 44 1;
#X connect 6 0 5 0;
#X connect 6 1 5 1;
#X connect 7 0 14 0;
#X connect 8 0 16 0;
#X connect 10 0 11 1;
#X connect 11 0 9 0;
#X connect 12 0 13 0;
#X connect 12 0 17 0;
#X connect 13 0 12 1;
#X connect 14 0 8 0;
#X connect 14 1 18 1;
#X connect 15 0 12 0;
#X connect 16 1 29 0;
#X connect 17 0 11 0;
#X connect 17 0 22 0;
#X connect 17 1 18 0;
#X connect 18 0 10 0;
#X connect 18 0 23 0;
#X connect 20 0 19 0;
#X connect 20 0 21 0;
#X connect 22 0 24 0;
#X connect 23 0 22 1;
#X connect 25 0 42 0;
#X connect 26 0 27 0;
#X connect 26 0 31 0;
#X connect 27 0 26 1;
#X connect 28 0 26 0;
#X connect 29 0 15 0;
#X connect 29 1 20 0;
#X connect 29 1 25 1;
#X connect 29 2 30 0;
#X connect 30 0 12 1;
#X connect 30 0 26 1;
#X connect 31 0 32 0;
#X connect 31 0 35 0;
#X connect 31 1 33 0;
#X connect 31 1 36 0;
#X connect 32 0 37 0;
#X connect 33 0 32 1;
#X connect 34 0 44 0;
#X connect 34 1 25 0;
#X connect 34 2 7 0;
#X connect 35 0 38 0;
#X connect 36 0 35 1;
#X connect 41 0 40 0;
#X connect 41 0 39 0;
#X connect 42 0 41 0;
#X connect 42 1 28 0;
#X connect 44 0 47 0;
#X connect 45 0 2 0;
#X connect 46 0 5 0;
#X connect 47 0 48 0;
#X connect 47 1 43 0;
#X connect 49 0 34 0;
#X connect 49 1 50 0;
#X restore 73 160 pd crop;
#N canvas 185 37 464 707 fadein 0;
#X obj 128 121 r \$0-filesize;
#X obj 114 168 *;
#X obj 127 144 t b f;
#X obj 233 124 r \$0-filesize;
#X obj 219 171 *;
#X obj 232 147 t b f;
#X obj 97 205 f;
#X obj 98 257 f;
#X obj 148 386 f;
#X obj 176 386 + 1;
#X obj 99 232 t b f;
#X obj 149 353 until;
#X obj 109 303 moses 1;
#X obj 149 326 t f f b;
#X msg 187 354 0;
#X obj 16 36 t b b b;
#X obj 110 101 r \$0-sel-offset;
#X obj 209 100 r \$0-sel-fraction;
#X obj 52 651 s original-L;
#X obj 155 650 s original-R;
#X obj 63 612 pack 0 0;
#X obj 158 617 pack 0 0;
#X obj 147 450 +;
#X obj 9 293 s \$0-refresh;
#X obj 146 473 t f f;
#X obj 182 505 tabread original-L;
#X obj 299 504 tabread original-R;
#X obj 184 528 * 1;
#X obj 299 529 * 1;
#X obj 183 554 clip -1 1;
#X obj 300 554 clip -1 1;
#X obj 282 401 /;
#X obj 149 413 t f f;
#X obj 75 65 s \$0-sendundo;
#X obj 13 8 r \$0-fadein;
#X connect 0 0 2 0;
#X connect 1 0 6 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 5 0;
#X connect 4 0 7 1;
#X connect 4 0 31 1;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 10 0;
#X connect 7 0 12 0;
#X connect 8 0 9 0;
#X connect 8 0 32 0;
#X connect 9 0 8 1;
#X connect 10 0 7 0;
#X connect 10 1 22 1;
#X connect 11 0 8 0;
#X connect 12 1 13 0;
#X connect 13 0 11 0;
#X connect 13 2 14 0;
#X connect 14 0 8 1;
#X connect 15 0 23 0;
#X connect 15 1 6 0;
#X connect 15 2 33 0;
#X connect 16 0 1 0;
#X connect 17 0 4 0;
#X connect 20 0 18 0;
#X connect 21 0 19 0;
#X connect 22 0 24 0;
#X connect 24 0 20 0;
#X connect 24 0 21 0;
#X connect 24 1 25 0;
#X connect 24 1 26 0;
#X connect 25 0 27 0;
#X connect 26 0 28 0;
#X connect 27 0 29 0;
#X connect 28 0 30 0;
#X connect 29 0 20 1;
#X connect 30 0 21 1;
#X connect 31 0 27 1;
#X connect 31 0 28 1;
#X connect 32 0 22 0;
#X connect 32 1 31 0;
#X connect 34 0 15 0;
#X restore 172 267 pd fadein;
#N canvas 178 115 471 667 copy 0;
#X obj 128 80 r \$0-filesize;
#X obj 114 127 *;
#X obj 127 103 t b f;
#X obj 233 83 r \$0-filesize;
#X obj 219 130 *;
#X obj 232 106 t b f;
#X obj 97 164 f;
#X obj 98 216 f;
#X obj 113 514 s clipboard-L;
#X obj 161 455 tabread original-L;
#X obj 116 481 pack 0 0;
#X obj 148 345 f;
#X obj 176 345 + 1;
#X obj 99 191 t b f;
#X obj 149 312 until;
#X obj 109 262 moses 1;
#X obj 148 368 t f f;
#X obj 175 399 +;
#X obj 238 305 s clipboard-R;
#X msg 230 280 resize \$1;
#X obj 221 325 s clipboard-L;
#X obj 205 515 pack 0 0;
#X obj 250 489 tabread original-R;
#X obj 202 548 s clipboard-R;
#X obj 149 285 t f f b;
#X msg 187 313 0;
#X obj 110 60 r \$0-sel-offset;
#X obj 209 59 r \$0-sel-fraction;
#X obj 83 27 r \$0-copy;
#X obj 237 240 t f f;
#X obj 331 285 s \$0-clipsize;
#X connect 0 0 2 0;
#X connect 1 0 6 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 5 0;
#X connect 4 0 7 1;
#X connect 5 0 4 0;
#X connect 5 1 4 1;
#X connect 6 0 13 0;
#X connect 7 0 15 0;
#X connect 9 0 10 1;
#X connect 10 0 8 0;
#X connect 11 0 12 0;
#X connect 11 0 16 0;
#X connect 12 0 11 1;
#X connect 13 0 7 0;
#X connect 13 1 17 1;
#X connect 14 0 11 0;
#X connect 15 1 24 0;
#X connect 16 0 10 0;
#X connect 16 0 21 0;
#X connect 16 1 17 0;
#X connect 17 0 9 0;
#X connect 17 0 22 0;
#X connect 19 0 18 0;
#X connect 19 0 20 0;
#X connect 21 0 23 0;
#X connect 22 0 21 1;
#X connect 24 0 14 0;
#X connect 24 1 29 0;
#X connect 24 2 25 0;
#X connect 25 0 11 1;
#X connect 26 0 1 0;
#X connect 27 0 4 0;
#X connect 28 0 6 0;
#X connect 29 0 19 0;
#X connect 29 1 30 0;
#X restore 72 204 pd copy;
#N canvas 664 54 512 713 paste 0;
#X obj 182 70 r \$0-filesize;
#X obj 169 128 *;
#X obj 30 346 pack 0 0;
#X obj 62 210 f;
#X obj 90 210 + 1;
#X obj 63 177 until;
#X obj 62 233 t f f;
#X obj 119 380 pack 0 0;
#X obj 63 150 t f f b;
#X msg 101 178 0;
#X obj 150 47 r \$0-sel-offset;
#X msg 388 148 resize \$1;
#X obj 397 173 s original-R;
#X obj 379 193 s original-L;
#X obj 59 289 +;
#X obj 92 302 tabread clipboard-L;
#X obj 103 271 tabread clipboard-R;
#X obj 34 12 r \$0-paste;
#X obj 103 13 r \$0-clipsize;
#X obj 35 54 f;
#X obj 115 414 s original-R;
#X obj 27 378 s original-L;
#X obj 350 35 r \$0-filesize;
#X obj 316 87 +;
#X obj 318 110 t f f;
#X obj 329 220 s \$0-filesize;
#X obj 193 596 pack 0 0;
#X obj 221 372 f;
#X obj 249 372 + 1;
#X obj 221 343 until;
#X obj 225 483 t f f;
#X obj 282 630 pack 0 0;
#X obj 222 539 +;
#X obj 278 664 s original-R;
#X obj 190 628 s original-L;
#X obj 266 521 tabread original-R;
#X obj 253 554 tabread original-L;
#X obj 282 374 r \$0-filesize;
#X obj 222 394 * -1;
#X obj 222 417 +;
#X obj 290 476 r \$0-clipsize;
#X obj 329 190 f;
#X obj 58 99 t f b b b f;
#X obj 218 317 f;
#X obj 32 75 t b f;
#X obj 323 254 r \$0-filesize;
#X obj 307 308 -;
#X obj 308 282 t b f;
#X msg 247 292 0;
#X obj 12 408 s \$0-refresh;
#X connect 0 0 1 1;
#X connect 1 0 14 1;
#X connect 1 0 47 0;
#X connect 2 0 21 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 3 1;
#X connect 5 0 3 0;
#X connect 6 0 14 0;
#X connect 6 1 15 0;
#X connect 6 1 16 0;
#X connect 7 0 20 0;
#X connect 8 0 5 0;
#X connect 8 2 9 0;
#X connect 9 0 3 1;
#X connect 10 0 1 0;
#X connect 11 0 12 0;
#X connect 11 0 13 0;
#X connect 14 0 2 0;
#X connect 14 0 7 0;
#X connect 15 0 2 1;
#X connect 16 0 7 1;
#X connect 17 0 19 0;
#X connect 18 0 19 1;
#X connect 19 0 44 0;
#X connect 22 0 23 1;
#X connect 23 0 24 0;
#X connect 24 0 41 1;
#X connect 24 1 11 0;
#X connect 26 0 34 0;
#X connect 27 0 28 0;
#X connect 27 0 38 0;
#X connect 28 0 27 1;
#X connect 29 0 27 0;
#X connect 30 0 32 0;
#X connect 30 1 35 0;
#X connect 30 1 36 0;
#X connect 31 0 33 0;
#X connect 32 0 26 0;
#X connect 32 0 31 0;
#X connect 35 0 31 1;
#X connect 36 0 26 1;
#X connect 37 0 39 1;
#X connect 38 0 39 0;
#X connect 39 0 30 0;
#X connect 40 0 32 1;
#X connect 41 0 25 0;
#X connect 42 0 8 0;
#X connect 42 1 41 0;
#X connect 42 2 43 0;
#X connect 42 3 48 0;
#X connect 42 4 23 0;
#X connect 43 0 29 0;
#X connect 44 0 49 0;
#X connect 44 1 42 0;
#X connect 45 0 46 0;
#X connect 46 0 43 1;
#X connect 47 0 46 0;
#X connect 47 1 46 1;
#X connect 48 0 27 1;
#X restore 73 225 pd paste;
#N canvas 0 22 753 654 mix 0;
#X obj 274 115 r \$0-clipsize;
#N canvas 0 22 454 304 until 0;
#X obj 261 160 f;
#X obj 288 162 + 1;
#X obj 261 138 until;
#X msg 299 132 0;
#X obj 261 107 t f b;
#X obj 261 78 inlet;
#X obj 261 190 outlet;
#X connect 0 0 1 0;
#X connect 0 0 6 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 4 0 2 0;
#X connect 4 1 3 0;
#X connect 5 0 4 0;
#X restore 249 162 pd until;
#X obj 166 35 r \$0-mix;
#X obj 524 350 r \$0-mixamount;
#X msg 521 141 0.501;
#X obj 521 118 loadbang;
#X obj 522 168 s \$0-mixamount-r;
#X obj 475 229 r \$0-sel-offset;
#X obj 480 308 *;
#X obj 480 262 t b f;
#X obj 523 265 r \$0-filesize;
#X obj 171 72 t b b;
#X obj 249 136 f;
#X obj 249 188 t f f;
#X obj 273 241 t f f;
#X obj 302 265 +;
#X obj 525 371 - 1;
#X obj 526 392 abs;
#X obj 303 430 +;
#X obj 255 459 pack 0 0;
#X obj 197 498 pack 0 0;
#X obj 102 301 tabread original-L;
#X obj 75 323 tabread clipboard-L;
#X obj 198 537 s original-L;
#X obj 256 499 s original-R;
#X obj 276 311 tabread clipboard-R;
#X obj 303 289 tabread original-R;
#X obj 137 407 +;
#X obj 124 136 s \$0-refresh;
#X obj 240 375 +;
#X obj 338 391 * 0.5;
#X obj 299 395 * 0.5;
#X obj 171 369 * 0.5;
#X obj 134 372 * 0.5;
#X connect 0 0 12 1;
#X connect 1 0 13 0;
#X connect 2 0 11 0;
#X connect 3 0 16 0;
#X connect 3 0 31 1;
#X connect 3 0 33 1;
#X connect 4 0 6 0;
#X connect 5 0 4 0;
#X connect 7 0 9 0;
#X connect 8 0 15 1;
#X connect 8 0 29 1;
#X connect 9 0 8 0;
#X connect 9 1 8 1;
#X connect 10 0 8 0;
#X connect 11 0 28 0;
#X connect 11 1 12 0;
#X connect 12 0 1 0;
#X connect 13 0 29 0;
#X connect 13 1 14 0;
#X connect 14 0 25 0;
#X connect 14 0 22 0;
#X connect 14 1 15 0;
#X connect 15 0 26 0;
#X connect 15 0 21 0;
#X connect 16 0 17 0;
#X connect 17 0 30 1;
#X connect 17 0 32 1;
#X connect 18 0 19 1;
#X connect 19 0 24 0;
#X connect 20 0 23 0;
#X connect 21 0 32 0;
#X connect 22 0 33 0;
#X connect 25 0 31 0;
#X connect 26 0 30 0;
#X connect 27 0 20 1;
#X connect 29 0 19 0;
#X connect 29 0 20 0;
#X connect 30 0 18 1;
#X connect 31 0 18 0;
#X connect 32 0 27 1;
#X connect 33 0 27 0;
#X restore 174 404 pd mix;
#X restore 673 451 pd codey-code;
#X obj 47 -27 cnv 15 999 400 editor-right editor-right-r empty 20 12
0 14 -225280 -262144 0;
#X obj 48 -27 cnv 15 147 400 editor-middle editor-middle-r empty 20
12 0 14 -154682 -262144 0;
#X obj 46 -27 cnv 15 24 400 editor-left editor-left-r empty 20 12 0
14 -225280 -262144 0;
#X obj 51 373 hsl 995 24 0 1 0 0 \$0-selectstart \$0-selectstart-r
empty -2 -6 0 10 -228856 -1 -1 2386 0;
#X obj 51 398 hsl 995 24 0 1 0 0 \$0-selectend \$0-selectend-r empty
-2 -6 0 10 -228856 -1 -1 14612 0;
#X text 166 488 zoom;
#X obj 365 459 bng 15 250 50 0 \$0-openfile towruoitwruoirwy open 20
7 0 10 -228856 -1 -1;
#X obj 219 537 bng 15 250 50 0 \$0-zoom2sel twiuyituewyitewu empty
0 -6 0 10 -228856 -1 -1;
#X text 238 535 zoom to selection;
#X obj 179 462 bng 30 250 50 0 \$0-zoomin twiuyituewyitewu + 7 12 0
30 -228856 -1 -99865;
#X obj 149 462 bng 30 250 50 0 \$0-zoomout twiuyituewyitewu - 5 14
0 34 -228856 -1 -99865;
#X obj 675 513 r \$0-filesize;
#X floatatom 675 544 0 0 0 0 - - -;
#X text 943 406 selection region;
#X obj 139 423 bng 40 250 50 0 \$0-goleft ieiuwteyute <- 3 17 0 29
-228856 -1 -258113;
#X obj 219 518 bng 15 250 50 0 \$0-zoom100 ewootwuoitewu empty 0 -6
0 10 -228856 -1 -1;
#X obj 89 423 bng 20 250 50 0 \$0-nudgeleft2 erywiyewir < 4 9 0 15
-228856 -1 -258113;
#X obj 179 423 bng 40 250 50 0 \$0-goright ieiuwteyute -> 3 17 0 29
-228856 -1 -258113;
#X obj 219 423 bng 30 250 50 0 \$0-nudgeright erywiyewir > 9 13 0 25
-228856 -1 -258113;
#X obj 249 423 bng 20 250 50 0 \$0-nudgeright2 erywiyewir > 7 9 0 15
-228856 -1 -258113;
#X obj 109 423 bng 30 250 50 0 \$0-nudgeleft erywiyewir < 7 13 0 25
-228856 -1 -258113;
#X obj 873 452 key;
#X obj 873 473 sel 32;
#X obj 925 510 s \$0-play;
#X obj 925 490 bng 15 250 50 0 empty empty empty 0 -6 0 10 -228856
-1 -1;
#X text 804 452 grid;
#X obj 421 526 bng 15 250 50 0 \$0-crop wtyowteuyoieutwo crop 20 7
0 10 -228856 -1 -1;
#X obj 478 458 bng 15 250 50 0 \$0-delete wtyowteuyoieutwo delete 20
7 0 10 -228856 -1 -1;
#X obj 23 373 bng 24 250 50 0 \$0-selstarts1 ityotwy empty 0 -6 0 10
-228856 -1 -1;
#X obj 1049 398 bng 24 250 50 0 \$0-selends2 ityotwy empty 0 -6 0 10
-228856 -1 -1;
#X obj 219 562 bng 15 250 50 0 \$0-selall werorewoyueorw empty 0 -6
0 10 -228856 -1 -1;
#X text 239 562 select-all;
#X obj 36 72 cnv 10 1010 1 riweywoteuyotewu \$0-gridlong empty 20 12
0 14 -24198 -262144 0;
#X obj 36 272 cnv 10 1010 1 riweywoteuyotewu \$0-gridlong empty 20
12 0 14 -24198 -262144 0;
#X obj 23 -25 vsl 24 394 -100 700 0 0 \$0-playbackspeed \$0-playbackspeed-r
empty 0 -8 0 10 -228856 -1 -1 19650 0;
#X obj 172 -39 cnv 10 1 1 empty \$0-grid1 empty 20 12 0 14 -261681
-262144 0;
#X obj 297 -39 cnv 10 1 1 empty \$0-grid empty 20 12 0 14 -261681 -262144
0;
#X obj 421 -39 cnv 10 1 1 empty \$0-grid1 empty 20 12 0 14 -261681
-262144 0;
#X obj 546 -39 cnv 10 1 1 empty \$0-grid empty 20 12 0 14 -261681 -262144
0;
#X obj 671 -39 cnv 10 1 1 empty \$0-grid1 empty 20 12 0 14 -261681
-262144 0;
#X obj 796 -39 cnv 10 1 1 empty \$0-grid empty 20 12 0 14 -261681 -262144
0;
#X obj 922 -39 cnv 10 1 1 empty \$0-grid1 empty 20 12 0 14 -261681
-262144 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array -RIGHT 16000 float 2;
#X coords 0 1 16000 -1 1000 200 1;
#X restore 48 173 graph;
#N canvas 0 22 450 300 (subpatch) 0;
#X array -LEFT 16000 float 2;
#X coords 0 1 16000 -1 1000 200 1;
#X restore 48 -27 graph;
#X obj 478 477 bng 15 250 50 0 \$0-silence wtyowteuyoieutwo silence
20 7 0 10 -228856 -1 -1;
#X obj 1049 373 bng 24 250 50 0 \$0-selends1 ityotwy empty 0 -6 0 10
-228856 -1 -1;
#X obj 23 398 bng 24 250 50 0 \$0-selstarts2 ityotwy empty 0 -6 0 10
-228856 -1 -1;
#X obj 365 507 bng 15 250 50 0 \$0-copy wtyowteuyoieutwo copy 20 7
0 10 -228856 -1 -1;
#X obj 674 476 tgl 30 0 \$0-loopsel \$0-loopsel-r LOOP 34 15 0 20 -228856
-1 -1 1 1;
#N canvas 0 22 458 308 cpu 0;
#X obj 118 168 cputime;
#X obj 118 28 loadbang;
#X obj 118 112 metro 1000;
#X msg 118 56 1;
#X obj 118 140 t b b;
#X obj 118 228 * 0.1;
#X obj 118 197 int;
#X obj 118 252 outlet;
#X connect 0 0 6 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 4 0 0 0;
#X connect 4 1 0 1;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
#X restore 1065 -18 pd cpu;
#X floatatom 1065 2 5 0 0 0 - - -;
#X obj 6 165 bng 15 250 50 0 \$0-playback-norm oerwioewuoweu empty
0 -6 0 10 -228856 -1 -1;
#X obj 576 454 vsl 15 70 0 1000 0 0 \$0-gainamount \$0-gainamount-r
empty 0 -8 0 10 -228856 -1 -1 3450 1;
#X obj 576 531 bng 15 250 50 0 \$0-gain oweyuotuotewu gain -3 25 0
10 -228856 -1 -1;
#X text 564 479 --;
#X text 590 479 --;
#X obj 478 496 bng 15 250 50 0 \$0-normalize wtyowteuyoieutwo normalize
20 7 0 10 -228856 -1 -1;
#X obj 478 515 bng 15 250 50 0 \$0-reverse weoytowutowiutwr reverse
20 7 0 10 -228856 -1 -1;
#X obj 478 534 bng 15 250 50 0 \$0-fadeout yiruwtyiutrwyu fade-out
20 7 0 10 -228856 -1 -1;
#X obj 478 553 bng 15 250 50 0 \$0-fadein yiruwtyiutrwyu fade-in 20
7 0 10 -228856 -1 -1;
#X obj 235 -39 cnv 10 1 1 empty \$0-grid2 empty 20 12 0 14 -233017
-262144 0;
#X obj 360 -39 cnv 10 1 1 empty \$0-grid2 empty 20 12 0 14 -233017
-262144 0;
#X obj 484 -39 cnv 10 1 1 empty \$0-grid2 empty 20 12 0 14 -233017
-262144 0;
#X obj 609 -39 cnv 10 1 1 empty \$0-grid2 empty 20 12 0 14 -233017
-262144 0;
#X obj 734 -39 cnv 10 1 1 empty \$0-grid2 empty 20 12 0 14 -233017
-262144 0;
#X obj 859 -39 cnv 10 1 1 empty \$0-grid2 empty 20 12 0 14 -233017
-262144 0;
#X obj 985 -39 cnv 10 1 1 empty \$0-grid2 empty 20 12 0 14 -233017
-262144 0;
#X obj 109 -39 cnv 10 1 1 empty \$0-grid2 empty 20 12 0 14 -233017
-262144 0;
#X obj 97 -49 cnv 15 900 20 empty empty empty 20 12 0 14 -262144 -66577
0;
#X obj 804 469 vradio 15 1 0 4 \$0-gridtype \$0-gridtype-r empty 0
-6 0 10 -228856 -1 -1 0;
#X text 820 468 off;
#X text 820 482 4;
#X text 820 499 8;
#X text 821 513 16;
#X text 238 516 zoom 100%;
#X obj 365 553 bng 15 250 50 0 \$0-undo uyweiuytewiuetw undo 20 7 0
10 -228856 -1 -1;
#X obj 705 545 / 44100;
#X floatatom 705 567 5 0 0 1 seconds - -;
#X obj 421 507 bng 15 250 50 0 \$0-cut wtyowteuyoieutwo cut 20 7 0
10 -228856 -1 -1;
#X obj 365 526 bng 15 250 50 0 \$0-paste rtuiytioytrwoiyirtw paste
20 7 0 10 -228856 -1 -1;
#X obj 614 454 vsl 15 70 0 1 0 0 \$0-mixamount \$0-mixamount-r empty
0 -8 0 10 -228856 -1 -1 3457 1;
#X obj 614 531 bng 15 250 50 0 \$0-mix oweyuotuotewu mix 0 25 0 10
-228856 -1 -1;
#X text 602 479 --;
#X text 628 479 --;
#X obj 365 478 bng 15 250 50 0 \$0-savefile towyotwyotw save 20 7 0
10 -228856 -1 -1;
#X text 923 470 play (spacebar);
#X floatatom -99 445 5 0 0 0 - - -;
#X floatatom 9 437 5 0 0 0 - - -;
#X obj 48 593 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X floatatom 9 531 5 0 0 0 - - -;
#X obj 9 510 <;
#X floatatom 63 531 5 0 0 0 - - -;
#X obj 63 510 >;
#X obj 9 572 moses 1;
#X obj 9 551 change;
#X obj 102 593 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 63 572 moses 1;
#X obj 63 551 change;
#X msg 48 612 0;
#X msg 102 612 1;
#X floatatom -47 535 5 0 0 0 - - -;
#X obj -8 597 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj -47 575 moses 1;
#X obj -47 554 change;
#X floatatom -99 535 5 0 0 0 - - -;
#X obj -60 597 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj -99 576 moses 1;
#X obj -99 555 change;
#X obj 1078 381 loadbang;
#X obj -47 514 < 0.005;
#X floatatom -99 487 5 0 0 0 - - -;
#X floatatom 9 480 5 0 0 0 - - -;
#X obj -99 466 + 0.0001;
#X obj 9 459 - 0.0001;
#X obj -99 514 > 0.987;
#X obj -124 102 random 7000;
#X obj -124 80 metro;
#X floatatom -124 148 5 0 0 0 - - -;
#X obj -124 59 tgl 15 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
1;
#X obj -124 125 * 0.1;
#X msg 1078 405 \; pd dsp 1;
#X obj -94 59 hsl 100 15 10 1000 0 1 empty empty empty -2 -8 0 10 -228856
-1 -1 7800 0;
#X obj -123 247 metro;
#X floatatom -123 310 5 0 0 0 - - -;
#X obj -123 217 tgl 15 0 empty empty empty 17 7 0 10 -228856 -1 -1
0 1;
#X obj -93 201 hsl 100 15 10 1000 0 1 empty empty empty -2 -8 0 10
-228856 -1 -1 5600 0;
#X obj -123 289 * 0.001;
#X floatatom -72 382 5 0 0 0 - - -;
#X obj -123 359 moses 0.1;
#X obj -123 268 random 777;
#X floatatom -54 316 5 0 0 0 - - -;
#X obj -54 295 * 0.001;
#X obj -54 336 moses 0.1;
#X floatatom -54 357 5 0 0 0 - - -;
#X obj -27 216 / 2;
#X obj -54 253 metro;
#X obj -54 229 tgl 15 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
1;
#X obj -54 274 random 100;
#X obj -54 129 tgl 30 0 empty empty empty 17 7 0 10 -258113 -1 -1 0
1;
#X connect 4 0 87 0;
#X connect 5 0 88 0;
#X connect 12 0 13 0;
#X connect 12 0 77 0;
#X connect 22 0 23 0;
#X connect 23 0 25 0;
#X connect 25 0 24 0;
#X connect 50 0 51 0;
#X connect 77 0 78 0;
#X connect 87 0 113 0;
#X connect 88 0 114 0;
#X connect 89 0 99 0;
#X connect 90 0 95 0;
#X connect 91 0 90 0;
#X connect 92 0 98 0;
#X connect 93 0 92 0;
#X connect 94 1 89 0;
#X connect 95 0 94 0;
#X connect 96 0 100 0;
#X connect 97 1 96 0;
#X connect 98 0 97 0;
#X connect 99 0 4 0;
#X connect 100 0 5 0;
#X connect 101 0 104 0;
#X connect 102 0 100 0;
#X connect 103 1 102 0;
#X connect 104 0 103 0;
#X connect 105 0 108 0;
#X connect 106 0 99 0;
#X connect 107 1 106 0;
#X connect 108 0 107 0;
#X connect 109 0 30 0;
#X connect 109 0 121 0;
#X connect 110 0 101 0;
#X connect 111 0 91 1;
#X connect 111 0 93 0;
#X connect 111 0 115 0;
#X connect 112 0 93 1;
#X connect 112 0 110 0;
#X connect 112 0 91 0;
#X connect 113 0 111 0;
#X connect 114 0 112 0;
#X connect 115 0 105 0;
#X connect 116 0 120 0;
#X connect 117 0 116 0;
#X connect 118 0 35 0;
#X connect 119 0 117 0;
#X connect 120 0 118 0;
#X connect 122 0 117 1;
#X connect 123 0 130 0;
#X connect 124 0 129 0;
#X connect 125 0 123 0;
#X connect 126 0 123 1;
#X connect 126 0 135 0;
#X connect 127 0 124 0;
#X connect 128 0 5 0;
#X connect 129 1 128 0;
#X connect 130 0 127 0;
#X connect 131 0 133 0;
#X connect 132 0 131 0;
#X connect 133 0 134 0;
#X connect 134 0 4 0;
#X connect 135 0 136 1;
#X connect 136 0 138 0;
#X connect 137 0 136 0;
#X connect 138 0 132 0;
#X connect 139 0 119 0;
#X connect 139 0 125 0;
#X connect 139 0 137 0;
How do you guys use PD with other audio programs?
didnt know jack also worked for windows xp?
EDIT:just downloaded jack from the website,but i get all kinds of errors when i try to unzip?
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open Versions\Current\Headers (jack-1.9.2\bin\osx_32bits\Jackmp.framework\Headers --> Versions\Current\Headers)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open Versions\Current\Jackmp (jack-1.9.2\bin\osx_32bits\Jackmp.framework\Jackmp --> Versions\Current\Jackmp)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open Versions\Current\Resources (jack-1.9.2\bin\osx_32bits\Jackmp.framework\Resources --> Versions\Current\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create ersions\Current\Headers
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Jackservermp
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_32bits\Jackservermp.framework\Resources (A --> jack-1.9.2\bin\osx_32bits\Jackservermp.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Panda
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_32bits\Panda.framework\Resources (A --> jack-1.9.2\bin\osx_32bits\Panda.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Headers
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Jackmp
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_64bits\Jackmp.framework\Resources (A --> jack-1.9.2\bin\osx_64bits\Jackmp.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Headers
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Jackservermp
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_64bits\Jackservermp.framework\Resources (A --> jack-1.9.2\bin\osx_64bits\Jackservermp.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Panda
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create Versions\Current\Resources
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot open jack-1.9.2\bin\osx_64bits\Panda.framework\Resources (A --> jack-1.9.2\bin\osx_64bits\Panda.framework\Resources)
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Symbolic link points to missing file
! C:\Documents and Settings\administartor\Desktop\jack audio\jack-1.9.2.tgz: Cannot create
Problem compiling external on Windows
Hey,
thanks to everyone who responded to my posts both here and in the mailing list. Since then, I've figured out how to compile externals written in C using Microsoft Visual C++ 2005. There's more to document, however, such as how to compile externals using some of the other Windows compilers (Borland, djgpp, etc.), and also how to compile externals written in C++ in Windows. But one thing at a time.
one little thing to note... steps 4 and 7 may seem a little roundabout, but they account for the fact that MSVC sometimes has trouble with spaces in directory names (eg. C://Program Files/). If anyone knows how to override this behavior, post a reply, and I'll try to simplify the steps accordingly.
Updated June 29, 2007:
use [b]C://Progra~1/[/b] instead of [b]C://Program Files/[/b],
use [b]C://Docume~1/[/b] instead of [b]C://Documents and Settings/[/b], etc.
So, without further ado...
How to compile a pd external written in C using Microsoft Visual C++ 2005:
Compared to Windows, linux offers a much more user-friendly environment for compiling pd externals. However, with a little patience, a usable environment can be set up in Windows, and the good news is that everything you need is available for free. There are several reputable Windows-compatible C/C++ compilers out there, but here I'll discuss compiling externals with Microsoft Visual C++ 2005 (MSVC for short).
1. Download and Install Microsoft Visual C++ 2005 Express Edition.
a. Click the link above, then click Go! in the Visual C++ box.
b. Run vcsetup.exe to install the program
(the setup wizard should guide you through the process).
2. Download [url=http://download.microsoft.com/download/7/7/3/7737290f-98e8-45bf-9075-85cc6ae34bf1/VS80sp1-KB9267
]Visual C++ 2005 Express Service Pack 1.
a. Click the link above to download the Service Pack.
b. Run VS80sp1-KB926748-X86-INTL.exe to install the program.
3. Create a new project:
a. Open Visual C++.
b. Open the New Project window (Ctrl+Shift+N).
c. In the Project Types pane, select Visual C++.
d. In the Templates pane, select emptyproj.
e. Enter object name (helloworld).
f. Leave Create directory for solution unchecked, and click OK.
4. Import the pd header file:
a. Get m_pd.h here, or, using pd-vanilla (not pd-extended):
1. Open Windows Explorer or My Computer.
2. Navigate to the pd/src/ directory on your system.
3. Open m_pd.h in a text editor (file type is: C/C++ header).
b. Select all (Ctrl+A).
c. Copy selection to the clipboard (Ctrl+C).
d. Back in Visual C++, open the New File window (Ctrl+N).
e. In the Categories pane, select General.
f. In the Templates pane, select Text File, and click Open.
g. Copy the contents of m_pd.h into the editor window (Ctrl+V).
h. Open the Save File As Window (Ctrl+S).
i. Save as m_pd.h.
j. From the File Menu, select Move m_pd.h into; select helloworld.
5. Write the source code for the external in C.
a. Open the New File window (Ctrl+N).
b. In the Categories pane, select General.
c. In the Templates pane, select Text File, and click Open.
d. Write your source code in the editor window.
The following example is taken from the tutorial by Johannes M. Zmoelnig.
#include "m_pd.h"
static t_class *helloworld_class;
typedef struct _helloworld {
t_object x_obj;
} t_helloworld;
void helloworld_bang(t_helloworld *x)
{
post("Hello world !!");
}
void *helloworld_new(void)
{
t_helloworld *x = (t_helloworld *)pd_new(helloworld_class);
return (void *)x;
}
void helloworld_setup(void) {
helloworld_class = class_new(gensym("helloworld"),
(t_newmethod)helloworld_new,
0, sizeof(t_helloworld),
CLASS_DEFAULT, 0);
class_addbang(helloworld_class, helloworld_bang);
}
6. Save and import the source code into the project:
a. Open the Save File As Window (Ctrl+S).
b. Save as helloworld.c.
c. From the File Menu, select Move helloworld.c into; select helloworld.
7. Access the pd library file:
a. Open Windows Explorer or My Computer.
b. Navigate to the pd/bin/ directory on your system.
c. Right-click on pd.lib (file type is: Object File Library) and select Copy.
d. Navigate to the C://TEMP/ directory on your system.
e. Paste the copy of pd.lib in the C://TEMP/ directory (right-click or Ctrl-V).
8. Set configuration properties:
a. Set configuration type to .dll:
1. Back in Visual C++, open the helloworld Property Pages window (Alt+F7).
2. In the left pane, select Configuration Properties >> General.
3. In the right pane, under Project Defaults, click on
Configuration Type, and select Dynamic Library (.dll)
(using the arrow on the right).
b. Add MSW to preprocessor definitions:
1. In the left pane, select
Configuration Properties >> C/C++ >> Preprocessor.
2. In the right pane, type MSW in the Preprocessor Definitions field.
c. Tell compiler which language to use:
1. In the left pane, select
Configuration Properties >> C/C++ >> Advanced.
2. In the right pane, select Compile As.
3. Select Compile as C Code (/TC) by clicking the arrow on the right.
d. Tell linker where to find pd.lib:
1. In the left pane, select Configuration Properties >> Linker >> Input.
2. In the right pane, select Additional Dependencies and enter
C://TEMP/pd.lib.
e. Tell linker to export the setup function:
1. In the left pane, select
Configuration Properties >> Linker >> Command Line.
2. In the right pane, type
/export:helloworld_setup in the Additional options field.
3. Click OK.
9. Compile and link:
a. Use the Build Solution command (F7).
10. Copy the new helloworld.dll file into pd.
a. Open Windows Explorer or My Computer.
b. Navigate to the
My Documents/Visual Studio 2005/Projects/helloworld/Debug/
directory on your system.
c. Right-click on helloworld.dll (file type is: Application Extension)
and select Copy.
d. Navigate to the pd/extra directory on your system.
e. Paste the copy of helloworld.dll in the pd/extra directory
(right-click or Ctrl-V).
11. Test the external in pd.
a. the external should now be a useable object in pd.
b. open a new pd patch and try to create a helloworld object.
c. add a bang to the left inlet and test it out.
d. if the main pd console window displays "Hello world !!",
the external has succeeded.
Hope this helps!
-- middlepedal