- Restruct folder tree
13
src/pd-0.44-2/INSTALL.txt
Normal file
|
@ -0,0 +1,13 @@
|
|||
Quick compilation instructions for Gnu/linux or Mac OSX, or Windows if you have
|
||||
installed gygwin: make sure "automake" is installed as well as the usual C
|
||||
compiler chain. Then in this directory, type "./autogen.sh", then
|
||||
"./configure"; then "make".
|
||||
|
||||
Alternatively, you can use the fallback makefiles in "src" for gnu/linux, Mac
|
||||
OSX, or Microsoft Visual C. (Special instructions for Microsoft Visual C: cd
|
||||
to src and type "make -f makefile.nt". Then CD to the various subdirs of extra
|
||||
and type "make nt" in each.)
|
||||
|
||||
Various dependencies: in linux and Mac you need TK (apparently always present
|
||||
for Mac and usually there for linux). On linux you may also need an ALSA
|
||||
"dev" package: (yum install alsa-lib-devel) or (apt-get install libasound2-dev).
|
30
src/pd-0.44-2/LICENSE.txt
Normal file
|
@ -0,0 +1,30 @@
|
|||
This software is copyrighted by Miller Puckette and others. The following
|
||||
terms (the "Standard Improved BSD License") apply to all files associated with
|
||||
the software unless explicitly disclaimed in individual files:
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote
|
||||
products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
464
src/pd-0.44-2/Makefile.am
Normal file
|
@ -0,0 +1,464 @@
|
|||
AUTOMAKE_OPTIONS = foreign
|
||||
ACLOCAL_AMFLAGS = -I m4/generated -I m4
|
||||
|
||||
CFLAGS += @DEFS@
|
||||
EXTRA_SUBDIRS =
|
||||
|
||||
# pkg-config support
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = pd.pc
|
||||
|
||||
if ASIO
|
||||
EXTRA_SUBDIRS += asio
|
||||
endif
|
||||
|
||||
if PORTAUDIO
|
||||
EXTRA_SUBDIRS += portaudio
|
||||
endif
|
||||
|
||||
if PORTMIDI
|
||||
EXTRA_SUBDIRS += portmidi
|
||||
endif
|
||||
|
||||
# files that are included but not built
|
||||
EXTRA_DIST = LICENSE.txt README.txt INSTALL.txt
|
||||
|
||||
# subdirs that are built
|
||||
SUBDIRS = $(EXTRA_SUBDIRS) src man tcl po extra
|
||||
|
||||
# subdirs that are always included in the dist, etc.
|
||||
DIST_SUBDIRS = asio extra man po portaudio portmidi src tcl
|
||||
|
||||
BUILT_SOURCES =
|
||||
if MSGFMT
|
||||
BUILT_SOURCES += locales
|
||||
endif
|
||||
|
||||
## FIXXXME
|
||||
## $(pkglibdir) is used throughout the other Makefile.amS
|
||||
## simply ignoring the special case for other OSs...
|
||||
if LINUX
|
||||
libpddir = $(pkglibdir)
|
||||
else
|
||||
libpddir = $(prefix)
|
||||
endif
|
||||
|
||||
# Symlinks don't work on Windows/MinGW but they do on Cygwin.
|
||||
bin:
|
||||
$(LN_S) src bin
|
||||
|
||||
locales:
|
||||
make -C po all
|
||||
|
||||
install-data-local:
|
||||
$(INSTALL) -d $(DESTDIR)$(libpddir)/startup
|
||||
$(INSTALL) -d $(DESTDIR)$(libpddir)/startup/disabled
|
||||
|
||||
# this is at the end because its loooong
|
||||
# these files go into libpddir defined above
|
||||
nobase_dist_libpd_DATA = \
|
||||
doc/1.manual/1.introduction.txt \
|
||||
doc/1.manual/fig1.1.png \
|
||||
doc/1.manual/fig1.2.jpg \
|
||||
doc/1.manual/fig1.3.jpg \
|
||||
doc/1.manual/fig1.4.png \
|
||||
doc/1.manual/fig1.5.jpg \
|
||||
doc/1.manual/fig11.1.png \
|
||||
doc/1.manual/fig11.2.png \
|
||||
doc/1.manual/fig11.3.png \
|
||||
doc/1.manual/fig11.4.png \
|
||||
doc/1.manual/fig3.1.jpg \
|
||||
doc/1.manual/fig3.10.jpg \
|
||||
doc/1.manual/fig3.2.jpg \
|
||||
doc/1.manual/fig3.3.jpg \
|
||||
doc/1.manual/fig3.4.jpg \
|
||||
doc/1.manual/fig3.5.jpg \
|
||||
doc/1.manual/fig3.6.jpg \
|
||||
doc/1.manual/fig3.7.jpg \
|
||||
doc/1.manual/fig3.8.jpg \
|
||||
doc/1.manual/fig3.9.jpg \
|
||||
doc/1.manual/fig7.1.jpg \
|
||||
doc/1.manual/fig7.2.jpg \
|
||||
doc/1.manual/fig7.3.jpg \
|
||||
doc/1.manual/fig7.4.jpg \
|
||||
doc/1.manual/fig7.5.jpg \
|
||||
doc/1.manual/fig7.6.jpg \
|
||||
doc/1.manual/fig8.1.jpg \
|
||||
doc/1.manual/fig8.2.jpg \
|
||||
doc/1.manual/fig8.3.jpg \
|
||||
doc/1.manual/fig8.4.jpg \
|
||||
doc/1.manual/fig8.5.jpg \
|
||||
doc/1.manual/fig8.6.jpg \
|
||||
doc/1.manual/fig9.1.jpg \
|
||||
doc/1.manual/fig9.2.jpg \
|
||||
doc/1.manual/fig9.3.jpg \
|
||||
doc/1.manual/index.htm \
|
||||
doc/1.manual/pdmanual.css \
|
||||
doc/1.manual/x1.htm \
|
||||
doc/1.manual/x2.htm \
|
||||
doc/1.manual/x3.htm \
|
||||
doc/1.manual/x4.htm \
|
||||
doc/1.manual/x5.htm \
|
||||
doc/2.control.examples/00.INTRO.txt \
|
||||
doc/2.control.examples/01.PART1.hello.pd \
|
||||
doc/2.control.examples/02.editing.pd \
|
||||
doc/2.control.examples/03.connections.pd \
|
||||
doc/2.control.examples/04.messages.pd \
|
||||
doc/2.control.examples/05.counter.pd \
|
||||
doc/2.control.examples/06.more.counters.pd \
|
||||
doc/2.control.examples/07.time.pd \
|
||||
doc/2.control.examples/08.depthfirst.pd \
|
||||
doc/2.control.examples/09.send_receive.pd \
|
||||
doc/2.control.examples/10.more.messages.pd \
|
||||
doc/2.control.examples/11.review.pd \
|
||||
doc/2.control.examples/12.PART2.subpatch.pd \
|
||||
doc/2.control.examples/13.locality.pd \
|
||||
doc/2.control.examples/14.dollarsigns.pd \
|
||||
doc/2.control.examples/15.array.pd \
|
||||
doc/2.control.examples/15.file.txt \
|
||||
doc/2.control.examples/16.more.arrays.pd \
|
||||
doc/2.control.examples/17.PART3.midi.pd \
|
||||
doc/2.control.examples/18.conditional.pd \
|
||||
doc/2.control.examples/19.random.pd \
|
||||
doc/2.control.examples/20.weighted-random.pd \
|
||||
doc/2.control.examples/21.markov.chain.pd \
|
||||
doc/2.control.examples/22.random-walk.pd \
|
||||
doc/2.control.examples/23.sequencing.pd \
|
||||
doc/2.control.examples/24.loops.pd \
|
||||
doc/2.control.examples/dollarsign.pd \
|
||||
doc/2.control.examples/dollarsign2.pd \
|
||||
doc/2.control.examples/sendnumber.pd \
|
||||
doc/3.audio.examples/A00.intro.pd \
|
||||
doc/3.audio.examples/A00.intro.txt \
|
||||
doc/3.audio.examples/A01.sinewave.pd \
|
||||
doc/3.audio.examples/A02.amplitude.pd \
|
||||
doc/3.audio.examples/A03.line.pd \
|
||||
doc/3.audio.examples/A04.line2.pd \
|
||||
doc/3.audio.examples/A05.output.subpatch.pd \
|
||||
doc/3.audio.examples/A06.frequency.pd \
|
||||
doc/3.audio.examples/A07.fusion.pd \
|
||||
doc/3.audio.examples/A08.beating.pd \
|
||||
doc/3.audio.examples/A09.frequency.mod.pd \
|
||||
doc/3.audio.examples/A10.review.pd \
|
||||
doc/3.audio.examples/adsr.pd \
|
||||
doc/3.audio.examples/B01.wavetables.pd \
|
||||
doc/3.audio.examples/B02.two-wavetables.pd \
|
||||
doc/3.audio.examples/B03.tabread4.pd \
|
||||
doc/3.audio.examples/B04.tabread4.interpolation.pd \
|
||||
doc/3.audio.examples/B05.tabread.FM.pd \
|
||||
doc/3.audio.examples/B06.table.switching.pd \
|
||||
doc/3.audio.examples/B07.sampler.pd \
|
||||
doc/3.audio.examples/B08.sampler.loop.pd \
|
||||
doc/3.audio.examples/B09.sampler.loop.smooth.pd \
|
||||
doc/3.audio.examples/B10.sampler.scratch.pd \
|
||||
doc/3.audio.examples/B11.sampler.nodoppler.pd \
|
||||
doc/3.audio.examples/B12.sampler.transpose.pd \
|
||||
doc/3.audio.examples/B13.sampler.overlap.pd \
|
||||
doc/3.audio.examples/B14.sampler.rockafella.pd \
|
||||
doc/3.audio.examples/B15.tabread4~-onset.pd \
|
||||
doc/3.audio.examples/B16.long-varispeed.pd \
|
||||
doc/3.audio.examples/buttercoef3.pd \
|
||||
doc/3.audio.examples/butterworth3~.pd \
|
||||
doc/3.audio.examples/C01.nyquist.pd \
|
||||
doc/3.audio.examples/C02.sawtooth-foldover.pd \
|
||||
doc/3.audio.examples/C03.zipper.noise.pd \
|
||||
doc/3.audio.examples/C04.control.to.signal.pd \
|
||||
doc/3.audio.examples/C05.sampler.oneshot.pd \
|
||||
doc/3.audio.examples/C06.signal.to.control.pd \
|
||||
doc/3.audio.examples/C07.envelope.follower.pd \
|
||||
doc/3.audio.examples/C08.analog.sequencer.pd \
|
||||
doc/3.audio.examples/C09.sample.hold.pd \
|
||||
doc/3.audio.examples/C10.monophonic.synth.pd \
|
||||
doc/3.audio.examples/D01.envelope.gen.pd \
|
||||
doc/3.audio.examples/D02.adsr.pd \
|
||||
doc/3.audio.examples/D03.envelope.dB.pd \
|
||||
doc/3.audio.examples/D04.envelope.quartic.pd \
|
||||
doc/3.audio.examples/D05.envelope.pitch.pd \
|
||||
doc/3.audio.examples/D06.envelope.portamento.pd \
|
||||
doc/3.audio.examples/D07.additive.pd \
|
||||
doc/3.audio.examples/D08.table.spectrum.pd \
|
||||
doc/3.audio.examples/D09.shepard.tone.pd \
|
||||
doc/3.audio.examples/D10.sampler.notes.pd \
|
||||
doc/3.audio.examples/D11.sampler.poly.pd \
|
||||
doc/3.audio.examples/D12.sampler.bis.pd \
|
||||
doc/3.audio.examples/D13.additive.qlist.pd \
|
||||
doc/3.audio.examples/D14.vibrato.pd \
|
||||
doc/3.audio.examples/E01.spectrum.pd \
|
||||
doc/3.audio.examples/E02.ring.modulation.pd \
|
||||
doc/3.audio.examples/E03.octave.divider.pd \
|
||||
doc/3.audio.examples/E04.difference.tone.pd \
|
||||
doc/3.audio.examples/E05.chebychev.pd \
|
||||
doc/3.audio.examples/E06.exponential.pd \
|
||||
doc/3.audio.examples/E07.evenodd.pd \
|
||||
doc/3.audio.examples/E08.phase.mod.pd \
|
||||
doc/3.audio.examples/E09.FM.spectrum.pd \
|
||||
doc/3.audio.examples/E10.complex.FM.pd \
|
||||
doc/3.audio.examples/F01.pulse.pd \
|
||||
doc/3.audio.examples/F02.just.say.pd \
|
||||
doc/3.audio.examples/F03.pulse.spectrum.pd \
|
||||
doc/3.audio.examples/F04.waveshaping.pulse.pd \
|
||||
doc/3.audio.examples/F05.ring.modulation.pd \
|
||||
doc/3.audio.examples/F06.packets.pd \
|
||||
doc/3.audio.examples/F07.packet.spectrum.pd \
|
||||
doc/3.audio.examples/F08.two.cosines.pd \
|
||||
doc/3.audio.examples/F09.declickit.pd \
|
||||
doc/3.audio.examples/F10.sweepable.FM.pd \
|
||||
doc/3.audio.examples/F11.anharmonic.FM.pd \
|
||||
doc/3.audio.examples/F12.paf.pd \
|
||||
doc/3.audio.examples/F13.paf.control.pd \
|
||||
doc/3.audio.examples/F14.wave.packet.pd \
|
||||
doc/3.audio.examples/filter-graph1.pd \
|
||||
doc/3.audio.examples/filter-graph2.pd \
|
||||
doc/3.audio.examples/G01.delay.pd \
|
||||
doc/3.audio.examples/G02.delay.loop.pd \
|
||||
doc/3.audio.examples/G03.delay.variable.pd \
|
||||
doc/3.audio.examples/G04.control.blocksize.pd \
|
||||
doc/3.audio.examples/G05.execution.order.pd \
|
||||
doc/3.audio.examples/G06.octave.doubler.pd \
|
||||
doc/3.audio.examples/G07.shaker.pd \
|
||||
doc/3.audio.examples/G08.reverb.pd \
|
||||
doc/3.audio.examples/G09.pitchshift.pd \
|
||||
doc/3.audio.examples/H01.low-pass.pd \
|
||||
doc/3.audio.examples/H02.high-pass.pd \
|
||||
doc/3.audio.examples/H03.band-pass.pd \
|
||||
doc/3.audio.examples/H04.filter.sweep.pd \
|
||||
doc/3.audio.examples/H05.filter.floyd.pd \
|
||||
doc/3.audio.examples/H06.envelope.follower.pd \
|
||||
doc/3.audio.examples/H07.measure.spectrum.pd \
|
||||
doc/3.audio.examples/H08.heterodyning.pd \
|
||||
doc/3.audio.examples/H09.ssb.modulation.pd \
|
||||
doc/3.audio.examples/H10.measurement.pd \
|
||||
doc/3.audio.examples/H11.shelving.pd \
|
||||
doc/3.audio.examples/H12.peaking.pd \
|
||||
doc/3.audio.examples/H13.butterworth.pd \
|
||||
doc/3.audio.examples/H14.all.pass.pd \
|
||||
doc/3.audio.examples/H15.phaser.pd \
|
||||
doc/3.audio.examples/H16.adsr.filter.qlist.pd \
|
||||
doc/3.audio.examples/I01.Fourier.analysis.pd \
|
||||
doc/3.audio.examples/I02.Hann.window.pd \
|
||||
doc/3.audio.examples/I03.resynthesis.pd \
|
||||
doc/3.audio.examples/I04.noisegate.pd \
|
||||
doc/3.audio.examples/I05.compressor.pd \
|
||||
doc/3.audio.examples/I06.timbre.stamp.pd \
|
||||
doc/3.audio.examples/I07.phase.vocoder.pd \
|
||||
doc/3.audio.examples/I08.pvoc.reverb.pd \
|
||||
doc/3.audio.examples/I09.sheep.from.goats.pd \
|
||||
doc/3.audio.examples/I10.phase.bash.pd \
|
||||
doc/3.audio.examples/J01.even.odd.pd \
|
||||
doc/3.audio.examples/J02.trapezoids.pd \
|
||||
doc/3.audio.examples/J03.pulse.width.mod.pd \
|
||||
doc/3.audio.examples/J04.corners.pd \
|
||||
doc/3.audio.examples/J05.triangle.pd \
|
||||
doc/3.audio.examples/J06.enveloping.pd \
|
||||
doc/3.audio.examples/J07.oversampling.pd \
|
||||
doc/3.audio.examples/J08.classicsynth.pd \
|
||||
doc/3.audio.examples/J09.bandlimited.pd \
|
||||
doc/3.audio.examples/osc-voice.pd \
|
||||
doc/3.audio.examples/output~.pd \
|
||||
doc/3.audio.examples/partial.pd \
|
||||
doc/3.audio.examples/qlist-sampler.txt \
|
||||
doc/3.audio.examples/qlist.txt \
|
||||
doc/3.audio.examples/qlist2.txt \
|
||||
doc/3.audio.examples/reverb-echo.pd \
|
||||
doc/3.audio.examples/sampvoice.pd \
|
||||
doc/3.audio.examples/sampvoice2.pd \
|
||||
doc/3.audio.examples/shepvoice.pd \
|
||||
doc/3.audio.examples/sinevoice.pd \
|
||||
doc/3.audio.examples/spectrum-partial.pd \
|
||||
doc/4.data.structures/00.intro.txt \
|
||||
doc/4.data.structures/01.scalars.pd \
|
||||
doc/4.data.structures/02.getting.data.pd \
|
||||
doc/4.data.structures/03.setting.data.pd \
|
||||
doc/4.data.structures/04.append.pd \
|
||||
doc/4.data.structures/05.array.pd \
|
||||
doc/4.data.structures/06.file.pd \
|
||||
doc/4.data.structures/07.sequencer.pd \
|
||||
doc/4.data.structures/08.selection.pd \
|
||||
doc/4.data.structures/09.scaling.pd \
|
||||
doc/4.data.structures/10.onoff.pd \
|
||||
doc/4.data.structures/11.array.controls.pd \
|
||||
doc/4.data.structures/12.beat-patterns.pd \
|
||||
doc/4.data.structures/13.sliderule.pd \
|
||||
doc/4.data.structures/14.partialtracer.pd \
|
||||
doc/4.data.structures/add-trace.pd \
|
||||
doc/4.data.structures/beat-maker.pd \
|
||||
doc/4.data.structures/data-array.pd \
|
||||
doc/4.data.structures/data-start.pd \
|
||||
doc/4.data.structures/file.txt \
|
||||
doc/4.data.structures/osc-voice.pd \
|
||||
doc/4.data.structures/output~.pd \
|
||||
doc/4.data.structures/voice.pd \
|
||||
doc/4.data.structures/z.txt \
|
||||
doc/5.reference/0_all_guis-INTRO.txt \
|
||||
doc/5.reference/abs~-help.pd \
|
||||
doc/5.reference/acoustics-help.pd \
|
||||
doc/5.reference/acoustics~-help.pd \
|
||||
doc/5.reference/adc~_dac~-help.pd \
|
||||
doc/5.reference/append-help.pd \
|
||||
doc/5.reference/bag-help.pd \
|
||||
doc/5.reference/bang-help.pd \
|
||||
doc/5.reference/bang~-help.pd \
|
||||
doc/5.reference/biquad~-help.pd \
|
||||
doc/5.reference/block~-help.pd \
|
||||
doc/5.reference/bng-help.pd \
|
||||
doc/5.reference/bp~-help.pd \
|
||||
doc/5.reference/canvas-help.pd \
|
||||
doc/5.reference/change-help.pd \
|
||||
doc/5.reference/clip~-help.pd \
|
||||
doc/5.reference/cos~-help.pd \
|
||||
doc/5.reference/cpole~-help.pd \
|
||||
doc/5.reference/cputime-help.pd \
|
||||
doc/5.reference/czero_rev~-help.pd \
|
||||
doc/5.reference/czero~-help.pd \
|
||||
doc/5.reference/declare-help.pd \
|
||||
doc/5.reference/delay-help.pd \
|
||||
doc/5.reference/delread~-help.pd \
|
||||
doc/5.reference/delwrite~-help.pd \
|
||||
doc/5.reference/drawnumber-help.pd \
|
||||
doc/5.reference/drawpolygon-help.pd \
|
||||
doc/5.reference/element-help.pd \
|
||||
doc/5.reference/env~-help.pd \
|
||||
doc/5.reference/exp~-help.pd \
|
||||
doc/5.reference/fft~-help.pd \
|
||||
doc/5.reference/float-help.pd \
|
||||
doc/5.reference/framp~-help.pd \
|
||||
doc/5.reference/gatom-help.pd \
|
||||
doc/5.reference/get-help.pd \
|
||||
doc/5.reference/getsize-help.pd \
|
||||
doc/5.reference/graph-help.pd \
|
||||
doc/5.reference/hdial-help.pd \
|
||||
doc/5.reference/help-intro.pd \
|
||||
doc/5.reference/hip~-help.pd \
|
||||
doc/5.reference/hslider-help.pd \
|
||||
doc/5.reference/int-help.pd \
|
||||
doc/5.reference/key-help.pd \
|
||||
doc/5.reference/line-help.pd \
|
||||
doc/5.reference/line~-help.pd \
|
||||
doc/5.reference/list-help.pd \
|
||||
doc/5.reference/log~-help.pd \
|
||||
doc/5.reference/lop~-help.pd \
|
||||
doc/5.reference/makefilename-help.pd \
|
||||
doc/5.reference/makenote-help.pd \
|
||||
doc/5.reference/math-help.pd \
|
||||
doc/5.reference/message-help.pd \
|
||||
doc/5.reference/metro.pd \
|
||||
doc/5.reference/midi-help.pd \
|
||||
doc/5.reference/moses-help.pd \
|
||||
doc/5.reference/my_canvas-help.pd \
|
||||
doc/5.reference/namecanvas-help.pd \
|
||||
doc/5.reference/netreceive-help.pd \
|
||||
doc/5.reference/netsend-help.pd \
|
||||
doc/5.reference/noise~-help.pd \
|
||||
doc/5.reference/numbox2-help.pd \
|
||||
doc/5.reference/openpanel-help.pd \
|
||||
doc/5.reference/operators-help.pd \
|
||||
doc/5.reference/osc~-help.pd \
|
||||
doc/5.reference/otherbinops-help.pd \
|
||||
doc/5.reference/pack-help.pd \
|
||||
doc/5.reference/pd-help.pd \
|
||||
doc/5.reference/phasor~-help.pd \
|
||||
doc/5.reference/pipe-help.pd \
|
||||
doc/5.reference/plot-help.pd \
|
||||
doc/5.reference/pointer-help.pd \
|
||||
doc/5.reference/poly-help.pd \
|
||||
doc/5.reference/pow~-help.pd \
|
||||
doc/5.reference/print-help.pd \
|
||||
doc/5.reference/print~-help.pd \
|
||||
doc/5.reference/qlist-help.pd \
|
||||
doc/5.reference/qlist.txt \
|
||||
doc/5.reference/random-help.pd \
|
||||
doc/5.reference/readsf~-help.pd \
|
||||
doc/5.reference/realtime-help.pd \
|
||||
doc/5.reference/receive-help.pd \
|
||||
doc/5.reference/route-help.pd \
|
||||
doc/5.reference/rpole~-help.pd \
|
||||
doc/5.reference/rsqrt~-help.pd \
|
||||
doc/5.reference/rzero_rev~-help.pd \
|
||||
doc/5.reference/rzero~-help.pd \
|
||||
doc/5.reference/samphold~-help.pd \
|
||||
doc/5.reference/savepanel-help.pd \
|
||||
doc/5.reference/select-help.pd \
|
||||
doc/5.reference/send-help.pd \
|
||||
doc/5.reference/send~-help.pd \
|
||||
doc/5.reference/set-help.pd \
|
||||
doc/5.reference/setsize-help.pd \
|
||||
doc/5.reference/setsize.txt \
|
||||
doc/5.reference/sigbinops-help.pd \
|
||||
doc/5.reference/sig~-help.pd \
|
||||
doc/5.reference/snapshot~-help.pd \
|
||||
doc/5.reference/soundfiler-help.pd \
|
||||
doc/5.reference/spigot-help.pd \
|
||||
doc/5.reference/sqrt~-help.pd \
|
||||
doc/5.reference/stripnote-help.pd \
|
||||
doc/5.reference/struct-help.pd \
|
||||
doc/5.reference/sublist-help.pd \
|
||||
doc/5.reference/swap-help.pd \
|
||||
doc/5.reference/switch~-help.pd \
|
||||
doc/5.reference/table.txt \
|
||||
doc/5.reference/tabosc4~-help.pd \
|
||||
doc/5.reference/tabplay~-help.pd \
|
||||
doc/5.reference/tabread-help.pd \
|
||||
doc/5.reference/tabread4~-help.pd \
|
||||
doc/5.reference/tabreceive~-help.pd \
|
||||
doc/5.reference/tabsend~-help.pd \
|
||||
doc/5.reference/tabwrite-help.pd \
|
||||
doc/5.reference/tabwrite~-help.pd \
|
||||
doc/5.reference/text-help.pd \
|
||||
doc/5.reference/textfile-help.pd \
|
||||
doc/5.reference/textfile.txt \
|
||||
doc/5.reference/threshold~-help.pd \
|
||||
doc/5.reference/throw~-help.pd \
|
||||
doc/5.reference/timer-help.pd \
|
||||
doc/5.reference/toggle-help.pd \
|
||||
doc/5.reference/trigger-help.pd \
|
||||
doc/5.reference/unpack-help.pd \
|
||||
doc/5.reference/until-help.pd \
|
||||
doc/5.reference/value-help.pd \
|
||||
doc/5.reference/vcf~-help.pd \
|
||||
doc/5.reference/vdial-help.pd \
|
||||
doc/5.reference/vd~-help.pd \
|
||||
doc/5.reference/vline~-help.pd \
|
||||
doc/5.reference/vslider-help.pd \
|
||||
doc/5.reference/vu-help.pd \
|
||||
doc/5.reference/wrap~-help.pd \
|
||||
doc/5.reference/writesf~-help.pd \
|
||||
doc/5.reference/x_all_guis.pd \
|
||||
doc/6.externs/0.README.txt \
|
||||
doc/6.externs/dspobj~.c \
|
||||
doc/6.externs/makefile \
|
||||
doc/6.externs/obj1.c \
|
||||
doc/6.externs/obj2.c \
|
||||
doc/6.externs/obj3.c \
|
||||
doc/6.externs/obj4.c \
|
||||
doc/6.externs/obj5.c \
|
||||
doc/6.externs/test-dspobj~.pd \
|
||||
doc/6.externs/test-obj1.pd \
|
||||
doc/6.externs/test-obj2.pd \
|
||||
doc/6.externs/test-obj3.pd \
|
||||
doc/6.externs/test-obj4.pd \
|
||||
doc/6.externs/test-obj5.pd \
|
||||
doc/7.stuff/soundfile-tools/1.ring-mod.pd \
|
||||
doc/7.stuff/soundfile-tools/2.bandpass.pd \
|
||||
doc/7.stuff/soundfile-tools/3.phase.vocoder.pd \
|
||||
doc/7.stuff/soundfile-tools/4.looper.pd \
|
||||
doc/7.stuff/soundfile-tools/5.reverb.pd \
|
||||
doc/7.stuff/soundfile-tools/6.vocoder.pd \
|
||||
doc/7.stuff/soundfile-tools/README.txt \
|
||||
doc/7.stuff/synth/1.poly.synth.pd \
|
||||
doc/7.stuff/synth/gadsr.pd \
|
||||
doc/7.stuff/synth/numset.pd \
|
||||
doc/7.stuff/synth/preset.pd \
|
||||
doc/7.stuff/synth/preset1.txt \
|
||||
doc/7.stuff/synth/preset2.txt \
|
||||
doc/7.stuff/synth/preset3.txt \
|
||||
doc/7.stuff/synth/preset4.txt \
|
||||
doc/7.stuff/synth/README.txt \
|
||||
doc/7.stuff/synth/synthvoice.pd \
|
||||
doc/7.stuff/synth/test-gadsr.pd \
|
||||
doc/7.stuff/tools/latency.pd \
|
||||
doc/7.stuff/tools/load-meter.pd \
|
||||
doc/7.stuff/tools/testtone.pd \
|
||||
doc/7.stuff/tools/testtone16.pd \
|
||||
doc/sound/bell.aiff \
|
||||
doc/sound/voice.wav \
|
||||
doc/sound/voice2.wav
|
1297
src/pd-0.44-2/Makefile.in
Normal file
41
src/pd-0.44-2/README.txt
Normal file
|
@ -0,0 +1,41 @@
|
|||
This is the README file for Pd, a free real-time computer music software
|
||||
package resembling Max. You can get Pd for Linux, Mac OSX, or MS Windows,
|
||||
from http://www.crca.ucsd.edu/~msp/software.html.
|
||||
Installation instructions are in the HTML DOCUMENTATION at:
|
||||
|
||||
http://www.crca.ucsd.edu/~msp/Pd_documentation/index.htm
|
||||
|
||||
If you download and unpack Pd, you will also find the html documentation
|
||||
locally in the file, .../pd-whatever/doc/1.manual/index.htm. To unpack Pd:
|
||||
|
||||
LINUX (or freeBSD). In some linux installations you can download Pd via
|
||||
"apt-get install puredata" or "yum install puredata"; otherwise you will have to
|
||||
download the source and compile it as described in the file, INSTALL.txt
|
||||
|
||||
Microsoft Windows. Pd binaries are distributed as a "zip" file. Unzip this,
|
||||
creating a directory such as \pd.
|
||||
|
||||
Macintosh. The web browser will automatically unpack the distributions
|
||||
into a folder such as "pd-0.35" on your desktop.
|
||||
|
||||
If you have qustions about Pd, or if you wish to be notified of releases,
|
||||
check the Pd mailing list: http://iem.mhsg.ac.at/mailinglists/pd-list/
|
||||
|
||||
Many extensions to Pd are available, notably for handling video and 3D
|
||||
graphics; see the html documentation for pointers.
|
||||
|
||||
COPYRIGHT. Except as otherwise noted, all files in the Pd distribution are
|
||||
|
||||
Copyright (c) 1997-2012 Miller Puckette and others.
|
||||
|
||||
For information on usage and redistribution, and for a DISCLAIMER OF ALL
|
||||
WARRANTIES, see the file, "LICENSE.txt," included in the Pd distribution.
|
||||
(Note that tcl/tk, expr, and some other files are copyrighted separately).
|
||||
|
||||
ACKNOWLEDGEMENTS. Thanks to Harry Castle, Krzysztof Czaja, Mark Danks,
|
||||
Christian Feldbauer, Guenter Geiger, Kerry Hagan, Trevor Johnson, Fernando
|
||||
Lopez-Lezcano, Adam Lindsay, Karl MacMillan, Thomas Musil, Toshinori Ohkouchi,
|
||||
Winfried Ritsch, Vibeke Sorensen, Rand Steiger, Hans-Christoph Steiner,
|
||||
Shahrokh Yadegari, David Zicarelli, Iohannes Zmoelnig, and probably many others
|
||||
for contributions of code, documentation, ideas, and expertise. This work has
|
||||
received support from Intel, Keith Mcmillen Instruments, and UCSD.
|
979
src/pd-0.44-2/aclocal.m4
vendored
Normal file
|
@ -0,0 +1,979 @@
|
|||
# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
|
||||
# Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
|
||||
[m4_warning([this file was generated for autoconf 2.69.
|
||||
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
|
||||
# Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 1
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.11'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.11.6], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
# _AM_AUTOCONF_VERSION(VERSION)
|
||||
# -----------------------------
|
||||
# aclocal traces this macro to find the Autoconf version.
|
||||
# This is a private macro too. Using m4_define simplifies
|
||||
# the logic in aclocal, which can simply ignore this definition.
|
||||
m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.11.6])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 1
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||
# depending on how configure is run. This is pretty annoying, since
|
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||
# source directory, any form will work fine, but in subdirectories a
|
||||
# relative path needs to be adjusted first.
|
||||
#
|
||||
# $ac_aux_dir/missing
|
||||
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||
# $top_srcdir/$ac_aux_dir/missing
|
||||
# fails if $ac_aux_dir is absolute,
|
||||
# fails when called from a subdirectory in a VPATH build with
|
||||
# a relative $ac_aux_dir
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||
# and then we would define $MISSING as
|
||||
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# This will work as long as MISSING is not called from configure, because
|
||||
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||
# However there are other variables, like CC, which are often used in
|
||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||
#
|
||||
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 9
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])dnl
|
||||
AC_SUBST([$1_FALSE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
|
||||
# 2010, 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 12
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
am__universal=false
|
||||
m4_case([$1], [CC],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac],
|
||||
[CXX],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac])
|
||||
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this. Also, some Intel
|
||||
# versions had trouble with output in subdirs
|
||||
am__obj=sub/conftest.${OBJEXT-o}
|
||||
am__minus_obj="-o $am__obj"
|
||||
case $depmode in
|
||||
gcc)
|
||||
# This depmode causes a compiler race in universal mode.
|
||||
test "$am__universal" = false || continue
|
||||
;;
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
|
||||
# This compiler won't grok `-c -o', but also, the minuso test has
|
||||
# not run yet. These depmodes are late enough in the game, and
|
||||
# so weak that their functioning should not be impacted.
|
||||
am__obj=conftest.${OBJEXT-o}
|
||||
am__minus_obj=
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=$am__obj \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
am__nodep='_no'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||
AC_SUBST([am__nodep])dnl
|
||||
_AM_SUBST_NOTMAKE([am__nodep])dnl
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 5
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[{
|
||||
# Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||||
# are listed without --file. Let's play safe and only enable the eval
|
||||
# if we detect the quoting.
|
||||
case $CONFIG_FILES in
|
||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||
*) set x $CONFIG_FILES ;;
|
||||
esac
|
||||
shift
|
||||
for mf
|
||||
do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
}
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 16
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
# The call with PACKAGE and VERSION arguments is the old style
|
||||
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||
# and VERSION should now be passed to AC_INIT and removed from
|
||||
# the call to AM_INIT_AUTOMAKE.
|
||||
# We support both call styles for the transition. After
|
||||
# the next Automake release, Autoconf can make the AC_INIT
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.62])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||||
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||||
# is not polluted with repeated "-I."
|
||||
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||||
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
||||
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||
[_AM_DEPENDENCIES(OBJC)],
|
||||
[define([AC_PROG_OBJC],
|
||||
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||||
])
|
||||
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
|
||||
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
|
||||
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
|
||||
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_CONFIG_COMMANDS_PRE(dnl
|
||||
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||
])
|
||||
|
||||
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||
dnl mangled by Autoconf and run in a shell conditional statement.
|
||||
m4_define([_AC_COMPILER_EXEEXT],
|
||||
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
|
||||
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||
# loop where config.status creates the headers, so we can generate
|
||||
# our stamp files there.
|
||||
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||
[# Compute $1's index in $config_headers.
|
||||
_am_arg=$1
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$_am_arg | $_am_arg:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
|
||||
# Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 1
|
||||
|
||||
# AM_PROG_INSTALL_SH
|
||||
# ------------------
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
if test x"${install_sh}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||||
*)
|
||||
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||||
esac
|
||||
fi
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo this is the am__doit target
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# Ignore all kinds of additional output from `make'.
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
;;
|
||||
esac
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 6
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
|
||||
|
||||
# AM_MISSING_HAS_RUN
|
||||
# ------------------
|
||||
# Define MISSING if not defined so far and test if it supports --run.
|
||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||
if test x"${MISSING+set}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
||||
*)
|
||||
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
||||
esac
|
||||
fi
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
|
||||
# Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 1
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check for `mkdir -p'.
|
||||
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||
[AC_PREREQ([2.60])dnl
|
||||
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
|
||||
dnl while keeping a definition of mkdir_p for backward compatibility.
|
||||
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
|
||||
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
|
||||
dnl Makefile.ins that do not define MKDIR_P, so we do our own
|
||||
dnl adjustment using top_builddir (which is defined more often than
|
||||
dnl MKDIR_P).
|
||||
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
|
||||
case $mkdir_p in
|
||||
[[\\/$]]* | ?:[[\\/]]*) ;;
|
||||
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
|
||||
# Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 5
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
# _AM_SET_OPTION(NAME)
|
||||
# --------------------
|
||||
# Set option NAME. Presently that only means defining a flag for this option.
|
||||
AC_DEFUN([_AM_SET_OPTION],
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
|
||||
# _AM_SET_OPTIONS(OPTIONS)
|
||||
# ------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
|
||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||
# -------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 5
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Reject unsafe characters in $srcdir or the absolute working directory
|
||||
# name. Accept space and tab only in the latter.
|
||||
am_lf='
|
||||
'
|
||||
case `pwd` in
|
||||
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
||||
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
||||
esac
|
||||
case $srcdir in
|
||||
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||||
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
|
||||
esac
|
||||
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t "$srcdir/configure" conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 1
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
# specify the program used to strip binaries. This is especially
|
||||
# annoying in cross-compiling environments, where the build's strip
|
||||
# is unlikely to handle the host's binaries.
|
||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||
# always use install-sh in `make install-strip', and initialize
|
||||
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||||
# This macro is traced by Automake.
|
||||
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||
|
||||
# AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# --------------------------
|
||||
# Public sister of _AM_SUBST_NOTMAKE.
|
||||
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_PROG_TAR(FORMAT)
|
||||
# --------------------
|
||||
# Check how to create a tarball in format FORMAT.
|
||||
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||
#
|
||||
# Substitute a variable $(am__tar) that is a command
|
||||
# writing to stdout a FORMAT-tarball containing the directory
|
||||
# $tardir.
|
||||
# tardir=directory && $(am__tar) > result.tar
|
||||
#
|
||||
# Substitute a variable $(am__untar) that extract such
|
||||
# a tarball read from stdin.
|
||||
# $(am__untar) < result.tar
|
||||
AC_DEFUN([_AM_PROG_TAR],
|
||||
[# Always define AMTAR for backward compatibility. Yes, it's still used
|
||||
# in the wild :-( We should find a proper way to deprecate it ...
|
||||
AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([m4/android.m4])
|
||||
m4_include([m4/iphone.m4])
|
||||
m4_include([m4/universal.m4])
|
||||
m4_include([m4/generated/libtool.m4])
|
||||
m4_include([m4/generated/ltoptions.m4])
|
||||
m4_include([m4/generated/ltsugar.m4])
|
||||
m4_include([m4/generated/ltversion.m4])
|
||||
m4_include([m4/generated/lt~obsolete.m4])
|
26
src/pd-0.44-2/asio/Makefile.am
Normal file
|
@ -0,0 +1,26 @@
|
|||
# The ASIO sources are not free, so they are not included here. You can get
|
||||
# them for free (as in beer) from Steinberg:
|
||||
|
||||
# http://www.steinberg.net/en/company/3rd_party_developer.html
|
||||
|
||||
# First, download the ASIO SDK. You have to agree to Steinberg's license, then
|
||||
# submit an email address, then they'll send you the download URL in an
|
||||
# email. Download the asiosdk2.2.zip file to the pd/asio directory, then unzip
|
||||
# it right into that folder. You should have all of the ASIO files in
|
||||
# pd/asio/ASIOSDK2 when you are done unzipping.
|
||||
|
||||
# this is built as a "libtool convenience library"
|
||||
# http://sources.redhat.com/automake/automake.html#Libtool-Convenience-Libraries
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
AM_CFLAGS =
|
||||
INCLUDES = -I./ASIOSDK2/host -I./ASIOSDK2/host/pc -I./ASIOSDK2/common
|
||||
|
||||
noinst_LTLIBRARIES = libasio.la
|
||||
|
||||
nodist_libasio_la_SOURCES = \
|
||||
ASIOSDK2/common/asio.cpp \
|
||||
ASIOSDK2/host/asiodrivers.cpp \
|
||||
ASIOSDK2/host/pc/asiolist.cpp
|
||||
|
||||
EXTRA_DIST = README.txt
|
561
src/pd-0.44-2/asio/Makefile.in
Normal file
|
@ -0,0 +1,561 @@
|
|||
# Makefile.in generated by automake 1.11.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
||||
# Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# The ASIO sources are not free, so they are not included here. You can get
|
||||
# them for free (as in beer) from Steinberg:
|
||||
|
||||
# http://www.steinberg.net/en/company/3rd_party_developer.html
|
||||
|
||||
# First, download the ASIO SDK. You have to agree to Steinberg's license, then
|
||||
# submit an email address, then they'll send you the download URL in an
|
||||
# email. Download the asiosdk2.2.zip file to the pd/asio directory, then unzip
|
||||
# it right into that folder. You should have all of the ASIO files in
|
||||
# pd/asio/ASIOSDK2 when you are done unzipping.
|
||||
|
||||
# this is built as a "libtool convenience library"
|
||||
# http://sources.redhat.com/automake/automake.html#Libtool-Convenience-Libraries
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__make_dryrun = \
|
||||
{ \
|
||||
am__dry=no; \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
||||
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
||||
*) \
|
||||
for am__flg in $$MAKEFLAGS; do \
|
||||
case $$am__flg in \
|
||||
*=*|--*) ;; \
|
||||
*n*) am__dry=yes; break;; \
|
||||
esac; \
|
||||
done;; \
|
||||
esac; \
|
||||
test $$am__dry = yes; \
|
||||
}
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = asio
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/android.m4 \
|
||||
$(top_srcdir)/m4/iphone.m4 $(top_srcdir)/m4/universal.m4 \
|
||||
$(top_srcdir)/m4/generated/libtool.m4 \
|
||||
$(top_srcdir)/m4/generated/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/generated/ltsugar.m4 \
|
||||
$(top_srcdir)/m4/generated/ltversion.m4 \
|
||||
$(top_srcdir)/m4/generated/lt~obsolete.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
LTLIBRARIES = $(noinst_LTLIBRARIES)
|
||||
libasio_la_LIBADD =
|
||||
nodist_libasio_la_OBJECTS = asio.lo asiodrivers.lo asiolist.lo
|
||||
libasio_la_OBJECTS = $(nodist_libasio_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||
depcomp = $(SHELL) $(top_srcdir)/m4/config/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(nodist_libasio_la_SOURCES)
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
ALSA_LIBS = @ALSA_LIBS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ARCH_CFLAGS = @ARCH_CFLAGS@
|
||||
ARCH_LDFLAGS = @ARCH_LDFLAGS@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXTERNAL_CFLAGS = @EXTERNAL_CFLAGS@
|
||||
EXTERNAL_EXTENSION = @EXTERNAL_EXTENSION@
|
||||
EXTERNAL_LDFLAGS = @EXTERNAL_LDFLAGS@
|
||||
EXTERNTARGET = @EXTERNTARGET@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_MSGFMT = @HAVE_MSGFMT@
|
||||
INCLUDES = -I./ASIOSDK2/host -I./ASIOSDK2/host/pc -I./ASIOSDK2/common
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
JACK_LIBS = @JACK_LIBS@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBM = @LIBM@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
AM_CFLAGS =
|
||||
noinst_LTLIBRARIES = libasio.la
|
||||
nodist_libasio_la_SOURCES = \
|
||||
ASIOSDK2/common/asio.cpp \
|
||||
ASIOSDK2/host/asiodrivers.cpp \
|
||||
ASIOSDK2/host/pc/asiolist.cpp
|
||||
|
||||
EXTRA_DIST = README.txt
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .cpp .lo .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign asio/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign asio/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
clean-noinstLTLIBRARIES:
|
||||
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
||||
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
libasio.la: $(libasio_la_OBJECTS) $(libasio_la_DEPENDENCIES) $(EXTRA_libasio_la_DEPENDENCIES)
|
||||
$(CXXLINK) $(libasio_la_OBJECTS) $(libasio_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asio.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asiodrivers.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asiolist.Plo@am__quote@
|
||||
|
||||
.cpp.o:
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.cpp.obj:
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.cpp.lo:
|
||||
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
|
||||
|
||||
asio.lo: ASIOSDK2/common/asio.cpp
|
||||
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT asio.lo -MD -MP -MF $(DEPDIR)/asio.Tpo -c -o asio.lo `test -f 'ASIOSDK2/common/asio.cpp' || echo '$(srcdir)/'`ASIOSDK2/common/asio.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/asio.Tpo $(DEPDIR)/asio.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ASIOSDK2/common/asio.cpp' object='asio.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o asio.lo `test -f 'ASIOSDK2/common/asio.cpp' || echo '$(srcdir)/'`ASIOSDK2/common/asio.cpp
|
||||
|
||||
asiodrivers.lo: ASIOSDK2/host/asiodrivers.cpp
|
||||
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT asiodrivers.lo -MD -MP -MF $(DEPDIR)/asiodrivers.Tpo -c -o asiodrivers.lo `test -f 'ASIOSDK2/host/asiodrivers.cpp' || echo '$(srcdir)/'`ASIOSDK2/host/asiodrivers.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/asiodrivers.Tpo $(DEPDIR)/asiodrivers.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ASIOSDK2/host/asiodrivers.cpp' object='asiodrivers.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o asiodrivers.lo `test -f 'ASIOSDK2/host/asiodrivers.cpp' || echo '$(srcdir)/'`ASIOSDK2/host/asiodrivers.cpp
|
||||
|
||||
asiolist.lo: ASIOSDK2/host/pc/asiolist.cpp
|
||||
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT asiolist.lo -MD -MP -MF $(DEPDIR)/asiolist.Tpo -c -o asiolist.lo `test -f 'ASIOSDK2/host/pc/asiolist.cpp' || echo '$(srcdir)/'`ASIOSDK2/host/pc/asiolist.cpp
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/asiolist.Tpo $(DEPDIR)/asiolist.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ASIOSDK2/host/pc/asiolist.cpp' object='asiolist.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o asiolist.lo `test -f 'ASIOSDK2/host/pc/asiolist.cpp' || echo '$(srcdir)/'`ASIOSDK2/host/pc/asiolist.cpp
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LTLIBRARIES)
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool clean-noinstLTLIBRARIES ctags distclean \
|
||||
distclean-compile distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
|
||||
pdf pdf-am ps ps-am tags uninstall uninstall-am
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
13
src/pd-0.44-2/asio/README.txt
Normal file
|
@ -0,0 +1,13 @@
|
|||
|
||||
|
||||
In order to build ASIO support into Pd on Windows, you need to download the
|
||||
ASIO sources from Steinberg directly. Their license does not let us
|
||||
redistribute their source files.
|
||||
|
||||
- Download the ASIO SDK http://www.steinberg.net/en/company/3rd_party_developer.html
|
||||
You have to agree to Steinberg's license, then submit an email address, then
|
||||
they'll send you the download URL in an email.
|
||||
|
||||
- Uncompress asiosdk2.2.zip into pd/asio
|
||||
|
||||
|
24
src/pd-0.44-2/autogen.sh
Executable file
|
@ -0,0 +1,24 @@
|
|||
#!/bin/sh
|
||||
|
||||
PATH=/sw/bin:$PATH
|
||||
|
||||
PWD=${0%/*}
|
||||
|
||||
|
||||
## git cannot really handle empty directories
|
||||
## so let's create the missing ones
|
||||
mkdir -p ${PWD}/m4/generated
|
||||
|
||||
case `uname -s` in
|
||||
MINGW*)
|
||||
# autoreconf doesn't always work on MinGW
|
||||
aclocal --force -I m4/generated -I m4 && \
|
||||
libtoolize --install --force && \
|
||||
autoconf --force && \
|
||||
automake --add-missing --copy --force-missing && \
|
||||
true
|
||||
;;
|
||||
*)
|
||||
autoreconf --install --force --verbose
|
||||
;;
|
||||
esac
|
20990
src/pd-0.44-2/autom4te.cache/output.0
Normal file
20990
src/pd-0.44-2/autom4te.cache/output.1
Normal file
20990
src/pd-0.44-2/autom4te.cache/output.2
Normal file
516
src/pd-0.44-2/autom4te.cache/requests
Normal file
|
@ -0,0 +1,516 @@
|
|||
# This file was generated by Autom4te Sun Apr 29 21:48:16 UTC 2012.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'/usr/share/aclocal/argz.m4',
|
||||
'/usr/share/aclocal/libtool.m4',
|
||||
'/usr/share/aclocal/ltdl.m4',
|
||||
'/usr/share/aclocal/ltoptions.m4',
|
||||
'/usr/share/aclocal/ltsugar.m4',
|
||||
'/usr/share/aclocal/ltversion.m4',
|
||||
'/usr/share/aclocal/lt~obsolete.m4',
|
||||
'/usr/share/aclocal-1.11/amversion.m4',
|
||||
'/usr/share/aclocal-1.11/auxdir.m4',
|
||||
'/usr/share/aclocal-1.11/cond.m4',
|
||||
'/usr/share/aclocal-1.11/depend.m4',
|
||||
'/usr/share/aclocal-1.11/depout.m4',
|
||||
'/usr/share/aclocal-1.11/init.m4',
|
||||
'/usr/share/aclocal-1.11/install-sh.m4',
|
||||
'/usr/share/aclocal-1.11/lead-dot.m4',
|
||||
'/usr/share/aclocal-1.11/make.m4',
|
||||
'/usr/share/aclocal-1.11/missing.m4',
|
||||
'/usr/share/aclocal-1.11/mkdirp.m4',
|
||||
'/usr/share/aclocal-1.11/options.m4',
|
||||
'/usr/share/aclocal-1.11/runlog.m4',
|
||||
'/usr/share/aclocal-1.11/sanity.m4',
|
||||
'/usr/share/aclocal-1.11/silent.m4',
|
||||
'/usr/share/aclocal-1.11/strip.m4',
|
||||
'/usr/share/aclocal-1.11/substnot.m4',
|
||||
'/usr/share/aclocal-1.11/tar.m4',
|
||||
'm4/android.m4',
|
||||
'm4/iphone.m4',
|
||||
'm4/universal.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AM_ENABLE_STATIC' => 1,
|
||||
'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
|
||||
'_LT_AC_SHELL_INIT' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'_LT_AC_LANG_CXX_CONFIG' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
|
||||
'_LT_AC_LANG_C_CONFIG' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_LIBTOOL_OBJDIR' => 1,
|
||||
'gl_FUNC_ARGZ' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'LTOBSOLETE_VERSION' => 1,
|
||||
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
|
||||
'LT_LIB_M' => 1,
|
||||
'_LT_AC_CHECK_DLFCN' => 1,
|
||||
'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
|
||||
'LTSUGAR_VERSION' => 1,
|
||||
'_LT_PROG_LTMAIN' => 1,
|
||||
'LT_SYS_SYMBOL_USCORE' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'AC_LIBTOOL_GCJ' => 1,
|
||||
'_LT_WITH_SYSROOT' => 1,
|
||||
'LT_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'LT_FUNC_DLSYM_USCORE' => 1,
|
||||
'_LT_AC_LANG_F77' => 1,
|
||||
'AC_LIBTOOL_CONFIG' => 1,
|
||||
'AC_LTDL_DLLIB' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'AM_DISABLE_SHARED' => 1,
|
||||
'_LT_PROG_ECHO_BACKSLASH' => 1,
|
||||
'_LTDL_SETUP' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'_LT_AC_LANG_CXX' => 1,
|
||||
'AM_PROG_LD' => 1,
|
||||
'_LT_AC_FILE_LTDLL_C' => 1,
|
||||
'AC_LIB_LTDL' => 1,
|
||||
'PD_CHECK_ANDROID' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'AC_PROG_NM' => 1,
|
||||
'AC_LIBTOOL_DLOPEN' => 1,
|
||||
'AC_PROG_LD' => 1,
|
||||
'AC_ENABLE_FAST_INSTALL' => 1,
|
||||
'AC_PROG_LD_GNU' => 1,
|
||||
'AC_LIBTOOL_FC' => 1,
|
||||
'LTDL_CONVENIENCE' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'AC_LTDL_PREOPEN' => 1,
|
||||
'_LT_LINKER_BOILERPLATE' => 1,
|
||||
'_LT_PREPARE_SED_QUOTE_VARS' => 1,
|
||||
'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
|
||||
'AC_LIBTOOL_PROG_CC_C_O' => 1,
|
||||
'gl_PREREQ_ARGZ' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'LT_PROG_RC' => 1,
|
||||
'LT_SYS_MODULE_EXT' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'_LT_AC_LANG_GCJ' => 1,
|
||||
'AC_LTDL_OBJDIR' => 1,
|
||||
'_LT_PATH_TOOL_PREFIX' => 1,
|
||||
'AC_LIBTOOL_RC' => 1,
|
||||
'AC_DISABLE_FAST_INSTALL' => 1,
|
||||
'_LT_AC_PROG_ECHO_BACKSLASH' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'include' => 1,
|
||||
'_LT_AC_TRY_DLOPEN_SELF' => 1,
|
||||
'_LT_AC_SYS_LIBPATH_AIX' => 1,
|
||||
'LT_AC_PROG_SED' => 1,
|
||||
'AM_ENABLE_SHARED' => 1,
|
||||
'LTDL_INSTALLABLE' => 1,
|
||||
'_LT_AC_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_ENABLE_SHARED' => 1,
|
||||
'AC_ENABLE_STATIC' => 1,
|
||||
'_LT_REQUIRED_DARWIN_CHECKS' => 1,
|
||||
'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
|
||||
'_LT_AC_TAGVAR' => 1,
|
||||
'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'LT_LIB_DLLOAD' => 1,
|
||||
'_LT_PROG_CXX' => 1,
|
||||
'_LT_PROG_F77' => 1,
|
||||
'LTVERSION_VERSION' => 1,
|
||||
'LTDL_INIT' => 1,
|
||||
'm4_include' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'AC_PROG_EGREP' => 1,
|
||||
'AC_PATH_MAGIC' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AC_LTDL_SYSSEARCHPATH' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'LT_CMD_MAX_LEN' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'_LT_LINKER_OPTION' => 1,
|
||||
'AC_LIBTOOL_COMPILER_OPTION' => 1,
|
||||
'AC_DISABLE_SHARED' => 1,
|
||||
'_LT_COMPILER_BOILERPLATE' => 1,
|
||||
'AC_LIBTOOL_WIN32_DLL' => 1,
|
||||
'AC_LIBTOOL_SETUP' => 1,
|
||||
'AC_PROG_LD_RELOAD_FLAG' => 1,
|
||||
'AC_LTDL_DLSYM_USCORE' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'LT_LANG' => 1,
|
||||
'LT_SYS_DLSEARCH_PATH' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_LIBTOOL_DLOPEN_SELF' => 1,
|
||||
'LT_OUTPUT' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
|
||||
'AC_WITH_LTDL' => 1,
|
||||
'AC_LIBTOOL_LINKER_OPTION' => 1,
|
||||
'LT_AC_PROG_RC' => 1,
|
||||
'AC_LIBTOOL_CXX' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'LT_AC_PROG_GCJ' => 1,
|
||||
'LT_SYS_DLOPEN_SELF' => 1,
|
||||
'PD_CHECK_IPHONE' => 1,
|
||||
'AM_DISABLE_STATIC' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'_LT_AC_PROG_CXXCPP' => 1,
|
||||
'_AC_PROG_LIBTOOL' => 1,
|
||||
'PD_CHECK_UNIVERSAL' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'AC_PATH_TOOL_PREFIX' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AC_LIBTOOL_F77' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'LT_AC_PROG_EGREP' => 1,
|
||||
'_LT_PROG_FC' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'AC_LIBTOOL_LANG_C_CONFIG' => 1,
|
||||
'LTOPTIONS_VERSION' => 1,
|
||||
'_LT_AC_SYS_COMPILER' => 1,
|
||||
'AM_PROG_NM' => 1,
|
||||
'AC_LIBLTDL_CONVENIENCE' => 1,
|
||||
'AC_DEPLIBS_CHECK_METHOD' => 1,
|
||||
'AC_LIBLTDL_INSTALLABLE' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'AC_LTDL_ENABLE_INSTALL' => 1,
|
||||
'LT_PROG_GCJ' => 1,
|
||||
'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_DISABLE_STATIC' => 1,
|
||||
'LT_PATH_NM' => 1,
|
||||
'AC_LTDL_SHLIBEXT' => 1,
|
||||
'_LT_AC_LOCK' => 1,
|
||||
'_LT_AC_LANG_RC_CONFIG' => 1,
|
||||
'LT_PROG_GO' => 1,
|
||||
'LT_SYS_MODULE_PATH' => 1,
|
||||
'LT_WITH_LTDL' => 1,
|
||||
'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
|
||||
'AC_LTDL_SHLIBPATH' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
|
||||
'_LT_AC_LANG_F77_CONFIG' => 1,
|
||||
'_LT_COMPILER_OPTION' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_LIBTOOL_PICMODE' => 1,
|
||||
'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
|
||||
'AC_CHECK_LIBM' => 1,
|
||||
'LT_PATH_LD' => 1,
|
||||
'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
|
||||
'AC_LTDL_SYMBOL_USCORE' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'_LT_CC_BASENAME' => 1,
|
||||
'_LT_LIBOBJ' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'1',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'include' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'sinclude' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'm4_include' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AC_SUBST_TRACE' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'2',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'/usr/share/aclocal/argz.m4',
|
||||
'/usr/share/aclocal/ltdl.m4',
|
||||
'/usr/share/aclocal-1.11/amversion.m4',
|
||||
'/usr/share/aclocal-1.11/auxdir.m4',
|
||||
'/usr/share/aclocal-1.11/cond.m4',
|
||||
'/usr/share/aclocal-1.11/depend.m4',
|
||||
'/usr/share/aclocal-1.11/depout.m4',
|
||||
'/usr/share/aclocal-1.11/init.m4',
|
||||
'/usr/share/aclocal-1.11/install-sh.m4',
|
||||
'/usr/share/aclocal-1.11/lead-dot.m4',
|
||||
'/usr/share/aclocal-1.11/make.m4',
|
||||
'/usr/share/aclocal-1.11/missing.m4',
|
||||
'/usr/share/aclocal-1.11/mkdirp.m4',
|
||||
'/usr/share/aclocal-1.11/options.m4',
|
||||
'/usr/share/aclocal-1.11/runlog.m4',
|
||||
'/usr/share/aclocal-1.11/sanity.m4',
|
||||
'/usr/share/aclocal-1.11/silent.m4',
|
||||
'/usr/share/aclocal-1.11/strip.m4',
|
||||
'/usr/share/aclocal-1.11/substnot.m4',
|
||||
'/usr/share/aclocal-1.11/tar.m4',
|
||||
'm4/android.m4',
|
||||
'm4/iphone.m4',
|
||||
'm4/universal.m4',
|
||||
'm4/generated/libtool.m4',
|
||||
'm4/generated/ltoptions.m4',
|
||||
'm4/generated/ltsugar.m4',
|
||||
'm4/generated/ltversion.m4',
|
||||
'm4/generated/lt~obsolete.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AM_ENABLE_STATIC' => 1,
|
||||
'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
|
||||
'_LT_AC_SHELL_INIT' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'_LT_AC_LANG_CXX_CONFIG' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
|
||||
'_LT_AC_LANG_C_CONFIG' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_LIBTOOL_OBJDIR' => 1,
|
||||
'gl_FUNC_ARGZ' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'LTOBSOLETE_VERSION' => 1,
|
||||
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
|
||||
'LT_LIB_M' => 1,
|
||||
'_LT_AC_CHECK_DLFCN' => 1,
|
||||
'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
|
||||
'LTSUGAR_VERSION' => 1,
|
||||
'_LT_PROG_LTMAIN' => 1,
|
||||
'LT_SYS_SYMBOL_USCORE' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'AC_LIBTOOL_GCJ' => 1,
|
||||
'_LT_WITH_SYSROOT' => 1,
|
||||
'LT_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'LT_FUNC_DLSYM_USCORE' => 1,
|
||||
'_LT_AC_LANG_F77' => 1,
|
||||
'AC_LIBTOOL_CONFIG' => 1,
|
||||
'AC_LTDL_DLLIB' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'AM_DISABLE_SHARED' => 1,
|
||||
'_LT_PROG_ECHO_BACKSLASH' => 1,
|
||||
'_LTDL_SETUP' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'_LT_AC_LANG_CXX' => 1,
|
||||
'AM_PROG_LD' => 1,
|
||||
'_LT_AC_FILE_LTDLL_C' => 1,
|
||||
'AC_LIB_LTDL' => 1,
|
||||
'PD_CHECK_ANDROID' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'AC_PROG_NM' => 1,
|
||||
'AC_LIBTOOL_DLOPEN' => 1,
|
||||
'AC_PROG_LD' => 1,
|
||||
'AC_ENABLE_FAST_INSTALL' => 1,
|
||||
'AC_PROG_LD_GNU' => 1,
|
||||
'AC_LIBTOOL_FC' => 1,
|
||||
'LTDL_CONVENIENCE' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'AC_LTDL_PREOPEN' => 1,
|
||||
'_LT_LINKER_BOILERPLATE' => 1,
|
||||
'_LT_PREPARE_SED_QUOTE_VARS' => 1,
|
||||
'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
|
||||
'AC_LIBTOOL_PROG_CC_C_O' => 1,
|
||||
'gl_PREREQ_ARGZ' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'LT_PROG_RC' => 1,
|
||||
'LT_SYS_MODULE_EXT' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'_LT_AC_LANG_GCJ' => 1,
|
||||
'AC_LTDL_OBJDIR' => 1,
|
||||
'_LT_PATH_TOOL_PREFIX' => 1,
|
||||
'AC_LIBTOOL_RC' => 1,
|
||||
'AC_DISABLE_FAST_INSTALL' => 1,
|
||||
'_LT_AC_PROG_ECHO_BACKSLASH' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'include' => 1,
|
||||
'_LT_AC_TRY_DLOPEN_SELF' => 1,
|
||||
'_LT_AC_SYS_LIBPATH_AIX' => 1,
|
||||
'LT_AC_PROG_SED' => 1,
|
||||
'AM_ENABLE_SHARED' => 1,
|
||||
'LTDL_INSTALLABLE' => 1,
|
||||
'_LT_AC_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_ENABLE_SHARED' => 1,
|
||||
'AC_ENABLE_STATIC' => 1,
|
||||
'_LT_REQUIRED_DARWIN_CHECKS' => 1,
|
||||
'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
|
||||
'_LT_AC_TAGVAR' => 1,
|
||||
'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'LT_LIB_DLLOAD' => 1,
|
||||
'_LT_PROG_CXX' => 1,
|
||||
'_LT_PROG_F77' => 1,
|
||||
'LTVERSION_VERSION' => 1,
|
||||
'LTDL_INIT' => 1,
|
||||
'm4_include' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'AC_PROG_EGREP' => 1,
|
||||
'AC_PATH_MAGIC' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AC_LTDL_SYSSEARCHPATH' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'LT_CMD_MAX_LEN' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'_LT_LINKER_OPTION' => 1,
|
||||
'AC_LIBTOOL_COMPILER_OPTION' => 1,
|
||||
'AC_DISABLE_SHARED' => 1,
|
||||
'_LT_COMPILER_BOILERPLATE' => 1,
|
||||
'AC_LIBTOOL_WIN32_DLL' => 1,
|
||||
'AC_LIBTOOL_SETUP' => 1,
|
||||
'AC_PROG_LD_RELOAD_FLAG' => 1,
|
||||
'AC_LTDL_DLSYM_USCORE' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'LT_LANG' => 1,
|
||||
'LT_SYS_DLSEARCH_PATH' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_LIBTOOL_DLOPEN_SELF' => 1,
|
||||
'LT_OUTPUT' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
|
||||
'AC_WITH_LTDL' => 1,
|
||||
'AC_LIBTOOL_LINKER_OPTION' => 1,
|
||||
'LT_AC_PROG_RC' => 1,
|
||||
'AC_LIBTOOL_CXX' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'LT_AC_PROG_GCJ' => 1,
|
||||
'LT_SYS_DLOPEN_SELF' => 1,
|
||||
'PD_CHECK_IPHONE' => 1,
|
||||
'AM_DISABLE_STATIC' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'_LT_AC_PROG_CXXCPP' => 1,
|
||||
'_AC_PROG_LIBTOOL' => 1,
|
||||
'PD_CHECK_UNIVERSAL' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'AC_PATH_TOOL_PREFIX' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AC_LIBTOOL_F77' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'LT_AC_PROG_EGREP' => 1,
|
||||
'_LT_PROG_FC' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'AC_LIBTOOL_LANG_C_CONFIG' => 1,
|
||||
'LTOPTIONS_VERSION' => 1,
|
||||
'_LT_AC_SYS_COMPILER' => 1,
|
||||
'AM_PROG_NM' => 1,
|
||||
'AC_LIBLTDL_CONVENIENCE' => 1,
|
||||
'AC_DEPLIBS_CHECK_METHOD' => 1,
|
||||
'AC_LIBLTDL_INSTALLABLE' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'AC_LTDL_ENABLE_INSTALL' => 1,
|
||||
'LT_PROG_GCJ' => 1,
|
||||
'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_DISABLE_STATIC' => 1,
|
||||
'LT_PATH_NM' => 1,
|
||||
'AC_LTDL_SHLIBEXT' => 1,
|
||||
'_LT_AC_LOCK' => 1,
|
||||
'_LT_AC_LANG_RC_CONFIG' => 1,
|
||||
'LT_PROG_GO' => 1,
|
||||
'LT_SYS_MODULE_PATH' => 1,
|
||||
'LT_WITH_LTDL' => 1,
|
||||
'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
|
||||
'AC_LTDL_SHLIBPATH' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
|
||||
'_LT_AC_LANG_F77_CONFIG' => 1,
|
||||
'_LT_COMPILER_OPTION' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_LIBTOOL_PICMODE' => 1,
|
||||
'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
|
||||
'AC_CHECK_LIBM' => 1,
|
||||
'LT_PATH_LD' => 1,
|
||||
'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
|
||||
'AC_LTDL_SYMBOL_USCORE' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'_LT_CC_BASENAME' => 1,
|
||||
'_LT_LIBOBJ' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
2919
src/pd-0.44-2/autom4te.cache/traces.0
Normal file
1054
src/pd-0.44-2/autom4te.cache/traces.1
Normal file
2919
src/pd-0.44-2/autom4te.cache/traces.2
Normal file
20990
src/pd-0.44-2/configure
vendored
Executable file
278
src/pd-0.44-2/configure.ac
Normal file
|
@ -0,0 +1,278 @@
|
|||
AC_PREREQ(2.59)
|
||||
AC_INIT(pd,0.44.0)
|
||||
AC_CONFIG_SRCDIR(src/m_pd.c)
|
||||
AC_CONFIG_AUX_DIR([m4/config])
|
||||
AM_INIT_AUTOMAKE
|
||||
AC_CONFIG_MACRO_DIR([m4/generated])
|
||||
|
||||
if test -d "$srcdir/portaudio"; then
|
||||
AC_CONFIG_SUBDIRS([portaudio])
|
||||
fi
|
||||
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
# you will need to install iPhone XCode on Mac OS X to use this:
|
||||
PD_CHECK_IPHONE(IPHONEOS=yes, IPHONEOS=no, AC_MSG_ERROR([iPhoneOS SDK not available]))
|
||||
PD_CHECK_ANDROID(ANDROID=yes, ANDROID=no , AC_MSG_ERROR([Android SDK not available]))
|
||||
|
||||
case $host in
|
||||
*darwin*)
|
||||
if test "x${IPHONEOS}" = "xno"; then
|
||||
portaudio=yes
|
||||
portmidi=yes
|
||||
MACOSX=yes
|
||||
|
||||
EXTERNAL_CFLAGS="-fPIC"
|
||||
EXTERNAL_EXTENSION=d_fat
|
||||
else
|
||||
portaudio=no
|
||||
|
||||
EXTERNAL_CFLAGS=
|
||||
EXTERNAL_EXTENSION=pd_darwin
|
||||
fi
|
||||
|
||||
CFLAGS="$CFLAGS -O3 -funroll-loops -fomit-frame-pointer"
|
||||
INCLUDES="$INCLUDES -I/sw/include"
|
||||
LDFLAGS="$LDFLAGS -L/sw/lib"
|
||||
EXTERNAL_LDFLAGS="-bundle -undefined dynamic_lookup"
|
||||
;;
|
||||
*linux*|GNU|GNU/kFreeBSD)
|
||||
# GNU and GNU/kFreeBSD are for Debian, were they are treated very similar to linux
|
||||
if test "x${host}" = "xGNU"; then
|
||||
HURD=yes
|
||||
fi
|
||||
if test "x${ANDROID}" = "xno"; then
|
||||
LINUX=yes
|
||||
portaudio=yes
|
||||
CFLAGS="$CFLAGS -O6 -funroll-loops -fomit-frame-pointer"
|
||||
fi
|
||||
EXTERNAL_CFLAGS="-fPIC"
|
||||
EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -fPIC"
|
||||
EXTERNAL_EXTENSION=pd_linux
|
||||
;;
|
||||
*mingw*)
|
||||
WINDOWS=yes
|
||||
MINGW=yes
|
||||
# ASIO doesn't build yet with the autotools setup. We need to figure out how
|
||||
# to make the final linking phase use g++
|
||||
# asio=yes
|
||||
portaudio=yes
|
||||
CFLAGS="$CFLAGS -O6 -funroll-loops -fomit-frame-pointer -DWINVER=0x0501 -D_WIN32_WINNT=0x0501"
|
||||
# ASIO is a C++ library, so if its included, then use g++ to build
|
||||
CC=g++
|
||||
EXTERNAL_CFLAGS="-mms-bitfields"
|
||||
EXTERNAL_LDFLAGS="-s -shared -Wl,--enable-auto-import -lpd"
|
||||
EXTERNAL_EXTENSION=dll
|
||||
;;
|
||||
*cygwin*)
|
||||
WINDOWS=yes
|
||||
CYGWIN=yes
|
||||
portaudio=yes
|
||||
CFLAGS="$CFLAGS -O6 -funroll-loops -fomit-frame-pointer"
|
||||
EXTERNAL_CFLAGS=
|
||||
EXTERNAL_LDFLAGS="-Wl,--export-dynamic -shared -lpd"
|
||||
EXTERNAL_EXTENSION=dll
|
||||
;;
|
||||
esac
|
||||
|
||||
PD_CHECK_UNIVERSAL(ARCH, universal=yes, universal=no)
|
||||
AM_CONDITIONAL(UNIVERSAL, test x$universal = xyes)
|
||||
if test "x${universal}" = "xyes"; then
|
||||
CFLAGS="${CFLAGS} ${ARCH_CFLAGS}"
|
||||
LDFLAGS="${LDFLAGS} ${ARCH_LDFLAGS}"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(ANDROID, test x$ANDROID = xyes)
|
||||
AM_CONDITIONAL(IPHONEOS, test x$IPHONEOS = xyes)
|
||||
AM_CONDITIONAL(LINUX, test x$LINUX = xyes)
|
||||
AM_CONDITIONAL(HURD, test x$HURD = xyes)
|
||||
AM_CONDITIONAL(MACOSX, test x$MACOSX = xyes)
|
||||
AM_CONDITIONAL(WINDOWS, test x$WINDOWS = xyes)
|
||||
AM_CONDITIONAL(CYGWIN, test x$MINGW = xyes)
|
||||
AM_CONDITIONAL(MINGW, test x$MINGW = xyes)
|
||||
|
||||
# Configure libtool
|
||||
AC_LIBTOOL_DLOPEN
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LIBTOOL
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_LN_S
|
||||
#AC_PROG_GREP
|
||||
#AC_PROG_SED
|
||||
|
||||
AC_SUBST(EXTERNTARGET)
|
||||
AC_SUBST(INCLUDES)
|
||||
|
||||
AC_SUBST(EXTERNAL_EXTENSION)
|
||||
AC_SUBST(EXTERNAL_CFLAGS)
|
||||
AC_SUBST(EXTERNAL_LDFLAGS)
|
||||
AC_SUBST([ALSA_LIBS])
|
||||
AC_SUBST([JACK_LIBS])
|
||||
|
||||
dnl Checks for libraries.
|
||||
AC_CHECK_LIB([dl], [dlopen])
|
||||
AC_CHECK_LIBM
|
||||
# AC_CHECK_LIBM computes LIBM but does not add to LIBS, hence we add it in
|
||||
# src/Makefile.am under pd_LDFLAGS as well
|
||||
|
||||
# Checking for `pthread_create' function in -pthread (MinGW uses unusual names)
|
||||
## CHECK whether this can be replaced by AX_PTHREAD
|
||||
AC_CHECK_LIB([pthread], [pthread_create],LIBS="-lpthread $LIBS",
|
||||
AC_CHECK_LIB([pthreadGC2], [pthread_create], LIBS="-lpthreadGC2 $LIBS",
|
||||
AC_CHECK_LIB([pthreadGC1], [pthread_create], LIBS="-lpthreadGC1 $LIBS",
|
||||
AC_CHECK_LIB([pthreadGC], [pthread_create], LIBS="-lpthreadGC $LIBS",
|
||||
AC_MSG_WARN([pthreads required])))))
|
||||
|
||||
AC_HEADER_STDC
|
||||
|
||||
dnl Cygwin has sys/soundcard.h but Pd isn't ready for Cygwin since it only
|
||||
dnl includes OSS for UNIX
|
||||
AC_CHECK_HEADER(sys/soundcard.h, [oss=yes], [oss=no])
|
||||
AM_CONDITIONAL(OSS, test x$oss = xyes)
|
||||
|
||||
AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [coreaudio=yes], [coreaudio=no])
|
||||
dnl AC_CHECK_HEADER(Jackmp/jack.h, [jack=yes], [jack=no])
|
||||
|
||||
dnl portaudio/CoreAudio doesn't work with iPhone
|
||||
test x$IPHONEOS = xyes && coreaudio=no
|
||||
|
||||
AM_CONDITIONAL(COREAUDIO, test x$coreaudio = xyes)
|
||||
|
||||
dnl TODO implement debug and static
|
||||
#AC_ARG_ENABLE(static, [ --enable-static link statically],
|
||||
# static=$enableval)
|
||||
|
||||
#AC_ARG_ENABLE([debug],
|
||||
# [AS_HELP_STRING([--enable-debug], [use debugging support])],
|
||||
# [debug=$enableval])
|
||||
#if test x$debug = xyes; then
|
||||
# CFLAGS="$CFLAGS -g"
|
||||
#fi
|
||||
|
||||
dnl ALSA
|
||||
dnl shouldn't we use AM_PATH_ALSA from /usr/share/aclocal/alsa.m4
|
||||
dnl alternatively we could use pkg-config
|
||||
AC_ARG_ENABLE([alsa],
|
||||
[AS_HELP_STRING([--disable-alsa],
|
||||
[do not use ALSA audio driver])],
|
||||
[alsa=$enableval], [alsa=yes])
|
||||
AS_IF([test x$alsa = xyes], [
|
||||
AC_CHECK_LIB(asound,snd_pcm_info,ALSA_LIBS="-lasound",alsa=no)])
|
||||
AM_CONDITIONAL(ALSA, test x$alsa = xyes)
|
||||
|
||||
dnl ASIO
|
||||
AC_ARG_ENABLE([asio],
|
||||
[AS_HELP_STRING([--enable-asio],
|
||||
[use ASIO audio driver])],
|
||||
[asio=$enableval])
|
||||
AS_IF([test x$asio = xyes], [
|
||||
AC_CHECK_FILE([asio/ASIOSDK2/common/asio.h],[asio=yes],[asio=no])])
|
||||
AM_CONDITIONAL(ASIO, test x$asio = xyes)
|
||||
|
||||
dnl JACK
|
||||
dnl shouldn't we use pkg-config?
|
||||
dnl TODO support jack xrun
|
||||
AC_ARG_ENABLE([jack],
|
||||
[AS_HELP_STRING([--enable-jack],
|
||||
[use JACK audio server])],
|
||||
[jack=$enableval])
|
||||
dnl on Mac OS X, use the JackOSX.com Jackmp.framework not the jack lib.
|
||||
dnl this is set in src/Makefile.am based on the JACK var
|
||||
AS_IF([test x$MACOSX != xyes], [
|
||||
AS_IF([test x$jack = xyes], [
|
||||
AC_CHECK_LIB(rt,shm_open,LIBS="$LIBS -lrt")
|
||||
AC_CHECK_LIB(jack,jack_set_xrun_callback,JACK_LIBS="-ljack";jack=xrun)
|
||||
AC_CHECK_LIB(jack,jack_set_error_function,JACK_LIBS="-ljack";jack=yes,
|
||||
jack=no)])])
|
||||
AM_CONDITIONAL(JACK, test x$jack = xyes)
|
||||
|
||||
dnl portaudio
|
||||
AC_ARG_ENABLE([portaudio],
|
||||
[AS_HELP_STRING([--disable-portaudio],
|
||||
[do not use portaudio])],
|
||||
[portaudio=$enableval])
|
||||
AM_CONDITIONAL(PORTAUDIO, test x$portaudio = xyes)
|
||||
|
||||
dnl portmidi
|
||||
AC_ARG_ENABLE([portmidi],
|
||||
[AS_HELP_STRING([--enable-portmidi],
|
||||
[use portmidi])],
|
||||
[portmidi=$enableval])
|
||||
AM_CONDITIONAL(PORTMIDI, test x$portmidi = xyes)
|
||||
if test x$portmidi = xyes; then echo Using included portmidi; fi
|
||||
|
||||
dnl fftw v2
|
||||
AC_ARG_ENABLE([fftw],
|
||||
[AS_HELP_STRING([--enable-fftw],
|
||||
[use FFTW package])],
|
||||
[fftw=$enableval])
|
||||
if test x$fftw = xyes; then
|
||||
AC_CHECK_LIB(fftw, fftw_one, [LIBS="$LIBS -lfftw"],
|
||||
[AC_MSG_NOTICE([fftw package not found - using built-in FFT]); fftw=no])
|
||||
fi
|
||||
AM_CONDITIONAL(FFTW, test x$fftw = xyes)
|
||||
|
||||
# Checks for header files.
|
||||
AC_FUNC_ALLOCA
|
||||
AC_CHECK_HEADERS([fcntl.h limits.h malloc.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/soundcard.h sys/time.h sys/timeb.h unistd.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_TYPE_INT16_T
|
||||
AC_TYPE_INT32_T
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_PID_T
|
||||
AC_TYPE_SIZE_T
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_ERROR_AT_LINE
|
||||
AC_FUNC_FORK
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_REALLOC
|
||||
AC_TYPE_SIGNAL
|
||||
AC_CHECK_FUNCS([dup2 floor getcwd gethostbyname gettimeofday memmove memset pow regcomp select socket sqrt strchr strerror strrchr strstr strtol])
|
||||
|
||||
# check for programs
|
||||
AC_CHECK_PROG(HAVE_MSGFMT, [msgfmt], yes, no)
|
||||
test x$HAVE_MSGFMT = xyes || AC_MSG_WARN([Install GNU gettext with msgfmt if you want localizations to be compiled!])
|
||||
AM_CONDITIONAL(MSGFMT, test x$HAVE_MSGFMT = xyes)
|
||||
|
||||
# Specify what files are to be created.
|
||||
AC_CONFIG_FILES([Makefile
|
||||
asio/Makefile
|
||||
man/Makefile
|
||||
portmidi/Makefile
|
||||
tcl/Makefile
|
||||
po/Makefile
|
||||
src/Makefile
|
||||
extra/Makefile
|
||||
extra/bonk~/GNUmakefile
|
||||
extra/choice/GNUmakefile
|
||||
extra/expr~/GNUmakefile
|
||||
extra/fiddle~/GNUmakefile
|
||||
extra/loop~/GNUmakefile
|
||||
extra/lrshift~/GNUmakefile
|
||||
extra/pd~/GNUmakefile
|
||||
extra/pique/GNUmakefile
|
||||
extra/sigmund~/GNUmakefile
|
||||
extra/stdout/GNUmakefile
|
||||
pd.pc
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
dnl output some messages at the end
|
||||
|
||||
AS_IF([test x$windows = xyes], [
|
||||
AS_IF([test x$asio = xno], [
|
||||
AC_MSG_RESULT(
|
||||
ASIO SDK not found! You need to download asiosdk2.2.zip from:
|
||||
http://www.steinberg.net/en/company/3rd_party_developer.html)])])
|
||||
|
||||
|
23
src/pd-0.44-2/doc/1.manual/1.introduction.txt
Normal file
|
@ -0,0 +1,23 @@
|
|||
PD_VERSION
|
||||
|
||||
A real-time graphical programming environment for live interactive
|
||||
computer music, Pd works on Linux, Macintosh OSX, and Microsoft Windows.
|
||||
|
||||
Pd is copyrighted, but is free for you to use for any reasonable purpose.
|
||||
See the file:
|
||||
PD_BASEDIR/LICENSE.txt
|
||||
|
||||
Reference documentation for Pd lives in:
|
||||
file:PD_BASEDIR/doc/1.manual/index.htm
|
||||
or:
|
||||
http://www.crca.ucsd.edu/~msp/Pd_documentation/index.htm
|
||||
|
||||
More extensive FLOSS documentation is available on:
|
||||
http://en.flossmanuals.net/PureData/ (English)
|
||||
http://fr.flossmanuals.net/PureData/ (Francais)
|
||||
|
||||
Information of all sorts (guides, development, meetings, etc):
|
||||
http://puredata.org
|
||||
|
||||
The Pd mailing list archive lives in:
|
||||
http://iem.at/mailinglists/pd-list/
|
BIN
src/pd-0.44-2/doc/1.manual/fig1.1.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig1.2.jpg
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig1.3.jpg
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig1.4.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig1.5.jpg
Normal file
After Width: | Height: | Size: 6 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig11.1.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig11.2.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig11.3.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig11.4.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.1.jpg
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.10.jpg
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.2.jpg
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.3.jpg
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.4.jpg
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.5.jpg
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.6.jpg
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.7.jpg
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.8.jpg
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig3.9.jpg
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig7.1.jpg
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig7.2.jpg
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig7.3.jpg
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig7.4.jpg
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig7.5.jpg
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig7.6.jpg
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig8.1.jpg
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig8.2.jpg
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig8.3.jpg
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig8.4.jpg
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig8.5.jpg
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig8.6.jpg
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig9.1.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig9.2.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
src/pd-0.44-2/doc/1.manual/fig9.3.jpg
Normal file
After Width: | Height: | Size: 38 KiB |
165
src/pd-0.44-2/doc/1.manual/index.htm
Normal file
|
@ -0,0 +1,165 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Pd Documentation</TITLE>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
|
||||
</HEAD>
|
||||
|
||||
|
||||
<BODY>
|
||||
|
||||
<H1>Pd Documentation</H1>
|
||||
|
||||
<P>
|
||||
This is the HTML documentation for Pd, a patchable environment for audio
|
||||
analysis, synthesis, and processing,
|
||||
with a rich set of multimedia capabilities. The latest version of this page
|
||||
can be found at:
|
||||
<a href="http://www.crca.ucsd.edu/~msp/software.html" name=s1>
|
||||
http://www.crca.ucsd.edu/~msp/software.html</A> .
|
||||
<OL>
|
||||
<LI> <a href="x1.htm" name=s1>introduction </A>
|
||||
<OL>
|
||||
<LI> <a href="x1.htm#s1">guide to the documentation </A>
|
||||
<LI> <a href="x1.htm#s2">other resources </A>
|
||||
</OL>
|
||||
|
||||
<LI> <A href="x2.htm" name=s2>theory of operation </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s1"> overview </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s1.1"> main window, canvases, and printout </A>
|
||||
<LI> <A href="x2.htm#s1.2"> object boxes </A>
|
||||
<LI> <A href="x2.htm#s1.3"> message and GUI boxes </A>
|
||||
<LI> <A href="x2.htm#s1.4"> patches and files </A>
|
||||
</OL>
|
||||
<LI> <A href="x2.htm#s2"> how to edit patches </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s2.1"> edit and run mode </A>
|
||||
<LI> <A href="x2.htm#s2.2"> creating boxes </A>
|
||||
<LI> <A href="x2.htm#s2.3"> the selection </A>
|
||||
<LI> <A href="x2.htm#s2.4"> deleting, cutting, and pasting </A>
|
||||
<LI> <A href="x2.htm#s2.5"> changing the text </A>
|
||||
<LI> <A href="x2.htm#s2.6"> connecting and disconnecting boxes </A>
|
||||
<LI> <A href="x2.htm#s2.7"> properties and help </A>
|
||||
</OL>
|
||||
<LI> <A href="x2.htm#s3"> messages </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s3.1"> anatomy of a message </A>
|
||||
<LI> <A href="x2.htm#s3.2"> depth first message passing </A>
|
||||
<LI> <A href="x2.htm#s3.3">
|
||||
hot and cold inlets and right to left outlet order </A>
|
||||
<LI> <A href="x2.htm#s3.4"> message boxes </A>
|
||||
</OL>
|
||||
<LI> <A href="x2.htm#s4"> audio signals </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s4.1"> sample rate and format </A>
|
||||
<LI> <A href="x2.htm#s4.2"> tilde objects and audio connections </A>
|
||||
<LI> <A href="x2.htm#s4.3"> converting to and from messages </A>
|
||||
<LI> <A href="x2.htm#s4.4"> switching and blocking </A>
|
||||
<LI> <A href="x2.htm#s4.5"> nonlocal signal connections </A>
|
||||
</OL>
|
||||
<LI> <A href="x2.htm#s5"> scheduling </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s5.1"> audio and messages </A>
|
||||
<LI> <A href="x2.htm#s5.2"> computation load </A>
|
||||
<LI> <A href="x2.htm#s5.3"> determinism </A>
|
||||
</OL>
|
||||
<LI> <A href="x2.htm#s6"> semantics </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s6.1"> creation of objects </A>
|
||||
<LI> <A href="x2.htm#s6.2"> persistence of data </A>
|
||||
<LI> <A href="x2.htm#s6.3"> message passing </A>
|
||||
<LI> <A href="x2.htm#s6.4"> inlets and lists </A>
|
||||
<LI> <A href="x2.htm#s6.5"> dollar signs </A>
|
||||
</OL>
|
||||
<LI> <A href="x2.htm#s7"> subpatches </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s7.1"> abstractions </A>
|
||||
<LI> <A href="x2.htm#s7.2"> graph-on-parent subpatches </A>
|
||||
</OL>
|
||||
<LI> <A href="x2.htm#s8"> numeric arrays </A>
|
||||
<LI> <A href="x2.htm#s9"> data structures </A>
|
||||
<OL>
|
||||
<LI> <A href="x2.htm#s9.1"> traversal </A>
|
||||
<LI> <A href="x2.htm#s9.2"> accessing and changing data </A>
|
||||
<LI> <A href="x2.htm#s9.3"> editing </A>
|
||||
<LI> <A href="x2.htm#s9.4"> limitations </A>
|
||||
</OL>
|
||||
|
||||
</OL>
|
||||
|
||||
<LI> <a href="x3.htm" name=s3> getting Pd to run </A>
|
||||
<OL>
|
||||
<LI> <a href="x3.htm#s1.0"> audio and MIDI </A>
|
||||
<LI> <a href="x3.htm#s1.1">installing Pd in Microsoft Windows </A>
|
||||
<LI> <a href="x3.htm#s1.2">installing Pd in Linux </A>
|
||||
<LI> <a href="x3.htm#s1.3">installing Pd in MacOS X </A>
|
||||
<LI> <a href="x3.htm#s1.4">installing Pd in IRIX (SGI) </A>
|
||||
<LI> <a href="x3.htm#s4"> preferences and startup options </A>
|
||||
<LI> <a href="x3.htm#s5"> how Pd searches for files </A>
|
||||
</OL>
|
||||
<LI> <a href="x4.htm" name=s4> writing Pd objects in C </A>
|
||||
|
||||
<LI> <a href="x5.htm" name=s5> current status </A>
|
||||
<OL>
|
||||
<LI> <a href="x5.htm#s1"> release notes </A>
|
||||
<LI> <a href="x5.htm#s2"> known bugs </A>
|
||||
<LI> <a href="x5.htm#s3"> differences from Max/MSP </A>
|
||||
</OL>
|
||||
|
||||
</OL>
|
||||
|
||||
<!--
|
||||
intro: what Pd is
|
||||
guide to the documentation
|
||||
other resources
|
||||
|
||||
Theory of operation
|
||||
main window and canvases
|
||||
messages
|
||||
signals
|
||||
loading, editing, and saving patches
|
||||
subpatches
|
||||
one-off and abstractions
|
||||
blocking for signals
|
||||
data
|
||||
|
||||
Making Pd work
|
||||
how to get and install Pd
|
||||
IRIX
|
||||
NT
|
||||
Linux
|
||||
audio
|
||||
testing it
|
||||
the scheduler advance
|
||||
IRIX
|
||||
NT
|
||||
Linux
|
||||
GEM
|
||||
getting it
|
||||
running it
|
||||
running Pd patches
|
||||
command line options
|
||||
opening & saving files
|
||||
editing
|
||||
file stuff
|
||||
the path
|
||||
abstractions
|
||||
externs
|
||||
the help feature
|
||||
Writing Pd objects in C
|
||||
release notes
|
||||
features
|
||||
bugs
|
||||
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
39
src/pd-0.44-2/doc/1.manual/pdmanual.css
Normal file
|
@ -0,0 +1,39 @@
|
|||
|
||||
HTML {
|
||||
background: #ffffff;
|
||||
color: #000000;
|
||||
font-family: Times, Times New Roman, serif;
|
||||
font-size: 10pt;
|
||||
}
|
||||
BODY {
|
||||
width: 6.5in;
|
||||
margin-left: 0.5in
|
||||
}
|
||||
H1 {
|
||||
font-size: 36pt;
|
||||
text-align: center;
|
||||
}
|
||||
H2 {
|
||||
font-size: 10pt;
|
||||
text-align: center;
|
||||
}
|
||||
H3 {
|
||||
font-size: 12pt;
|
||||
text-align: left;
|
||||
}
|
||||
H4 {
|
||||
font-size: 10pt;
|
||||
text-align: left;
|
||||
}
|
||||
H5 {
|
||||
font-size: 8pt;
|
||||
text-align: left;
|
||||
}
|
||||
H6 {
|
||||
font-size: 8pt;
|
||||
text-align: left;
|
||||
}
|
||||
PRE {
|
||||
font-size: 8pt;
|
||||
text-align: left;
|
||||
}
|
108
src/pd-0.44-2/doc/1.manual/x1.htm
Normal file
|
@ -0,0 +1,108 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Pd Documentation 1</TITLE>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
<H2>Pd Documentation chapter 1: introduction</H2>
|
||||
|
||||
<P>
|
||||
<A href="index.htm#s1"> back to table of contents </A>
|
||||
<BR><BR>
|
||||
</P>
|
||||
|
||||
|
||||
<P>
|
||||
This is the HTML documentation for the Pd computer program.
|
||||
Pd is free and can be downloaded from the internet;
|
||||
go to
|
||||
<A href="http://www.crca.ucsd.edu/~msp/software.html">
|
||||
http://www.crca.ucsd.edu/~msp/software.html</A>
|
||||
to get it.
|
||||
<H3> <A name=s1> 1.1. guide to the documentation </A> </H3>
|
||||
|
||||
<P> Pd's documentation consists of:
|
||||
|
||||
<UL>
|
||||
<LI> this HTML manual
|
||||
<LI> "reference" patches, one for each kind of object in Pd
|
||||
<LI> "example" patches showing how to do things
|
||||
<LI> sample C code
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
This manual has five sections:
|
||||
|
||||
<OL>
|
||||
<LI> this overview
|
||||
<LI> <A href="x2.htm">
|
||||
a theory of operations, explaining how Pd works </A>
|
||||
<LI> <A href="x3.htm">
|
||||
instructions on installing Pd and getting it to run </A>
|
||||
<LI> <A href="x4.htm"> how to write C extensions to Pd </A>
|
||||
<LI> <A href="x5.htm"> release notes and known bugs </A>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
For a list of all the objects you can use in Pd, see the text file,
|
||||
"0.INTRO.txt" in the directory, "../5.reference". To get help on any
|
||||
Pd object you can right click on it; or you can browse the help patches
|
||||
by choosing "Browser..." in the Pd help menu and looking in
|
||||
5.reference.
|
||||
|
||||
<P>
|
||||
The example patches are also available from the "Browser..." item
|
||||
in Pd's "help" menu. They appear in subdirectories named
|
||||
"2.control.examples", "3.audio.examples" and "4.fft.examples." Some additional
|
||||
patches in "7.stuff" might also be helpful.
|
||||
|
||||
<P>
|
||||
To get started writing your own C extensions, refer to chapter 4 of this manual.
|
||||
|
||||
<H3> <A name=s2> 1.2. other resources </A> </H3>
|
||||
|
||||
<P> There is a very extensive Pd community web site,
|
||||
<a href="http://www.pure-data.info/"> pure-data.info</a>, which aims to be the
|
||||
central resource for Pd, from documentation and
|
||||
downloads; to forums, member pages, and a patch exchange.
|
||||
|
||||
<P> More documentation is avalable on the Pd FLOSS site:
|
||||
<A href=http://en.flossmanuals.net/PureData/>
|
||||
en.flossmanuals.net/PureData/</A> (English) and
|
||||
<A href=http://fr.flossmanuals.net/PureData/>
|
||||
fr.flossmanuals.net/PureData/</A> (French).
|
||||
|
||||
<P>
|
||||
Most of the interesting news related to Pd shows up on the Pd mailing list,
|
||||
maintained by Iohannes Zmoelnig. To subscribe or browse the archives
|
||||
visit:
|
||||
<A href="http://iem.at/mailinglists/pd-list/">
|
||||
http://iem.at/mailinglists/pd-list/</A>.
|
||||
|
||||
This is the
|
||||
best source of recent information regarding installation problems and bugs. It
|
||||
is perfectly reasonable to post "newbie" questions on this list; alternatively
|
||||
you can contact msp@ucsd.edu for help.
|
||||
|
||||
<P> the Pd Extended package, maintained by Hans-Christophe Steiner, can be
|
||||
downloaded from the <A href=http://sourceforge.net/projects/pure-data/> Pd's
|
||||
sourceforge site </A>. All this and much more is described in detail on <A
|
||||
href="http://puredata.info/"> http://puredata.info/</A>.
|
||||
|
||||
<P> Many extensions to Pd are announced on the mailing list. In particular,
|
||||
for people interested in graphics, there is a 3D graphics rendering package,
|
||||
named GEM, based on OpenGL, written by Mark Danks, adapted to Linux by
|
||||
Guenter Geiger, and now maintained by Iohannes Zmoelnig. You can get
|
||||
it from: <A href="http://iem.at/GEM">http://iem.kug.ac.at/GEM</A>, or by
|
||||
installing Pd Extended.
|
||||
|
||||
<P> Here are some
|
||||
<a href="http://crca.ucsd.edu/~msp/external-links.htm">
|
||||
more external links</A>.
|
||||
</BODY>
|
||||
</HTML>
|
1274
src/pd-0.44-2/doc/1.manual/x2.htm
Normal file
677
src/pd-0.44-2/doc/1.manual/x3.htm
Normal file
|
@ -0,0 +1,677 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Pd Documentation 3</TITLE>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
|
||||
</HEAD>
|
||||
|
||||
|
||||
<BODY>
|
||||
|
||||
<H2>Pd Documentation chapter 3: Getting Pd to run</H2>
|
||||
|
||||
<P>
|
||||
<A href="index.htm#s3"> back to table of contents </A>
|
||||
<BR><BR>
|
||||
</P>
|
||||
|
||||
<P> The following are basic instructions on how to get Pd installed and running
|
||||
on your machine. More details are maintined online on the
|
||||
<A href=http://www.pure-data.info/>pure-data.info</A> site.
|
||||
|
||||
<P>Pd runs under Microsoft Windows, Linux, and MacOS (10.2 or later). How to
|
||||
get Pd up and running depends on your operating system, but the overall strategy
|
||||
is the same. You must first get and install it, and then untangle whatever
|
||||
problems arise in handling audio and MIDI input and output, and finally get Pd
|
||||
to meet its real-time obligations reliably.
|
||||
|
||||
<P> Installation instructions are platform-specfic; the following three
|
||||
sections
|
||||
will describe what to do for various operating systems you might have.
|
||||
In case of trouble also consult the Pd mailing list archive on
|
||||
<A href="http://iem.at/mailinglists/pd-list/">
|
||||
http://iem.at/mailinglists/pd-list/</A>
|
||||
, which often has late-breaking news about configuration problems and solutions.
|
||||
The rest of this section describes how to get audio and MIDI to work.
|
||||
|
||||
<H3> <A name=s1.0> 3.1. Audio and MIDI </A> </H3>
|
||||
|
||||
<P>
|
||||
To test audio and MIDI, start Pd and select "test Audio and MIDI" from the
|
||||
"Media" menu. You should see a window like this:
|
||||
|
||||
<CENTER><P>
|
||||
<IMG src="fig11.1.png" ALT="test tone patch">
|
||||
</P></CENTER>
|
||||
|
||||
<P> First, try to get Pd to play a sine wave over your speakers. The "TEST
|
||||
TONE" control at top left turns this on and off. Normally, all the output
|
||||
channels are turned on so that when you turn the tone on (to a soft -40 dB or a
|
||||
louder -20 dB) you should get output on the first eight of your output channels.
|
||||
(If you have fewer than 8 output channnels open, the extra
|
||||
channels aren't played; and if you have more, this particular patch won't
|
||||
use them.)
|
||||
|
||||
<P> If there's anything wrong, the most likely outcome is that you will hear
|
||||
nothing at all. This could be for any of at least three reasons: Pd might
|
||||
have failed to open the audio device; the audio card's output volume might
|
||||
be set to zero; or your audio system might not be set to amplify the computer
|
||||
output.
|
||||
|
||||
<P> The number boxes labeled "AUDIO INPUT" show the levels of incoming
|
||||
audio, in dB, with 100 being maximum. (Incoming signals may clip at
|
||||
RMS levels below 100; for instance, a sinusoid clips at about 97 dB.)
|
||||
Any DC present in the input (such as you get with cheap audio hardware)
|
||||
will show up as level unless you turn on the "input hipass" toggle
|
||||
at right; then the DC component is filtered out before metering.
|
||||
|
||||
<P> To test the quality of audio input and output, turn on "monitor"
|
||||
(also at right) which causes the inputs to be played to the outputs at
|
||||
unit gain. You should hear a faithful, non-distored copy of whatever is
|
||||
sent through the patch.
|
||||
|
||||
<P> It is easy to get two copies of Pd running by accident; on most machines
|
||||
only one at a time may be inputting and outputting sound. (Some copy of Pd
|
||||
might have audio or MIDI devices open and prevent the copy you're trying to use
|
||||
from getting access to them.) Having extra
|
||||
copies of Pd around will also eat CPU cycles uselessly.
|
||||
|
||||
<P>
|
||||
You may be interested in getting only audio output or audio input, or
|
||||
you may need both to run simultaneously. By default, Pd will try to run
|
||||
both, but if you don't need either input or output, you may find that Pd
|
||||
runs more reliably, or at least more efficiently, with the unused direction
|
||||
turned off. This may be specified in Pd's command line flags or using the
|
||||
"audio settings" dialog panel.
|
||||
|
||||
<P>
|
||||
Depending on your application you will have a more or less stringent latency
|
||||
requirement. Ideally, when any input (audio, MIDI, keyboard, network) is
|
||||
available, the outputs (in particular the audio output) should react instantly.
|
||||
In real life, it is necessary to buffer the audio inputs and outputs, trying
|
||||
always to keep some number of milliseconds ahead of real time to prepare for the
|
||||
inevitable occasions where the CPU runs off to service some different task
|
||||
from Pd. How small this latency can be chosen depends on your OS and your
|
||||
audio driver.
|
||||
|
||||
<P> TIP: If Pd starts up but you get distortion or glitches in the audio
|
||||
output, this could be either because the "audio I/O buffer" isn't big enough,
|
||||
or else because the CPU load of the patch you're running is too great for the
|
||||
machine you have, or else because the ADC and DAC are out of sync or even at
|
||||
different sample rates. To test for the first possibility, try increasing the
|
||||
audio latency in the command line or the "audio settings" dialog (but see also
|
||||
under your OS below.) For the second, start up your favorite performance
|
||||
monitor program; and for the third, try starting Pd up with ADCs disabled.
|
||||
|
||||
<P> In addition to the "test audio and MIDI" patch, the "Media" menu
|
||||
contains items for controlling audio and MIDI settings. The first two
|
||||
items, "Audio on" and "Audio off", open or close the audio devices and
|
||||
start or stop Pd's audio computation.
|
||||
|
||||
<P> If there is a choice of
|
||||
audio API to make, the Media menu will display them. (On Linux, they are
|
||||
OSS, ALSA, and Portaudio; on Windows, you get MMIO and ASIO). On Mac the only
|
||||
one is portaudio. More information
|
||||
about the APIs appears in the sections below.
|
||||
|
||||
<P> Selecting an API (even if it's the one already in use), or, alternatively,
|
||||
selecting "Audio Settings..." from Preferences, opens
|
||||
a dialog panel like this:
|
||||
|
||||
<CENTER><P>
|
||||
<IMG src="fig11.2.png" ALT="audio settings dialog">
|
||||
</P></CENTER>
|
||||
|
||||
The exact choices you get depend on the operating system and API. The sample
|
||||
rate controls both audio output and input. The audio throughput delay is
|
||||
the nominal amount of time, in milliseconds, that a sound coming into the
|
||||
audio input will be delayed if it is copied through Pd straight to the
|
||||
output. Naturally you would like this to be as small as possible, but,
|
||||
depending on OS, API, and even the specific choice of audio hardware, there
|
||||
will be a limit to how small you can make this. You can typically get
|
||||
10 msec on linux (and lower still if you use special tricks), 30 msec on Mac
|
||||
OSX, and 60 msec on Windows (but note that there might be ways that a
|
||||
patient Windows user can reduce this).
|
||||
|
||||
<P> Next you get a choice of input and output device. If you want to open
|
||||
more than one, hit "use multiple devices" and you'll be allowed up to 4
|
||||
in and 4 out. Each audio device is 2 channels by default, but you may
|
||||
specify more if your hardware supports it.
|
||||
|
||||
Other parameters may be tweaked using the command line; see under
|
||||
<A href=#s4> preferences and startup options </A>.
|
||||
|
||||
<H6> MIDI </H6>
|
||||
|
||||
<A> The "channel message" midi objects in Pd
|
||||
such as notein or pgmout will take channels 1-16 to mean the first open MIDI
|
||||
port, 17-32 the second one, and so on. The midiin, sysexin, midiout objects
|
||||
give you a separate inlet to specify which of the open MIDI port numbers
|
||||
you want.
|
||||
|
||||
<P> System exclusive MIDI message input and output are theoretically supported
|
||||
but does not work uniformly across all operating systems..
|
||||
|
||||
<H3> <A name=s1.1> 3.2. Installing Pd in Microsoft Windows </A> </H3>
|
||||
|
||||
<P> Pd should work under any version of Windows since 95. You can download as
|
||||
a self-extracting archive (a ".exe" file). Run this and select a destination
|
||||
directory when prompted, such as "\pd" or "Program Files\pd".
|
||||
|
||||
<P> If for example you put Pd in "C:Program Files\pd", the executable program
|
||||
will be "C:Program Files\pd\bin\pd". You can simply adjust your path to
|
||||
include C:\pd\bin and then invoke "pd" in a command prompt window. You can also
|
||||
make a shortcut to the executable program (left-click on it and drag to the
|
||||
desktop, for example.)
|
||||
|
||||
<P> Pd requires "TCP/IP networking" to be turned on. This doesn't mean you
|
||||
have to be on a real network, but simply that Pd actually consists of two
|
||||
programs that make a "network link" (locally) to intercommunicate.
|
||||
|
||||
<H4> Audio in Microsoft Windows </H4>
|
||||
|
||||
<P>
|
||||
Pd offers both the ASIO and MMIO APIs in Windows. Which of these works better
|
||||
will depend on your audio hardware.
|
||||
|
||||
<P>
|
||||
MIDI timing is very poor if you are using simultaneous audio input and output;
|
||||
if you suppress either audio input or output things will improve somewhat under
|
||||
NT; you can apparently get the jitter down to ~40 msec. On W95 performance is
|
||||
simply terrible. W98, with either audio input or output suppressed, offers
|
||||
fairly good MIDI timing (~5 msec jitter). The "first edition" used to crash
|
||||
occasionally; this might be fixed in the "second edition".
|
||||
|
||||
<H4> ASIO </H4>
|
||||
|
||||
<P> As of version 0.35 Pd supports ASIO. Invoke Pd as "pd -asio" and, if
|
||||
needed, specify "-sounddev" (etc.) flags to specify which device (see
|
||||
"the Pd command line" below.) You can also specify a "-blocksize" different
|
||||
from the default (256 samples) and "-audiobuf" in milliseconds. Pd will
|
||||
round this down to a power of two buffers, each of "-blocksize" in sample
|
||||
frames.
|
||||
|
||||
<P> TIP: Often your machine will allow you to use ASIO with built-in PC
|
||||
audio hardware. Sometimes it is necessary to set a ridiculously high block size
|
||||
for this to work (on my machine I have to set it to 4096 -- about 1/10 of a
|
||||
second!)
|
||||
|
||||
<P> Using MMIO I've been able to get very low latencies (6 msec) using M-audio
|
||||
PCI converters (Delta 44).
|
||||
|
||||
<H3> <A name=s1.2> 3.3. Installing Pd in Linux </A> </H3>
|
||||
|
||||
<P> What to do depends on which flavor of Linux you are running (e.g., Debian
|
||||
or Red Hat). The instructions here should work for Pd 0.33 and up regardless of
|
||||
your situation. (If not, you can read the Pd mailing list archives for
|
||||
recent problems; if you have found a new problem you're welcome to post it
|
||||
to the list.)
|
||||
|
||||
<P> Pd is available via the package systems for some linux distributions,
|
||||
but not always in the most recent version possible. It's relatively easy to
|
||||
compile your own copy of Pd and that is the approach described here.
|
||||
|
||||
<H4> Getting Pd as a .tar.gz </H4>
|
||||
|
||||
<P> Before you start, you might want to check that you have the resources Pd
|
||||
needs. The main things you need are the C compiler, X windows (including
|
||||
the X development package for Pd to link against), TK, and the ALSA "devel"
|
||||
headers. It should be
|
||||
enough to load "tcl-devel", "tk-devel", and "alsa-devel" packages using
|
||||
yum or apt-get.
|
||||
|
||||
<P> There are two parallel compilation setups now available. The old one is
|
||||
described here; as of 0.43 I still use that but I plan to discontinue this for
|
||||
0.44 and start using only the new one (by Hans). The following description
|
||||
applies to the old one. Look in the INSTALL.txt file to see how to use the
|
||||
new one.
|
||||
|
||||
<P>
|
||||
Download Pd, perhaps from
|
||||
<a href="http://www.crca.ucsd.edu/~msp/software.html">
|
||||
http://www.crca.ucsd.edu/~msp/software.html</A> ,
|
||||
to file such as "pd-linux-033.tar.gz". Open a "shell"
|
||||
window, cd to
|
||||
the directory containing the file, and type the command,
|
||||
<PRE>
|
||||
tar xzf pd-linux-033.tar.gz
|
||||
</PRE>
|
||||
<P>which creates a directory named "pd". I do this from my home directory.
|
||||
Next, compile it. "CD" to pd and read the INSTALL.txt, or else just cd
|
||||
to "pd/src" and type
|
||||
|
||||
<P>
|
||||
<BR> ./configure
|
||||
<BR> make
|
||||
</P>
|
||||
|
||||
<P> You can pass flags to "configure" to customize your compilation:
|
||||
|
||||
<PRE>
|
||||
To enable debugging (and losing code optimization) add "--enable-debug".
|
||||
To use Portaudio, add "--enable-portaudio".
|
||||
To put Pd in /usr/bin instead of /usr/local/bin, add "--prefix=/bin".
|
||||
</PRE>
|
||||
|
||||
Alsa and Jack support should auto-configure, but "--enable-alsa" od
|
||||
"--enable-jack" will force their inclusion.
|
||||
|
||||
<P> After "make", just type "~/pd/bin/pd" to run pd.
|
||||
|
||||
<P> Alternatively, as superuser, you can run "make install" after "make depend"
|
||||
and then anyone on your system can just type "pd" to run it.
|
||||
|
||||
<H4> Testing audio and MIDI. </H4>
|
||||
|
||||
<P>
|
||||
Next try audio. We want to know whether audio output works, whether audio
|
||||
input works, and whether they work simultaneously. First run "aumix" (or
|
||||
any newer audio mixer app) to
|
||||
check audio input and output gains and learn which input (mic; line;
|
||||
etc.) is "recording".
|
||||
Then test audio output by running
|
||||
<PRE>
|
||||
pd -noadc
|
||||
</PRE>
|
||||
<P>and selecting "test audio and MIDI" from the "Media" menu. You should see
|
||||
a patch. Turn on the test tone and listen. Do the usual where's-the-signal
|
||||
business.
|
||||
|
||||
<P>
|
||||
Then quit Pd and test audio input via
|
||||
<PRE>
|
||||
pd -nodac
|
||||
</PRE>
|
||||
<P>Re-open the test patch and hit "meter"; look at the levels. 100 dB is a
|
||||
hard clip; arrange gains so that the input signal tops out around 80 or 90,
|
||||
but no higher.
|
||||
|
||||
<P> Now see if your audio driver can do full duplex by typing "pd" with no
|
||||
flags. If you see error messages involving /dev/dsp or /dev/dsp2, you're
|
||||
probably not able to run audio in and out at the same time. If on the other
|
||||
hand there's no complaint, and if the audio test patch does what you want, you
|
||||
might wish to experiment with the "-audiobuffer" flag to see what values of
|
||||
audio latency your audio system can handle.
|
||||
|
||||
<H3> Audio hardware in Linux </H3>
|
||||
|
||||
<P>
|
||||
Installing and testing audio and MIDI drivers in Linux can take
|
||||
days or weeks. There apears to be no single place where you can get detailed
|
||||
information on Linux audio.
|
||||
|
||||
<P>
|
||||
There are two widely-used driver sets, called "OSS" and "ALSA". ALSA is
|
||||
included in the standard Linux kernel since 2.4 or so. However, for some
|
||||
audio cards you can find newer versions than are included in the kernel
|
||||
releases. You can get ALSA from
|
||||
|
||||
<a href="http://www.alsa-project.org/">
|
||||
http://www.alsa-project.org/</A> .
|
||||
|
||||
<P> ALSA is able to emulate OSS, so that you can usually run Pd using the
|
||||
"OSS" driver settings even if it's actually ALSA that's running.
|
||||
|
||||
<P> By default, Pd uses ALSA. You can ask Pd to use ALSA's OSS emulation by
|
||||
adding the "-oss" flag to the command line or fooling with the "media" menu
|
||||
items.
|
||||
|
||||
<P> You can add ALSA devices by name on the Pd command line:
|
||||
<PRE>
|
||||
pd -alsaadd loupgarou
|
||||
</PRE>
|
||||
instructs Pd to offer the 'loupgarou' audio device in the Audio Settings panel.
|
||||
|
||||
<H4> Experiences with particular soudcards </H4>
|
||||
|
||||
<P>
|
||||
Here are some of my own experiences with sound cards so far. See
|
||||
also the Pd mailing list archives.
|
||||
|
||||
<H6> RME 9652 (Hammerfall) </H6>
|
||||
|
||||
<P> This is the best PCI sound card out there; it costs around $500 and has 3 ADAT
|
||||
I/O ports and one SPDIF. There is a "baby hammerfall" also, which I think is
|
||||
the "9632." DO NOT CONFUSE THE 9652/9632 WITH OTHER RME BOARDS WHICH MIGHT
|
||||
NOT WORK WITH PD.
|
||||
|
||||
<P> The easiest way to use
|
||||
Hammerfall boards in Pd is via ALSA and jack; but you can use ALSA alone:
|
||||
<PRE>
|
||||
pd -alsa -channels 26
|
||||
</PRE>
|
||||
works for me.
|
||||
|
||||
<H6> MIDIMAN </H6>
|
||||
|
||||
<P>Midiman sells PCI devices (delta 44, 66, 1010, and 1010LT)
|
||||
with between 4 and 10 channels in and out, for
|
||||
which there are ALSA drivers. These are also very good, and they are a
|
||||
bit cheaper than Hammerfalls. The driver name is "ice1712".
|
||||
|
||||
<H6> USB sound devices</H6>
|
||||
|
||||
<P> Ed Kelly reports success with the Lexicon series of USB 1.0 devices (e.g.,
|
||||
the Omega Studio; apparently 4 channels in and 4 out). Also known to work well
|
||||
is the Edirol box (2 channels in and out).
|
||||
|
||||
<P> As of Sept. 2011, the only multi-channel USB device I've been able to use
|
||||
with Pd is the Native Instruments Traktor Audio series. (I have the Audio
|
||||
Traktor 10 which does indeed get 10 discrete channels in and out; the box is
|
||||
designed for turntables and the I/O is all RCA. I haven't yet tested whether
|
||||
the inputs are RIAA equalized or flat. To run this device you'll need to
|
||||
compile and install an ALSA snapshot from at least September 2011. This won't
|
||||
start showing up in Linux distros for at least some months.
|
||||
|
||||
<P> THe Alsa devel list is reporting progress on the M-audio Ultra series,
|
||||
which goes up to 6 in and out (analog) with 2 more as SP/DIF. Things work
|
||||
OK for input or output separately but "full duplex" (in and out simultaneously)
|
||||
has sync problems.
|
||||
|
||||
<H3> <A name="s1.3"> 3.4. Installing Pd in Macintosh OSX </A> </H3>
|
||||
|
||||
<P>Pd version 0.35 and up support Macintosh OSX. You need the OSX Jaguar
|
||||
distribution (10.2) or later. Recent versions of Pd require 10.4 or up.
|
||||
|
||||
<P> To install Pd you can always download the sources and compile them
|
||||
yourself, or (easier) just download the Mac binary from the download page:
|
||||
|
||||
<A href="http://crca.ucsd.edu/~msp/software.html">
|
||||
http://crca.ucsd.edu/~msp/software.html</A>.
|
||||
|
||||
This is in the form of a compressed Tar archive; just click on it and the Max
|
||||
will extract the Pd application. Open this and you should be running.
|
||||
|
||||
<P> You might get various warnings about Pd trying to open an internet port.
|
||||
This is normal although some system administrators will prevent you from
|
||||
doing this (in which case you can't run Pd on that machine).
|
||||
|
||||
<P> The package by Hans-Christoph Steiner, on
|
||||
|
||||
<A href="http://at.or.at/hans/pd/installers.html">
|
||||
http://at.or.at/hans/pd/installers.html</A>,
|
||||
|
||||
has many updates and extensions
|
||||
which are not included in the original Pd distribution. Download this and
|
||||
follow the (simple) instructions found there.
|
||||
</P>
|
||||
|
||||
<H4> To install on OSX from source: </H4>
|
||||
|
||||
<P>
|
||||
Whether you've downloaded the source or the "package" you can
|
||||
always compile Pd for yourself, whether to make your own improvements, or
|
||||
possibly so that you can get the newest version before it shows up compiled for
|
||||
Mac OS X.
|
||||
|
||||
<P> To be able to compile Pd, you must have Tcl/Tk installed in the standard
|
||||
places. I think this is true for all reasoably recent releases of OSX.
|
||||
|
||||
<P> Then, just as for linux, just unload pd-whatever.tar.gz into a directory
|
||||
such as ~/pd-0.36-0, cd to pd-0.36-0/src, type "./configure"
|
||||
and "make". Then type ~/pd-0.36-0/bin/pd to a shell and enjoy!
|
||||
|
||||
<P> If you wish you can put a line such as,
|
||||
|
||||
<pre>
|
||||
alias pd ~/pd/bin/pd
|
||||
</pre>
|
||||
|
||||
<P>in the file, ~/.tcshrc, so that you can later just type "pd" to a shell.
|
||||
(The
|
||||
shell only reads the ~/.tcshrc file on startup, so this won't take effect in
|
||||
any existing shells unless you specially type
|
||||
<pre>
|
||||
source ~/.tcshrc
|
||||
</pre>
|
||||
<P>to them.)
|
||||
|
||||
<P> Follow the general directions above for testing audio and/or MIDI
|
||||
as needed.
|
||||
|
||||
<P> To get MIDI working, you have to do the Mac OSX magic to get a USB
|
||||
MIDI interface installed. I've seen this done with Midisport devices and
|
||||
I think you just download the OSX driver and follow directions.
|
||||
|
||||
<H3> <A name=s4> 3.6. Preferences and startup options </A> </H3>
|
||||
|
||||
<P> Pd's behavior may be customized to instruct it where to find files, which
|
||||
audio devices to open, what font size to use, and so on. Most of
|
||||
these may also be changed using the various dialogs you can open from Pd's
|
||||
menus. Others take effect only when Pd starts up; some of these appear
|
||||
on the ``startup" dialog and some of them, too cranky to put in a GUI, must
|
||||
be typed as <I> command line arguments </I>.
|
||||
|
||||
<P> In addition to the Audio and MIDI settings (see
|
||||
<A href="#s1.0"> Audio and MIDI </A>), you can customize font size (from the
|
||||
``edit" menu), directories to search for files (see
|
||||
<A href="#s5"> How Pd searches for files </A>), and additional startup
|
||||
parameters described below.
|
||||
|
||||
<P> All of these settings may be saved automatically between Pd sessions.
|
||||
It is also possible to specify settings directly via the <I> command
|
||||
line </I>. (A third mechanism, using configuration files, is deprecated and
|
||||
isn't described here.) The Pd command line is described in the next
|
||||
section. Command line settings, if given, each override the corresponding
|
||||
setting that was saved from Pd.
|
||||
|
||||
<P> The startup settings (i.e., those that take effect only when Pd is started)
|
||||
are controlled using the ``startup..." dialog from the File menu. The
|
||||
dialog appears as follows:
|
||||
|
||||
<CENTER><P>
|
||||
<IMG src="fig11.3.png" ALT="startup dialog">
|
||||
</P></CENTER>
|
||||
|
||||
The slots at top each specify a binary ``library" for Pd to load on startup.
|
||||
These may be for Gem, pdp, zexy, iemlib, cyclone, and so on. Typically, a
|
||||
single binary object (an ``extern") is left for Pd to load automatically;
|
||||
startup library loading is appropriate for collections of many objects
|
||||
specified by a single binary library.
|
||||
|
||||
<P> The ``defeat real-time scheduling" contol, if enabled, makes Pd run without
|
||||
its usual effort to become a real-time process (whatever this means in the
|
||||
operating system you are using.) In Unix, Pd must usually be setuid to allow
|
||||
real-time scheduling at all.
|
||||
|
||||
<P> The ``startup flags" allow you to add to Pd's command line on startup. This
|
||||
is specified as described below, except that the initial word, ``pd", is
|
||||
understood. For example, putting ``-rt" in this field sets real-time
|
||||
scheduling; ``-sleepgrain 1" sets the sleep grain to 1 (see under MIDI below),
|
||||
and typing "-rt -sleepgrain 1" does both.
|
||||
|
||||
<P> You may save the current settings for future Pd sessions with the
|
||||
``save all settings" button; this saves not only the path but all other
|
||||
settings as well.
|
||||
|
||||
<H6> Command line arguments </A> </H3>
|
||||
|
||||
<P>Pd may be run as a "command line" program from your "terminal emulator,"
|
||||
"shell," or "MSDOS prompt." In Windows, if Pd is started using a "shortcut"
|
||||
it is also run from a command line which you can edit using the ``properties"
|
||||
dialog for the shortcut. In any operating system, Pd can be called from a
|
||||
script (called a <I> batch file </I> on Windows or a <I> shell script </I>
|
||||
on OSX or unix). The command line is just a line of text, which should be
|
||||
of the form:
|
||||
|
||||
<PRE>
|
||||
|
||||
pd [options] [patches to open]
|
||||
|
||||
</PRE>
|
||||
|
||||
<P>although you may have to specify a path (such as "~/pd/bin/pd" or
|
||||
"C:\program files\pd\bin\pd") so your command interpreter can find
|
||||
Pd. Possible options include:
|
||||
|
||||
<PRE>
|
||||
|
||||
audio configuration flags:
|
||||
-r <n> -- specify sample rate
|
||||
-audioindev ... -- sound in device list; e.g., "2,1" for second and first
|
||||
-audiooutdev ... -- sound out device list, same as above
|
||||
-audiodev ... -- specify both -audioindev and -audiooutdev together
|
||||
-inchannels ... -- number of audio in channels (by device, like "2" or "16,8")
|
||||
-outchannels ... -- number of audio out channels (by device)
|
||||
-channels ... -- specify both input and output channels
|
||||
-audiobuf <n> -- specify size of audio I/O buffer in msec
|
||||
-blocksize <n> -- specify audio I/O block size in sample frames
|
||||
-sleepgrain <n> -- specify number of milliseconds to sleep when idle
|
||||
-nodac -- suppress audio output
|
||||
-noadc -- suppress audio input
|
||||
-noaudio -- suppress audio input and output (-nosound is synonym)
|
||||
-listdev -- list audio and MIDI devices
|
||||
|
||||
(linux specific audio:)
|
||||
-oss -- use ALSA audio drivers
|
||||
-alsa -- use ALSA audio drivers
|
||||
-pa -- use portaudio (experimental version 19)
|
||||
-alsadev <n> -- obsolete: use -audiodev
|
||||
-32bit -- (probably obsolete) -- use 32 bit OSS extension
|
||||
-alsaadd <dev> -- add a device to the ALSA device list
|
||||
|
||||
(Windows specific audio:)
|
||||
-mmio -- use MMIO drivers and API
|
||||
-asio -- use ASIO drivers and API
|
||||
|
||||
MIDI configuration flags:
|
||||
-midiindev ... -- midi in device list; e.g., "1,3" for first and third
|
||||
-midioutdev ... -- midi out device list, same format
|
||||
-mididev ... -- specify -midioutdev and -midiindev together
|
||||
-nomidiin -- suppress MIDI input
|
||||
-nomidiout -- suppress MIDI output
|
||||
-nomidi -- suppress MIDI input and output
|
||||
-alsamidi -- use ALSA midi API
|
||||
|
||||
general flags:
|
||||
-path <path> -- add to file search path
|
||||
-nostdpath -- don't search standard ("extra") directory
|
||||
-stdpath -- search standard directory (true by default)
|
||||
-helppath <path> -- add to help search path
|
||||
-open <file> -- open file(s) on startup
|
||||
-lib <file> -- load object library(s)
|
||||
-font <n> -- specify default font size in points
|
||||
-verbose -- extra printout on startup and when searching for files
|
||||
-version -- don't run Pd; just print out which version it is
|
||||
-d <n> -- specify debug level
|
||||
-noloadbang -- suppress all loadbangs
|
||||
-stderr -- send printout to standard error instead of GUI
|
||||
-nogui -- suppress starting the GUI
|
||||
-guiport <n> -- connect to pre-existing GUI over port 'n'
|
||||
-guicmd "cmd..." -- substitute another GUI program (e.g., rsh)
|
||||
-send "msg..." -- send a message at startup (after patches are loaded)
|
||||
-rt or -realtime -- use real-time priority (needs root privilege)
|
||||
-nrt -- don't use real-time priority
|
||||
-nosleep -- never relinquish CPU (only for multiprocessors!)
|
||||
|
||||
</PRE>
|
||||
|
||||
<P>Here are some details on some of the audio, MIDI, and scheduler options (but
|
||||
see also the next section on file management.)
|
||||
|
||||
<H4> multiple devices. </H4>
|
||||
|
||||
<P> You can specify multiple MIDI input and output devices. For example,
|
||||
"pd -midiindev 3 -midioutdev 4,2" asks for the third MIDI input device and the
|
||||
fourth and second MIDI output device.
|
||||
|
||||
<P> Audio device selection is similar, except that you can also specify
|
||||
channels by device: "-audioindev 1,3 -inchannels 2,8" will try to open device 1
|
||||
(2 channels) and device 3 (8 channels.)
|
||||
|
||||
<H4> sample rate. </H4>
|
||||
|
||||
<P>The sample rate controls Pd's logical sample rate which need not be that of
|
||||
the audio input and output devices. If Pd's sample rate is wrong, time will
|
||||
flow at the wrong rate and synthetic sounds will be transposed. If the output
|
||||
and input devices are running at different rates, Pd will constantly drop frames
|
||||
to re-sync them, which will sound bad. You can disable input or output if this
|
||||
is a problem.
|
||||
|
||||
<H4> audio buffer size and block size </H4>
|
||||
|
||||
<P>You can specify an audio buffer size in milliseconds, typically between 10 and
|
||||
300, depending on how responsive your OS and drivers are. If this is set too
|
||||
low there will be audio I/O errors ("data late"). The higher the value is,
|
||||
on the other hand, the more throughput delay you will hear from the audio
|
||||
and/or control inputs (MIDI, GUI) and the audio coming out.
|
||||
|
||||
<P> You can also specify the audio block size in sample frames. This is 64 by
|
||||
default (except for MMIO for which it's 256), and may be 64, 128, or 256.
|
||||
|
||||
<H4> MIDI and sleepgrain</H4>
|
||||
|
||||
<P> In Linux, if you
|
||||
ask for "pd -midioutdev 1" for instance, you get /dev/midi0 or /dev/midi00
|
||||
(or even /dev/midi). "-midioutdev 45" would be /dev/midi44. In NT, device
|
||||
number 0 is the "MIDI mapper", which is the default MIDI device you selected
|
||||
from the control panel; counting from one, the device numbers are card
|
||||
numbers as listed by "pd -listdev."
|
||||
|
||||
<P> The "sleepgrain" controls how long (in milliseconds) Pd sleeps between
|
||||
periods of computation. This is normally the audio buffer divided by 4, but
|
||||
no less than 0.1 and no more than 5. On most OSes, ingoing and outgoing MIDI
|
||||
is quantized to this value, so if you care about MIDI timing, reduce this to 1
|
||||
or less.
|
||||
|
||||
<H3> <A name="s5"> 3.7. How Pd searches for files </A> </H3>
|
||||
|
||||
<P>Pd has a search path feature; you specify the path on the command line
|
||||
using the "-path" option. Paths may contain any number of files. If you
|
||||
specify several files in a single "-path" option they're separated by colons
|
||||
in unix or semicolons in NT.
|
||||
|
||||
<P> You can see and edit the path while Pd is running using the "path..."
|
||||
item in the "File" menu:
|
||||
|
||||
<CENTER><P>
|
||||
<IMG src="fig11.4.png" ALT="startup dialog">
|
||||
</P></CENTER>
|
||||
|
||||
<P> The path must be correctly set before you load
|
||||
a patch or it may fail to find abstractions, etc., that are needed to
|
||||
construct the patch. When Pd searches for an abstraction or an
|
||||
"extern" it uses the path to try to find the necessary file. The "read"
|
||||
messages to qlists and arrays (aka tables) do this too.
|
||||
|
||||
<P> If ``use standard extensions" is enabled, the usual ``extras" directory
|
||||
is also searched. This contains standard external objects like ``expr" and
|
||||
``fiddle", and perhaps much more depending on the distribution of Pd
|
||||
you're using.
|
||||
|
||||
<P> You may save the current settings for future Pd sessions with the
|
||||
``save all settings" button; this saves not only the path but all other
|
||||
settings as well.
|
||||
|
||||
<P> Path entries may be relative to the patch directory; for instance,
|
||||
if your path has an item, "../sound", and your patch is in "my stuff/all mine",
|
||||
then Pd will look in "my stuff/sound". Spaces should be OK in the path to
|
||||
the patch, but not in the path entry (../sound) itself. This is useful if
|
||||
you have a patch and supporting files (even a supporting snapshot of pd)
|
||||
that you want to distribute or carry around together.
|
||||
|
||||
<P> Regardless of path, Pd should look first in the directory containing
|
||||
the patch before searching down the path. Pd does not automatically look
|
||||
in the <I> current directory </I> however; to enable that, include ``." in
|
||||
the path. The ``extra" directory, if enabled, is searched last.
|
||||
|
||||
<P> Filenames in Pd are always separated by (unix-style) forward slashes, even
|
||||
if you're on Windows (which uses backslashes). This is so that patches can be
|
||||
ported more easily between operating systems. On the other hand, if you
|
||||
specify a filename on the command line (as in "pd -path c:\pdlib") the file
|
||||
separator should agree with the operating system. <BR>
|
||||
|
||||
<P> If a filename specified in a patch has any "/" characters in it, the "path"
|
||||
is not used; thus, "../sounds/sample1.wav" causes Pd only to look relative to
|
||||
the directory containing the patch. You may also invoke externs that way.
|
||||
|
||||
<P> As of version 0.35, there may be spaces in the path to Pd itself; also,
|
||||
the "openpanel" and "savepanel" objects can handle spaces. Spaces in the
|
||||
path should work as of version 0.38.
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
61
src/pd-0.44-2/doc/1.manual/x4.htm
Normal file
|
@ -0,0 +1,61 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Pd Documentation 4</TITLE>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
|
||||
</HEAD>
|
||||
|
||||
|
||||
<BODY>
|
||||
|
||||
<H2>Pd Documentation chapter 4: writing Pd objects in C</H2>
|
||||
|
||||
<P>
|
||||
<A href="index.htm#s4"> back to table of contents </A>
|
||||
<BR><BR>
|
||||
</P>
|
||||
|
||||
<P>You can write your own objects that you and others can use in their Pd
|
||||
applications. You can write them in C or (if you're smart and brave) in C++ or
|
||||
FORTRAN.
|
||||
|
||||
<P> HOW EXTERNS ARE LOADED
|
||||
|
||||
<P> Whenever you type the name of an object
|
||||
(into an "object" text box) that Pd doesn't yet know about, Pd looks for a
|
||||
relocatable object file, named, for instance, "profile.pd_irix5". Pd looks
|
||||
first in the directory containing the patch, then in directories in its
|
||||
"path." Pd will then add whatever object is defined there to its "class list,"
|
||||
which is the set of all Pd classes you can use. If all this works, Pd then
|
||||
attempts again to create the object you asked for, this time perhaps
|
||||
successfully. There is no difference between an object defined this way and an
|
||||
object built into Pd.
|
||||
|
||||
<P> Once you load a new object into Pd, it's there for the duration of your Pd
|
||||
session. If you load another Pd document which supplies a different version of
|
||||
some Pd object, the object won't be updated. IF you're working on a new object
|
||||
and decide to change it, you have to exit and re-enter Pd to get the change to
|
||||
take.
|
||||
|
||||
<P> In the "externs" subdirectory of the documentation you
|
||||
can find simple examples of "externs" with their source code and test patches;
|
||||
there are many other on the web (see <a href="x1.htm#s2">section 1.2 </A>).
|
||||
|
||||
<P> Iohannes Zmoelnig has written an excellent guide to writing externs at
|
||||
<A href="http://iem.kug.ac.at/pd/externals-HOWTO/">
|
||||
http://iem.kug.ac.at/pd/externals-HOWTO/</A> .
|
||||
|
||||
<P> A paper by Theo Stojanov on the subject is at:
|
||||
<A href="http://www.music.mcgill.ca/~theo/html/audio/pd_externs.pdf">
|
||||
http://www.music.mcgill.ca/~theo/html/audio/pd_externs.pdf </A> .
|
||||
|
||||
<P> NT HINT: In NT, Pd is compiled using Visual C 6.0. If you have VC 5.x
|
||||
your externs won't compile against Pd; you'll get an error about "disk full
|
||||
or bad DLL." Simply recompile Pd under 5.x and the problem goes away. Externs
|
||||
compiled under 5.x and 6.x are binary compatible; it's just the compilation
|
||||
that's sensitive.
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
1811
src/pd-0.44-2/doc/1.manual/x5.htm
Normal file
19
src/pd-0.44-2/doc/2.control.examples/00.INTRO.txt
Normal file
|
@ -0,0 +1,19 @@
|
|||
This series of patches serves as a tutorial for Pd's "control" structure, as
|
||||
opposed to its audio functions (covered in the next series.) These tutorials
|
||||
are inspired by Chris Dobrian's Max tutorial patches.
|
||||
|
||||
It's probably best to look at the first section here before going on to the
|
||||
audio portion, but afterward there's no reason not to browse back and forth
|
||||
between the two, and even the third series on "fft" based techniques.
|
||||
|
||||
The relationship between "control" and "audio" is described in Pd's HTML
|
||||
documentation, which is more like a reference manual than an introduction.
|
||||
Also, you probably will need to look there to get Pd up and running stably so
|
||||
that you can enjoy the patches here.
|
||||
|
||||
The patches are roughly divided as shown:
|
||||
|
||||
1. objects and connections
|
||||
2. subpatches, tables, and organization
|
||||
3. specific techniques.
|
||||
|
16
src/pd-0.44-2/doc/2.control.examples/01.PART1.hello.pd
Normal file
|
@ -0,0 +1,16 @@
|
|||
#N canvas 9 21 600 496 12;
|
||||
#X msg 204 32 hello world;
|
||||
#X obj 204 105 print;
|
||||
#X floatatom 321 32 0 0 0;
|
||||
#X text 215 48 message;
|
||||
#X text 319 49 atom;
|
||||
#X text 201 123 object;
|
||||
#X text 53 150 There are four types of text objects in Pd: message \, atom \, object \, and comment.;
|
||||
#X text 54 187 Messages respond to mouse clicks by sending their contents to one or more destinations. The usual destination is the "outlet" at the lower left corner of the box.;
|
||||
#X text 55 239 Click the message box and watch the terminal window Pd was started in. You should see the "hello world" message appear.;
|
||||
#X text 55 278 Atoms respond to "Dragging" up and down with the mouse \, by changing their contents and sending the result out their outlets. You can also type at an atom after clicking on it \; hit "enter" to output the number or click anywhere else to cancel.;
|
||||
#X text 52 359 Objects \, like "print" above \, may have all sorts of functions depending on what's typed into them. The "print" object simply prints out every message it receives.;
|
||||
#X text 53 415 To get help on an object \, right-click it. You should see a "help window" for the object.;
|
||||
#X text 354 470 updated for release 0.33;
|
||||
#X connect 0 0 1 0;
|
||||
#X connect 2 0 1 0;
|
17
src/pd-0.44-2/doc/2.control.examples/02.editing.pd
Normal file
|
@ -0,0 +1,17 @@
|
|||
#N canvas 1 0 581 630 12;
|
||||
#X msg 195 36 hello world;
|
||||
#X obj 195 72 print;
|
||||
#X floatatom 304 36 0 0 0;
|
||||
#X text 194 15 message;
|
||||
#X text 304 14 atom;
|
||||
#X text 255 73 object;
|
||||
#X text 34 102 When you first open a Pd document like this one \, your cursor will be an arrow. Select "edit mode" in the Edit menu and the cursor will change to the image of a hand. The patch is now in edit mode. You can move any object by dragging it.;
|
||||
#X text 33 185 Select "Edit mode" again in the Edit menu and you're back to the arrow cursor which acts on objects without moving them.;
|
||||
#X text 32 373 You can create new objects by duplicating existing ones using the "duplicate" menu item. You can also "cut" and "paste" them. If you duplicate several connected objects the connections will be replicated too.;
|
||||
#X text 33 237 In Edit mode \, if you click on a message \, object \, or comment \, you can then retype the text. For objects this will create a new object and delete the old one. Pd will try to reconnect the newly created object in the same way as the old one.;
|
||||
#X text 34 442 Edit mode also lets you make and break connections between objects. Put the "hand" cursor over a line connecting two objects: it turns into an X. Clicking will delete the connection. Hold the cursor over an outlet and it becomes a circle (a patch point). Drag to any box and release \; you will be connected to the nearest inlet.;
|
||||
#X text 32 320 When you're done changing the contents of the box \, click outside the box to deselect it. This tells Pd to incorporate the new text.;
|
||||
#X text 328 604 updated for Pd version 0.33;
|
||||
#X text 35 544 The "put" menu creates new text items of any of the four types. You can also put a "symbol" box \, analogous to a number box but for showing and entering text strings.;
|
||||
#X connect 0 0 1 0;
|
||||
#X connect 2 0 1 0;
|
58
src/pd-0.44-2/doc/2.control.examples/03.connections.pd
Normal file
|
@ -0,0 +1,58 @@
|
|||
#N canvas 185 28 660 552 12;
|
||||
#X floatatom 76 400 0 0 0 0 - - -;
|
||||
#X floatatom 189 401 0 0 0 0 - - -;
|
||||
#X floatatom 76 307 0 0 0 0 - - -;
|
||||
#X floatatom 553 161 0 0 0 0 - - -;
|
||||
#X floatatom 599 162 0 0 0 0 - - -;
|
||||
#X obj 553 135 +;
|
||||
#X floatatom 553 105 0 0 0 0 - - -;
|
||||
#X obj 599 136 +;
|
||||
#X floatatom 26 109 0 0 0 0 - - -;
|
||||
#X floatatom 26 17 0 0 0 0 - - -;
|
||||
#X floatatom 48 41 0 0 0 0 - - -;
|
||||
#X obj 26 85 +;
|
||||
#X text 3 64 hot;
|
||||
#X text 53 66 cold;
|
||||
#X text 232 105 Here's the downside: drag this--->;
|
||||
#X text 551 180 good;
|
||||
#X text 600 181 bad;
|
||||
#X obj 76 376 *;
|
||||
#X obj 189 377 -;
|
||||
#X text 15 400 square;
|
||||
#X text 229 402 first difference;
|
||||
#X obj 76 330 trigger float float;
|
||||
#X text 412 526 updated for Pd version 0.33;
|
||||
#X text 19 433 Trigger takes any number of "bang" and "float" arguments
|
||||
(among others) and copies its input to its outlets \, in the requested
|
||||
forms \, in right-to-left order. Hook it to two inputs without crossing
|
||||
the wires and you get the expected result. Cross the wires and you
|
||||
get a memory effect.;
|
||||
#X text 9 136 In Pd you must sometimes think about what order an object
|
||||
is going to get its messages in. If an outlet is connected to more
|
||||
than one inlet it's undefined which inlet will get the cookie first.
|
||||
I've rigged this example so that the left-hand side box gets its inputs
|
||||
in the good \, right-to-left order \, so that the hot inlet gets hit
|
||||
when all the data are good. The "bad adder" happens to receive its
|
||||
inputs in the wrong order and is perpetually doing its addition before
|
||||
all the data are in. There's an object that exists solely to allow
|
||||
you to control message order explicitly:;
|
||||
#X text 114 16 In Pd \, most objects carry out their functions when
|
||||
they get messages in their leftmost inlets \, and their other inlets
|
||||
are for storing values that can modify the next action. Here \, the
|
||||
"+" object does its thing only when the left-hand input changes.;
|
||||
#X connect 2 0 21 0;
|
||||
#X connect 5 0 3 0;
|
||||
#X connect 6 0 7 0;
|
||||
#X connect 6 0 7 1;
|
||||
#X connect 6 0 5 1;
|
||||
#X connect 6 0 5 0;
|
||||
#X connect 7 0 4 0;
|
||||
#X connect 9 0 11 0;
|
||||
#X connect 10 0 11 1;
|
||||
#X connect 11 0 8 0;
|
||||
#X connect 17 0 0 0;
|
||||
#X connect 18 0 1 0;
|
||||
#X connect 21 0 17 0;
|
||||
#X connect 21 0 18 1;
|
||||
#X connect 21 1 17 1;
|
||||
#X connect 21 1 18 0;
|
35
src/pd-0.44-2/doc/2.control.examples/04.messages.pd
Normal file
|
@ -0,0 +1,35 @@
|
|||
#N canvas 0 0 591 442 12;
|
||||
#X floatatom 225 110 0 0 0;
|
||||
#X floatatom 184 109 0 0 0;
|
||||
#X msg 184 56 5 6;
|
||||
#X floatatom 132 108 0 0 0;
|
||||
#X floatatom 64 105 0 0 0;
|
||||
#X text 30 21 Most Pd messages are just numbers or short lists of numbers:;
|
||||
#X msg 64 55 5;
|
||||
#X obj 64 80 + 9;
|
||||
#X obj 132 83 +;
|
||||
#X obj 184 84 unpack;
|
||||
#X msg 288 55 5;
|
||||
#X obj 288 107 print;
|
||||
#X obj 288 81 pack 34 78;
|
||||
#X msg 132 55 5 6;
|
||||
#X floatatom 195 328 0 0 0;
|
||||
#X obj 195 303 +;
|
||||
#X msg 195 254 1.2 3.4;
|
||||
#X msg 205 277 5 6;
|
||||
#X text 36 206 Unlike Max \, in Pd all numbers are floating point. Numbers whose values happen to be integers are displayed without decimal points.;
|
||||
#X text 31 363 For more on messages \, get help on any message box by right-clicking.;
|
||||
#X text 329 409 updated for Pd release 0.33;
|
||||
#X text 34 149 If you send a list to an object with more than one inlet \, the items in the list are spread out over the inlets \, as seen in the 5+6 example above.;
|
||||
#X connect 2 0 9 0;
|
||||
#X connect 6 0 7 0;
|
||||
#X connect 7 0 4 0;
|
||||
#X connect 8 0 3 0;
|
||||
#X connect 9 0 1 0;
|
||||
#X connect 9 1 0 0;
|
||||
#X connect 10 0 12 0;
|
||||
#X connect 12 0 11 0;
|
||||
#X connect 13 0 8 0;
|
||||
#X connect 15 0 14 0;
|
||||
#X connect 16 0 15 0;
|
||||
#X connect 17 0 15 0;
|
45
src/pd-0.44-2/doc/2.control.examples/05.counter.pd
Normal file
|
@ -0,0 +1,45 @@
|
|||
#N canvas 0 0 685 496 12;
|
||||
#X floatatom 107 424 0 0 0;
|
||||
#X msg 53 344 bang;
|
||||
#X obj 107 399 + 1;
|
||||
#X obj 376 262 + 1;
|
||||
#X floatatom 152 197 0 0 0;
|
||||
#X floatatom 108 245 0 0 0;
|
||||
#X msg 108 196 bang;
|
||||
#X floatatom 169 107 0 0 0;
|
||||
#X msg 112 58 bang;
|
||||
#X obj 169 82 + 1;
|
||||
#X text 31 21 Here's a simple counter. Click repeatedly on the "bang
|
||||
message to see it:;
|
||||
#X text 422 263 to its cold inlet.;
|
||||
#X text 25 284 The incremented value is stored for the next "bang"
|
||||
to spit out.;
|
||||
#X text 28 322 Here's a timed counter. Hit the "bang" to start it...
|
||||
;
|
||||
#X obj 53 373 metro 500;
|
||||
#X msg 99 344 stop;
|
||||
#X obj 112 83 float;
|
||||
#X text 28 132 The "float" box is a storage element holding one floating-point
|
||||
number. The cold inlet (i.e. \, the one on the right) stores numbers.
|
||||
Sending the message "bang" to the hot inlet gets the number back out:
|
||||
;
|
||||
#X obj 108 221 float;
|
||||
#X obj 53 399 float;
|
||||
#X text 25 263 Float's outlet above is connected via;
|
||||
#X text 384 462 updated for Pd version 0.34;
|
||||
#X text 142 373 <-- new object: metronome. The "500" means every 500
|
||||
milliseconds--i.e. \, twice a second.;
|
||||
#X connect 1 0 14 0;
|
||||
#X connect 2 0 0 0;
|
||||
#X connect 2 0 19 1;
|
||||
#X connect 4 0 18 1;
|
||||
#X connect 6 0 18 0;
|
||||
#X connect 8 0 16 0;
|
||||
#X connect 9 0 7 0;
|
||||
#X connect 9 0 16 1;
|
||||
#X connect 14 0 19 0;
|
||||
#X connect 15 0 14 0;
|
||||
#X connect 15 0 14 0;
|
||||
#X connect 16 0 9 0;
|
||||
#X connect 18 0 5 0;
|
||||
#X connect 19 0 2 0;
|
55
src/pd-0.44-2/doc/2.control.examples/06.more.counters.pd
Normal file
|
@ -0,0 +1,55 @@
|
|||
#N canvas 8 0 659 487 12;
|
||||
#X floatatom 147 177 0 0 0;
|
||||
#X obj 147 151 + 1;
|
||||
#X msg 147 47 bang;
|
||||
#X obj 147 99 metro 500;
|
||||
#X msg 56 105 stop;
|
||||
#X obj 147 125 float;
|
||||
#X obj 147 73 trigger bang bang;
|
||||
#X msg 261 105 0;
|
||||
#X obj 56 79 select 10;
|
||||
#X text 305 102 first set value to zero;
|
||||
#X text 304 73 initialization is in two steps;
|
||||
#X text 305 121 (before starting the metronome);
|
||||
#X text 9 128 conditionally;
|
||||
#X text 9 145 stop the;
|
||||
#X text 10 159 metronome;
|
||||
#X text 184 46 <--- click here to start;
|
||||
#X floatatom 85 289 0 0 0;
|
||||
#X obj 85 315 >= 0;
|
||||
#X obj 85 341 select 0 1;
|
||||
#X obj 85 393 float;
|
||||
#X floatatom 139 420 0 0 0;
|
||||
#X msg 119 367 bang;
|
||||
#X obj 139 394 + 1;
|
||||
#X msg 85 367 -1;
|
||||
#X text 131 313 <-- are we nonnegative? (1 if true \, 0 if false);
|
||||
#X text 180 340 <-- selectively bang the first or second outlet;
|
||||
#X text 167 363 <-- as a result either clear or increment the counter
|
||||
;
|
||||
#X text 32 11 Here's a counter that counts from 1 to 10:;
|
||||
#X text 392 452 updated for Pd version 0.34;
|
||||
#X text 33 200 We're using one new object \, "select \, " which outputs
|
||||
a bang when it gets a matching value (10). This is useful for doing
|
||||
conditional computations \, such as this one which counts while its
|
||||
input is 0 or positive but clears when negative:;
|
||||
#X connect 1 0 0 0;
|
||||
#X connect 1 0 5 1;
|
||||
#X connect 1 0 8 0;
|
||||
#X connect 2 0 6 0;
|
||||
#X connect 3 0 5 0;
|
||||
#X connect 4 0 3 0;
|
||||
#X connect 5 0 1 0;
|
||||
#X connect 6 0 3 0;
|
||||
#X connect 6 1 7 0;
|
||||
#X connect 7 0 5 1;
|
||||
#X connect 8 0 4 0;
|
||||
#X connect 16 0 17 0;
|
||||
#X connect 17 0 18 0;
|
||||
#X connect 18 0 23 0;
|
||||
#X connect 18 1 21 0;
|
||||
#X connect 19 0 22 0;
|
||||
#X connect 21 0 19 0;
|
||||
#X connect 22 0 19 1;
|
||||
#X connect 22 0 20 0;
|
||||
#X connect 23 0 19 0;
|
40
src/pd-0.44-2/doc/2.control.examples/07.time.pd
Normal file
|
@ -0,0 +1,40 @@
|
|||
#N canvas 490 83 724 474 12;
|
||||
#X text 34 13 Besides the metronome \, there are three objects for
|
||||
dealing with time:;
|
||||
#X obj 64 117 print;
|
||||
#X msg 64 59 bang;
|
||||
#X msg 110 61 stop;
|
||||
#X obj 64 89 delay 2000;
|
||||
#X msg 76 192 bang;
|
||||
#X obj 76 239 timer;
|
||||
#X text 160 117 The right inlet can be used to set the time value without
|
||||
scheduling any output.;
|
||||
#X obj 106 214 delay 123.45;
|
||||
#X floatatom 76 264 0 0 0 0 - - -;
|
||||
#X text 34 288 Note that all time calculations are idealized \; they
|
||||
do not show the effects of computation time or OS latency. This way
|
||||
you can write deterministic algorithms dealing with time passage.;
|
||||
#X obj 74 387 pipe 2000;
|
||||
#X floatatom 74 360 0 0 0 0 - - -;
|
||||
#X floatatom 74 413 0 0 0 0 - - -;
|
||||
#X text 165 361 The pipe object allocates memory dynamically in order
|
||||
to schedule any number of delayed events. The events may hold any collection
|
||||
of data (as usual \, for more details you can consult the help window.)
|
||||
;
|
||||
#X text 442 440 updated for Pd version 0.43;
|
||||
#X text 35 154 The timer \, shown below \, measures the time elapsed
|
||||
between the arrival of 'bang' messages to its left and right inlets:
|
||||
;
|
||||
#X text 159 40 The delay object schedules an event for a future time
|
||||
expressed in milliseconds. Unlike in Max \, time values need not be
|
||||
integers. If a delay has been scheduled and you "bang" it again \,
|
||||
it is rescheduled (the previously scheduled output is cancelled.);
|
||||
#X connect 2 0 4 0;
|
||||
#X connect 3 0 4 0;
|
||||
#X connect 4 0 1 0;
|
||||
#X connect 5 0 6 0;
|
||||
#X connect 5 0 8 0;
|
||||
#X connect 6 0 9 0;
|
||||
#X connect 8 0 6 1;
|
||||
#X connect 11 0 13 0;
|
||||
#X connect 12 0 11 0;
|
48
src/pd-0.44-2/doc/2.control.examples/08.depthfirst.pd
Normal file
|
@ -0,0 +1,48 @@
|
|||
#N canvas 144 162 632 551 12;
|
||||
#X msg 64 51 1;
|
||||
#X obj 89 150 + 1;
|
||||
#X obj 209 187 print x1;
|
||||
#X obj 64 209 print x3;
|
||||
#X obj 114 122 print x2;
|
||||
#X obj 209 100 + 1;
|
||||
#X obj 209 129 + 1;
|
||||
#X obj 209 158 + 1;
|
||||
#X obj 64 80 t f f f f;
|
||||
#X obj 89 179 print x2;
|
||||
#X text 34 13 In Pd \, message passing is depth first \, so that in
|
||||
this patch:;
|
||||
#X text 104 51 <-- click here;
|
||||
#X text 17 243 ... you get "x1" first \, notwidthstanding the fact
|
||||
that "x2" and "x3" appear to be closer to the source. This means that
|
||||
you shouldn't do this:;
|
||||
#X msg 76 304 1;
|
||||
#X text 116 304 <-- maybe you shouldn't click here;
|
||||
#X obj 115 334 + 1;
|
||||
#X obj 76 333 f;
|
||||
#X floatatom 76 365 0 0 0;
|
||||
#X text 377 520 updated for Pd version 0.34;
|
||||
#X text 35 393 ... because the "depth" is infinite. The counters you've
|
||||
seen always have the message chain terminated somewhere in a cold inlet:
|
||||
;
|
||||
#X msg 75 453 1;
|
||||
#X obj 114 483 + 1;
|
||||
#X obj 75 482 f;
|
||||
#X floatatom 75 514 0 0 0;
|
||||
#X text 115 453 <-- better;
|
||||
#X connect 0 0 8 0;
|
||||
#X connect 1 0 9 0;
|
||||
#X connect 5 0 6 0;
|
||||
#X connect 6 0 7 0;
|
||||
#X connect 7 0 2 0;
|
||||
#X connect 8 0 3 0;
|
||||
#X connect 8 1 1 0;
|
||||
#X connect 8 2 4 0;
|
||||
#X connect 8 3 5 0;
|
||||
#X connect 13 0 16 0;
|
||||
#X connect 15 0 16 0;
|
||||
#X connect 16 0 17 0;
|
||||
#X connect 16 0 15 0;
|
||||
#X connect 20 0 22 0;
|
||||
#X connect 21 0 22 1;
|
||||
#X connect 22 0 23 0;
|
||||
#X connect 22 0 21 0;
|
35
src/pd-0.44-2/doc/2.control.examples/09.send_receive.pd
Normal file
|
@ -0,0 +1,35 @@
|
|||
#N canvas 136 31 738 479 12;
|
||||
#X floatatom 88 199 0 0 0;
|
||||
#X obj 88 172 receive crackers;
|
||||
#X floatatom 248 204 0 0 0;
|
||||
#X obj 248 177 receive pickles;
|
||||
#X obj 88 145 send crackers;
|
||||
#X obj 250 139 send pickles;
|
||||
#X obj 389 138 send pickles;
|
||||
#X floatatom 392 203 0 0 0;
|
||||
#X obj 392 176 receive pickles;
|
||||
#X msg 51 306 \; pickles 99 \; crackers 56;
|
||||
#X floatatom 88 118 0 0 0;
|
||||
#X floatatom 250 112 0 0 0;
|
||||
#X floatatom 389 111 0 0 0;
|
||||
#X obj 371 404 r crackers;
|
||||
#X obj 371 377 s crackers;
|
||||
#X text 39 392 send and receive can be abbreviated:;
|
||||
#X text 48 245 You can use the semicolon feature of message boxes to
|
||||
address receives \, too. This is useful if you want to do a whole list
|
||||
of things:;
|
||||
#X text 166 305 The transaction takes place in zero time---i.e. \,
|
||||
if you tried to use "timer" to measure the time delay between the two
|
||||
\, you would get zero.;
|
||||
#X text 459 447 updated for Pd version 0.34;
|
||||
#X text 51 6 The send and receive objects allow you to make non-local
|
||||
connections. These work globally--you can use them to make two different
|
||||
patches intercommunicate if you wish. Any message a "send" gets appears
|
||||
at the output of every receive of the same name. There can be any number
|
||||
of sends and receives sharing the same name:;
|
||||
#X connect 1 0 0 0;
|
||||
#X connect 3 0 2 0;
|
||||
#X connect 8 0 7 0;
|
||||
#X connect 10 0 4 0;
|
||||
#X connect 11 0 5 0;
|
||||
#X connect 12 0 6 0;
|
56
src/pd-0.44-2/doc/2.control.examples/10.more.messages.pd
Normal file
|
@ -0,0 +1,56 @@
|
|||
#N canvas 91 95 675 539 12;
|
||||
#X obj 211 341 print;
|
||||
#X msg 52 89 3 \, 4 \, 5;
|
||||
#X msg 44 62 3 4 5;
|
||||
#X msg 57 313 3 \$1 5;
|
||||
#X floatatom 57 286 4 0 0;
|
||||
#X msg 211 315 \$2 \$1 5;
|
||||
#X msg 211 290 45 67;
|
||||
#X msg 289 290 45 67;
|
||||
#X floatatom 28 425 4 0 0;
|
||||
#X floatatom 76 425 4 0 0;
|
||||
#X floatatom 332 179 4 0 0;
|
||||
#X floatatom 186 182 4 0 0;
|
||||
#X obj 186 155 receive number9;
|
||||
#X obj 332 155 receive 9bis;
|
||||
#X obj 44 178 print;
|
||||
#X text 27 5 In addition to using semicolons to separate messages \,
|
||||
you can use commas \, which continue a stream of messages to the same
|
||||
destination. Thus:;
|
||||
#X msg 65 116 3 \; number9 5 \; 9bis 45;
|
||||
#X text 126 89 <-- three separate messages;
|
||||
#X text 109 58 <-- one message: the list \, "3 4 5".;
|
||||
#X text 167 114 <-- three separate messages \, with three destinations.
|
||||
;
|
||||
#X text 406 511 updated for Pd version 0.34;
|
||||
#X msg 289 315 \; number9 \$1 \; 9bis \$2;
|
||||
#X text 9 209 You can use "$1" \, etc. \, as variables in messages.
|
||||
Send the message box a list whose elements supply the values. A number
|
||||
is just a list with one element.;
|
||||
#X obj 57 339 print;
|
||||
#X text 51 265 one variable:;
|
||||
#X text 216 263 two variables:;
|
||||
#X text 1 367 But to really exploit the possibilities using multiple
|
||||
variables \, you will need the "pack" object to get two or more values
|
||||
into the same message:;
|
||||
#X obj 28 507 print;
|
||||
#X obj 28 455 pack 0 0 0;
|
||||
#X floatatom 124 425 4 0 0;
|
||||
#X msg 28 481 cis \$1 \, boom \$2 \, bah \$3;
|
||||
#X text 124 455 <-- creation arguments to "pack" set the number of
|
||||
inlets.;
|
||||
#X connect 1 0 14 0;
|
||||
#X connect 2 0 14 0;
|
||||
#X connect 3 0 23 0;
|
||||
#X connect 4 0 3 0;
|
||||
#X connect 5 0 0 0;
|
||||
#X connect 6 0 5 0;
|
||||
#X connect 7 0 21 0;
|
||||
#X connect 8 0 28 0;
|
||||
#X connect 9 0 28 1;
|
||||
#X connect 12 0 11 0;
|
||||
#X connect 13 0 10 0;
|
||||
#X connect 16 0 14 0;
|
||||
#X connect 28 0 30 0;
|
||||
#X connect 29 0 28 2;
|
||||
#X connect 30 0 27 0;
|
42
src/pd-0.44-2/doc/2.control.examples/11.review.pd
Normal file
|
@ -0,0 +1,42 @@
|
|||
#N canvas 255 248 675 539 12;
|
||||
#X text 406 511 updated for Pd version 0.34;
|
||||
#X obj 39 232 receive;
|
||||
#X obj 39 203 send;
|
||||
#X obj 39 289 pack;
|
||||
#X obj 111 233 r;
|
||||
#X obj 82 203 s;
|
||||
#X obj 40 348 timer;
|
||||
#X obj 40 60 float;
|
||||
#X obj 39 175 select;
|
||||
#X obj 40 89 +;
|
||||
#X obj 40 117 >=;
|
||||
#X obj 39 146 print;
|
||||
#X obj 39 260 trigger;
|
||||
#X obj 95 61 f;
|
||||
#X obj 100 176 sel;
|
||||
#X obj 111 259 t;
|
||||
#X obj 39 318 unpack;
|
||||
#X obj 40 435 pipe;
|
||||
#X obj 40 377 delay;
|
||||
#X obj 40 406 metro;
|
||||
#X text 20 8 So far we've seen the following objects \, some of which
|
||||
have abbreviations. Right click on any one to get reference documentation:
|
||||
;
|
||||
#X text 150 205 wireless message send;
|
||||
#X text 151 229 wireless message receive;
|
||||
#X text 145 175 test for two equal numbers;
|
||||
#X text 151 258 control message order and format;
|
||||
#X text 148 293 combine atoms (e.g. \, numbers) into a list;
|
||||
#X text 146 319 take a list apart into atoms;
|
||||
#X text 146 146 printout;
|
||||
#X text 147 90 arithmetic;
|
||||
#X text 75 89 (etc.);
|
||||
#X text 74 117 (etc.);
|
||||
#X text 145 117 comparison;
|
||||
#X text 145 60 store a number;
|
||||
#X text 145 348 measure elapsed time;
|
||||
#X text 145 379 pass a message after delay;
|
||||
#X text 145 437 multiple delay;
|
||||
#X text 143 409 repeated message;
|
||||
#X text 38 473 There are many others... you can see a complete list
|
||||
in INTRO.txt in the reference patches (../5.reference).;
|
72
src/pd-0.44-2/doc/2.control.examples/12.PART2.subpatch.pd
Normal file
|
@ -0,0 +1,72 @@
|
|||
#N canvas 84 47 648 623 12;
|
||||
#X msg 29 318 bang;
|
||||
#X floatatom 432 341 0 0 0;
|
||||
#X text 32 14 You can nest entire windows inside Pd boxes (and so on
|
||||
\, as deep as you wish.) There are two different ways to do it. First
|
||||
\, if you just want to add a room to the house \, so to speak \, type
|
||||
;
|
||||
#N canvas 344 151 422 119 sample-subpatch 1;
|
||||
#X text 39 43 this is a subpatch of the main patch.;
|
||||
#X restore 29 85 pd sample-subpatch;
|
||||
#X text 201 85 <-- you can give the window a name as an argument;
|
||||
#N canvas 0 0 654 340 eager-adder 0;
|
||||
#X obj 62 73 inlet;
|
||||
#X obj 118 73 inlet;
|
||||
#X obj 62 188 outlet;
|
||||
#X obj 118 101 t b f;
|
||||
#X obj 62 156 +;
|
||||
#X text 197 23 this is a sample subpatch which maintains the sum of
|
||||
two inputs \, doing the computation when either input changes. IF it's
|
||||
the left input \, the "+" object takes care if it \; if the right \,
|
||||
the "trigger" object first gives the "+" the new value \, then "bangs"
|
||||
the right inlet to make "+" do the computation.;
|
||||
#X text 55 232 Aside: this shows why \, in Pd and Max \, objects such
|
||||
as "+" only trigger on their left inlets: it's easy to build up from
|
||||
there \, but if more than one inlet were "hot" \, you wouldn't be able
|
||||
to change both of them without firing the calculation twice.;
|
||||
#X text 197 112 Because of the two inlets and the one outlet \, the
|
||||
containing box (int eh parent patch) has two inlets and one outlet.
|
||||
They respect the left-to-right order of the inlet and outlet objects
|
||||
in the subpatch.;
|
||||
#X connect 0 0 4 0;
|
||||
#X connect 1 0 3 0;
|
||||
#X connect 3 0 4 0;
|
||||
#X connect 3 1 4 1;
|
||||
#X connect 4 0 2 0;
|
||||
#X restore 135 185 pd eager-adder;
|
||||
#X floatatom 135 158 0 0 0;
|
||||
#X floatatom 256 158 0 0 0;
|
||||
#X floatatom 135 213 0 0 0;
|
||||
#X text 26 235 There is also a facility for making many copies of a
|
||||
patch which track any changes you make in the original. The subpatches
|
||||
are called abstractions. For example \, here's a simple abstraction
|
||||
that sends a number to a "receive" on command:;
|
||||
#X obj 29 342 sendnumber 45 cookies;
|
||||
#X msg 226 314 bang;
|
||||
#X obj 226 341 sendnumber 67 pretzels;
|
||||
#X floatatom 519 341 0 0 0;
|
||||
#X text 27 553 note that "$1" \, etc \, has a different meaning in
|
||||
object boxes (open one of the "sendnumber" abstractions for comments.)
|
||||
;
|
||||
#X text 26 470 If you change one copy of an abstraction the change
|
||||
isn't automatically made on any other copies. You must keep track \,
|
||||
save the changes \, and cause Pd to reload the other copies (for example
|
||||
\, by closing and reopening the containing patch.);
|
||||
#X obj 432 314 r cookies;
|
||||
#X obj 519 314 r pretzels;
|
||||
#X text 31 107 If you click on the box (in run mode) the subwindow
|
||||
appears. Click on the one below to see how you give a subpatch inlets
|
||||
and outlets.;
|
||||
#X text 332 594 updated for Pd version 0.34;
|
||||
#X text 27 372 There is a separate file in this directory named "sendnumber.pd"
|
||||
which is loaded every time you type "sendnumber" in a box. Click on
|
||||
a "sendnumber" box above to see it. You can make changes in the subpatch
|
||||
and save them. The changes will be saved back to sendnumber.pd and
|
||||
not as part of this (containing) patch.;
|
||||
#X connect 0 0 10 0;
|
||||
#X connect 5 0 8 0;
|
||||
#X connect 6 0 5 0;
|
||||
#X connect 7 0 5 1;
|
||||
#X connect 11 0 12 0;
|
||||
#X connect 16 0 1 0;
|
||||
#X connect 17 0 13 0;
|
27
src/pd-0.44-2/doc/2.control.examples/13.locality.pd
Normal file
|
@ -0,0 +1,27 @@
|
|||
#N canvas 24 192 606 297 12;
|
||||
#X floatatom 38 223 0 0 0;
|
||||
#X floatatom 191 221 0 0 0;
|
||||
#X text 356 264 updated for Pd version 0.34;
|
||||
#X text 32 14 You can use dollarsigns in abstractions to get local
|
||||
sends and receives as shown here.;
|
||||
#X obj 29 85 dollarsign one;
|
||||
#X obj 167 86 dollarsign two;
|
||||
#X obj 38 196 r one-a;
|
||||
#X obj 191 194 r two-a;
|
||||
#X floatatom 110 225 0 0 0;
|
||||
#X floatatom 264 220 0 0 0;
|
||||
#X obj 110 197 r one-b;
|
||||
#X obj 264 191 r two-b;
|
||||
#X text 26 112 Open both copies to see what's happening...;
|
||||
#X floatatom 29 59 0 0 0;
|
||||
#X floatatom 124 58 0 0 0;
|
||||
#X floatatom 167 60 0 0 0;
|
||||
#X floatatom 264 58 0 0 0;
|
||||
#X connect 6 0 0 0;
|
||||
#X connect 7 0 1 0;
|
||||
#X connect 10 0 8 0;
|
||||
#X connect 11 0 9 0;
|
||||
#X connect 13 0 4 0;
|
||||
#X connect 14 0 4 1;
|
||||
#X connect 15 0 5 0;
|
||||
#X connect 16 0 5 1;
|
5
src/pd-0.44-2/doc/2.control.examples/14.dollarsigns.pd
Normal file
|
@ -0,0 +1,5 @@
|
|||
#N canvas 12 363 561 155 12;
|
||||
#X text 303 114 updated for Pd version 0.34;
|
||||
#X obj 34 68 dollarsign2 three 4;
|
||||
#X text 32 14 An abstraction's creation arguments may be either numbers
|
||||
or symbols. Gory details are inside:;
|
70
src/pd-0.44-2/doc/2.control.examples/15.array.pd
Normal file
|
@ -0,0 +1,70 @@
|
|||
#N canvas 268 28 1030 744 12;
|
||||
#X text 204 19 ARRAYS;
|
||||
#N canvas 0 0 450 300 graph1 0;
|
||||
#X array array99 100 float 0;
|
||||
#X coords 0 1 99 -1 400 300 1;
|
||||
#X restore 614 49 graph;
|
||||
#X msg 179 325 \; array99 resize \$1;
|
||||
#X floatatom 179 292 0 0 0;
|
||||
#X floatatom 21 260 0 0 0;
|
||||
#X obj 21 294 / 100;
|
||||
#X msg 21 324 \; array99 const \$1;
|
||||
#X text 22 233 You can send messages to an array object:;
|
||||
#X msg 341 325 \; array99 print;
|
||||
#X text 64 262 <-- set to a constant value;
|
||||
#X text 221 291 resize;
|
||||
#X text 342 286 print size;
|
||||
#X text 22 487 read a text file;
|
||||
#X text 23 558 write a text file;
|
||||
#X text 271 559 write a WAV format soundfile;
|
||||
#X obj 104 714 tabread;
|
||||
#X obj 255 714 tabwrite;
|
||||
#X text 20 665 Objects are provided for reading and writing the contents
|
||||
of arrays via control messages:;
|
||||
#X obj 602 654 tabread4~;
|
||||
#X obj 602 679 tabwrite~;
|
||||
#X obj 695 654 tabreceive~;
|
||||
#X text 593 601 ...and audio signals:;
|
||||
#X obj 695 630 tabsend~;
|
||||
#X msg 381 400 \; array99 normalize;
|
||||
#X msg 382 442 \; array99 normalize 0.5;
|
||||
#X text 375 378 normalize to 1 or otherwise;
|
||||
#X obj 266 537 soundfiler;
|
||||
#X obj 812 631 tabosc4~;
|
||||
#X msg 19 402 \; array99 sinesum 64 0.2 0.2 0.2 0.2;
|
||||
#X msg 19 444 \; array99 cosinesum 64 0.2 0.2 0.2 0.2;
|
||||
#X text 23 378 Fourier synthesis (resizes table);
|
||||
#X text 257 484 read a soundfile;
|
||||
#X text 735 698 last updated for release 0.34;
|
||||
#X obj 175 715 tabread4;
|
||||
#X obj 602 628 tabread~;
|
||||
#X msg 267 511 read ../sound/voice2.wav array99;
|
||||
#X text 19 47 Arrays in Pd provide a unified way to deal with lists
|
||||
of numbers \, treating them as either audio samples or for "control"
|
||||
uses. To make one \, select "array" on the "new" menu. Dialogs appear
|
||||
to help you choose the name \, number of elements \, and various flags.
|
||||
;
|
||||
#X text 17 134 You can also change the array size using the "resize"
|
||||
message shown below. Arrays live in graphs and graphs may hold more
|
||||
than one array--however \, graphs containing more than one array won't
|
||||
know how to readjust themselves automatically when the arrays are resized.
|
||||
;
|
||||
#X msg 15 507 \; array99 read 15.file.txt;
|
||||
#X obj 26 581 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 26 600 savepanel;
|
||||
#X msg 26 623 \; array99 write \$1;
|
||||
#X obj 270 577 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 270 596 savepanel;
|
||||
#X obj 270 642 soundfiler;
|
||||
#X msg 270 619 write \$1 array99;
|
||||
#X connect 3 0 2 0;
|
||||
#X connect 4 0 5 0;
|
||||
#X connect 5 0 6 0;
|
||||
#X connect 35 0 26 0;
|
||||
#X connect 39 0 40 0;
|
||||
#X connect 40 0 41 0;
|
||||
#X connect 42 0 43 0;
|
||||
#X connect 43 0 45 0;
|
||||
#X connect 45 0 44 0;
|
2
src/pd-0.44-2/doc/2.control.examples/15.file.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
0.3
|
||||
-0.6 -0.2 0.8 0
|
23
src/pd-0.44-2/doc/2.control.examples/16.more.arrays.pd
Normal file
|
@ -0,0 +1,23 @@
|
|||
#N canvas 19 83 830 601 12;
|
||||
#X graph graph1 0 -1 5 1 569 304 769 154;
|
||||
#X array array99 5 float;
|
||||
#X array array98 7 float;
|
||||
#X pop;
|
||||
#X text 135 18 MORE ON ARRAYS;
|
||||
#X msg 17 229 \; array99 rename george;
|
||||
#X msg 221 229 \; george rename array99;
|
||||
#X msg 317 166 \; array99 3 -0.5 0.5;
|
||||
#X text 17 207 renaming an array:;
|
||||
#X text 16 276 setting the bounds rectangle:;
|
||||
#X msg 18 296 \; array99 bounds 0 -2 10 2;
|
||||
#X msg 245 294 \; array99 bounds 0 -1 5 1;
|
||||
#X msg 19 395 \; array99 xticks 0 1 1;
|
||||
#X msg 212 394 \; array99 yticks 0 0.1 5;
|
||||
#X text 15 342 adding x and y labels: give a point to put a tick \, the interval between ticks \, and the number of ticks overall per large tick.;
|
||||
#X msg 15 472 \; array99 xlabel -1.1 0 1 2 3 4 5;
|
||||
#X text 12 436 adding labels. Give a y value and a bunch of x values or vice versa:;
|
||||
#X msg 17 166 \; array98 0 -1 1 -1 1 -1 1 -1 1 -1;
|
||||
#X msg 305 472 \; array99 ylabel 5.15 -1 0 1;
|
||||
#X text 556 575 last updated for release 0.33;
|
||||
#X text 10 39 Arrays have methods to set their values explicitly \; to set their "bounds" rectangles \, to rename them (but if you have two with the same name this won't necessarily do what you want) and to add markings. To set values by message \, send a list whise first element gives the index to start at. The second example sets two values starting at index three. Indices count up from zero.;
|
||||
#X text 11 522 You can also change x and y range and size in the "properties" dialog. Note that information about size and ranges is saved \, but ticks \, labels \, and the actual data are lost between Pd sessions.;
|
35
src/pd-0.44-2/doc/2.control.examples/17.PART3.midi.pd
Normal file
|
@ -0,0 +1,35 @@
|
|||
#N canvas 47 52 517 445 12;
|
||||
#X floatatom 108 89 0 0 0;
|
||||
#X floatatom 72 89 0 0 0;
|
||||
#X obj 36 62 notein;
|
||||
#X floatatom 36 88 0 0 0;
|
||||
#X floatatom 228 91 0 0 0;
|
||||
#X floatatom 192 91 0 0 0;
|
||||
#X floatatom 156 90 0 0 0;
|
||||
#X obj 156 64 ctlin;
|
||||
#X floatatom 319 90 0 0 0;
|
||||
#X floatatom 283 89 0 0 0;
|
||||
#X obj 283 63 bendin;
|
||||
#X floatatom 329 128 0 0 0;
|
||||
#X floatatom 285 127 0 0 0;
|
||||
#X obj 285 157 bendout;
|
||||
#X text 23 18 Pd offers input and output objects for MIDI:;
|
||||
#X text 358 154 ... ad nauseam.;
|
||||
#X text 254 417 updated for Pd version 0.34;
|
||||
#X obj 39 321 midiout;
|
||||
#X obj 244 368 sysexin;
|
||||
#X msg 39 291 240 \, 45 \, 93 \, 3 \, 65 \, 1 \, 2 \, 3 \, 4 \, 247
|
||||
;
|
||||
#X text 32 252 You can format your own SYSEX messages as shown:;
|
||||
#X text 28 366 and receive SYSEX via:;
|
||||
#X connect 2 0 3 0;
|
||||
#X connect 2 1 1 0;
|
||||
#X connect 2 2 0 0;
|
||||
#X connect 7 0 6 0;
|
||||
#X connect 7 1 5 0;
|
||||
#X connect 7 2 4 0;
|
||||
#X connect 10 0 9 0;
|
||||
#X connect 10 1 8 0;
|
||||
#X connect 11 0 13 1;
|
||||
#X connect 12 0 13 0;
|
||||
#X connect 19 0 17 0;
|
59
src/pd-0.44-2/doc/2.control.examples/18.conditional.pd
Normal file
|
@ -0,0 +1,59 @@
|
|||
#N canvas 538 239 665 516 12;
|
||||
#X text 395 489 updated for Pd version 0.26;
|
||||
#X obj 87 148 select 1 2;
|
||||
#X floatatom 87 120 0 0 0;
|
||||
#X obj 87 214 print select-1;
|
||||
#X obj 119 194 print select-2;
|
||||
#X obj 152 171 print select-3;
|
||||
#X floatatom 313 122 0 0 0;
|
||||
#X obj 313 155 pack;
|
||||
#X obj 313 182 route 1 2;
|
||||
#X obj 353 131 t b f;
|
||||
#X floatatom 353 107 0 0 0;
|
||||
#X obj 371 210 unpack;
|
||||
#X floatatom 313 210 0 0 0;
|
||||
#X floatatom 342 210 0 0 0;
|
||||
#X floatatom 371 233 0 0 0;
|
||||
#X floatatom 409 234 0 0 0;
|
||||
#X text 30 20 Pd provides at least four objects for doing conditioonal
|
||||
computations. The "select" object tests its input against its argumt(s)
|
||||
\, and outputs "bang" when they match. The "route" object works similarly
|
||||
but also copies data. In other wors \, "route" takes a list \, tests
|
||||
its first element \, and conditionally passes on the rest of the list.
|
||||
;
|
||||
#X text 56 262 You also get "spigot" which turns a flow of messages
|
||||
on and off (like the Gate object in Max \, but with the inputs reversed):
|
||||
;
|
||||
#X floatatom 125 316 0 0 0;
|
||||
#X obj 125 341 spigot;
|
||||
#X floatatom 162 316 0 0 0;
|
||||
#X floatatom 125 365 0 0 0;
|
||||
#X text 192 317 <-- nonzero to open;
|
||||
#X text 157 365 if open \, messages coming in at left are sent to output.
|
||||
;
|
||||
#X text 55 396 And finally \, "moses" sends numbers to the left if
|
||||
they're less than the argument \, right otherwise:;
|
||||
#X floatatom 125 427 0 0 0;
|
||||
#X floatatom 125 476 0 0 0;
|
||||
#X obj 125 452 moses 5;
|
||||
#X floatatom 169 476 0 0 0;
|
||||
#X connect 1 0 3 0;
|
||||
#X connect 1 1 4 0;
|
||||
#X connect 1 2 5 0;
|
||||
#X connect 2 0 1 0;
|
||||
#X connect 6 0 7 0;
|
||||
#X connect 7 0 8 0;
|
||||
#X connect 8 0 12 0;
|
||||
#X connect 8 1 13 0;
|
||||
#X connect 8 2 11 0;
|
||||
#X connect 9 0 7 0;
|
||||
#X connect 9 1 7 1;
|
||||
#X connect 10 0 9 0;
|
||||
#X connect 11 0 14 0;
|
||||
#X connect 11 1 15 0;
|
||||
#X connect 18 0 19 0;
|
||||
#X connect 19 0 21 0;
|
||||
#X connect 20 0 19 1;
|
||||
#X connect 25 0 27 0;
|
||||
#X connect 27 0 26 0;
|
||||
#X connect 27 1 28 0;
|
39
src/pd-0.44-2/doc/2.control.examples/19.random.pd
Normal file
|
@ -0,0 +1,39 @@
|
|||
#N canvas 47 52 722 449 12;
|
||||
#X text 460 422 updated for Pd version 0.26;
|
||||
#X text 35 28 Use the "random" object to make pseudo-random integers.
|
||||
To get continuously variable random numbers \, make a random number
|
||||
in a large range and divide:;
|
||||
#X obj 103 121 random 5;
|
||||
#X msg 103 95 bang;
|
||||
#X floatatom 103 147 0 0 0;
|
||||
#X text 137 147 outputs from 0 to 4;
|
||||
#X msg 337 87 bang;
|
||||
#X floatatom 336 165 0 0 0;
|
||||
#X obj 337 113 random 1000;
|
||||
#X obj 336 141 / 1000;
|
||||
#X text 402 166 from 0 to 0.999;
|
||||
#X obj 71 324 random 5;
|
||||
#X msg 162 255 bang;
|
||||
#X floatatom 71 350 0 0 0;
|
||||
#X obj 71 244 loadbang;
|
||||
#X obj 71 274 timer;
|
||||
#X text 204 255 <-- click to seed;
|
||||
#X msg 71 299 seed \$1;
|
||||
#X msg 163 299 bang;
|
||||
#X text 204 300 <-- click to get random numbers;
|
||||
#X text 24 382 If you give two randoms the same seed they give the
|
||||
same sequence. If you never seed them \, you'll get different sequences
|
||||
out of each one.;
|
||||
#X text 34 197 If you don't want the same behavior every time you run
|
||||
the patch \, use the time from load to first click as a seed:;
|
||||
#X connect 2 0 4 0;
|
||||
#X connect 3 0 2 0;
|
||||
#X connect 6 0 8 0;
|
||||
#X connect 8 0 9 0;
|
||||
#X connect 9 0 7 0;
|
||||
#X connect 11 0 13 0;
|
||||
#X connect 12 0 15 1;
|
||||
#X connect 14 0 15 0;
|
||||
#X connect 15 0 17 0;
|
||||
#X connect 17 0 11 0;
|
||||
#X connect 18 0 11 0;
|
44
src/pd-0.44-2/doc/2.control.examples/20.weighted-random.pd
Normal file
|
@ -0,0 +1,44 @@
|
|||
#N canvas 161 46 660 441 12;
|
||||
#X msg 103 95 bang;
|
||||
#X text 389 414 updated for Pd version 0.35;
|
||||
#X text 44 19 You can generate weighted random numbers from uniformly
|
||||
distributed ones. If you just want two possible outcomes with a varying
|
||||
probability for each one \, you can do as shown:;
|
||||
#X obj 103 121 random 100;
|
||||
#X obj 102 174 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 169 174 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
||||
-1;
|
||||
#X floatatom 205 148 3 0 100;
|
||||
#X text 250 148 <-- change probablilty;
|
||||
#X obj 103 149 moses 80;
|
||||
#X text 152 93 <-- click to test;
|
||||
#X text 61 219 This outputs a number at left 80% of the time \, otherwise
|
||||
at right \, unless you override the "80" using the number box. You
|
||||
may extend this to more than two possible outcomes \, for instance
|
||||
like this:;
|
||||
#X msg 106 305 bang;
|
||||
#X obj 106 331 random 100;
|
||||
#X obj 105 384 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 195 387 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
||||
-1;
|
||||
#X text 155 303 <-- click to test;
|
||||
#X obj 106 359 moses 10;
|
||||
#X obj 196 360 moses 30;
|
||||
#X obj 263 387 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
|
||||
-1;
|
||||
#X text 103 409 10%;
|
||||
#X text 193 410 20%;
|
||||
#X text 265 409 70%;
|
||||
#X connect 0 0 3 0;
|
||||
#X connect 3 0 8 0;
|
||||
#X connect 6 0 8 1;
|
||||
#X connect 8 0 4 0;
|
||||
#X connect 8 1 5 0;
|
||||
#X connect 11 0 12 0;
|
||||
#X connect 12 0 16 0;
|
||||
#X connect 16 0 13 0;
|
||||
#X connect 16 1 17 0;
|
||||
#X connect 17 0 14 0;
|
||||
#X connect 17 1 18 0;
|
105
src/pd-0.44-2/doc/2.control.examples/21.markov.chain.pd
Normal file
|
@ -0,0 +1,105 @@
|
|||
#N canvas 296 90 662 442 12;
|
||||
#X obj 84 251 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 81 336 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 162 335 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 199 337 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X msg 81 358 1;
|
||||
#X msg 162 360 2;
|
||||
#X msg 199 361 3;
|
||||
#X obj 81 386 s state;
|
||||
#X obj 66 173 bng 20 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 105 164 r state;
|
||||
#X obj 83 225 sel 1 2 3;
|
||||
#X obj 255 253 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 252 338 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 334 340 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 373 343 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X msg 252 361 1;
|
||||
#X msg 329 366 2;
|
||||
#X msg 373 367 3;
|
||||
#X obj 252 394 s state;
|
||||
#X obj 419 254 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 419 339 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 499 338 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X obj 538 341 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
|
||||
-1;
|
||||
#X msg 419 362 1;
|
||||
#X msg 499 363 2;
|
||||
#X msg 538 364 3;
|
||||
#X obj 418 395 s state;
|
||||
#X msg 236 186 \; state 1;
|
||||
#X obj 83 199 f 1;
|
||||
#X obj 84 279 random 100;
|
||||
#X obj 83 308 moses 30;
|
||||
#X obj 162 309 moses 60;
|
||||
#X obj 255 280 random 100;
|
||||
#X obj 255 310 moses 10;
|
||||
#X obj 334 311 moses 60;
|
||||
#X obj 419 281 random 100;
|
||||
#X obj 419 310 moses 70;
|
||||
#X obj 499 310 moses 80;
|
||||
#X floatatom 134 188 3 0 0;
|
||||
#X text 236 166 reset;
|
||||
#X text 49 152 STEP;
|
||||
#X text 34 20 Here is how to construct a simple \, three-valued Markov
|
||||
chain using "random." Each time you click on "step" the previous output
|
||||
("state") determines which of three random networks to invoke \, each
|
||||
having a different probability distribution for the next value of "state."
|
||||
For instance if the state was 3 \, the next state will be 1 70% of
|
||||
the time \, state 2 10% \, and state 3 20%.;
|
||||
#X text 408 422 updated for Pd version 0.35;
|
||||
#X connect 0 0 29 0;
|
||||
#X connect 1 0 4 0;
|
||||
#X connect 2 0 5 0;
|
||||
#X connect 3 0 6 0;
|
||||
#X connect 4 0 7 0;
|
||||
#X connect 5 0 7 0;
|
||||
#X connect 6 0 7 0;
|
||||
#X connect 8 0 28 0;
|
||||
#X connect 9 0 28 1;
|
||||
#X connect 9 0 38 0;
|
||||
#X connect 10 0 0 0;
|
||||
#X connect 10 1 11 0;
|
||||
#X connect 10 2 19 0;
|
||||
#X connect 11 0 32 0;
|
||||
#X connect 12 0 15 0;
|
||||
#X connect 13 0 16 0;
|
||||
#X connect 14 0 17 0;
|
||||
#X connect 15 0 18 0;
|
||||
#X connect 16 0 18 0;
|
||||
#X connect 17 0 18 0;
|
||||
#X connect 19 0 35 0;
|
||||
#X connect 20 0 23 0;
|
||||
#X connect 21 0 24 0;
|
||||
#X connect 22 0 25 0;
|
||||
#X connect 23 0 26 0;
|
||||
#X connect 24 0 26 0;
|
||||
#X connect 25 0 26 0;
|
||||
#X connect 28 0 10 0;
|
||||
#X connect 29 0 30 0;
|
||||
#X connect 30 0 1 0;
|
||||
#X connect 30 1 31 0;
|
||||
#X connect 31 0 2 0;
|
||||
#X connect 31 1 3 0;
|
||||
#X connect 32 0 33 0;
|
||||
#X connect 33 0 12 0;
|
||||
#X connect 33 1 34 0;
|
||||
#X connect 34 0 13 0;
|
||||
#X connect 34 1 14 0;
|
||||
#X connect 35 0 36 0;
|
||||
#X connect 36 0 20 0;
|
||||
#X connect 36 1 37 0;
|
||||
#X connect 37 0 21 0;
|
||||
#X connect 37 1 22 0;
|
64
src/pd-0.44-2/doc/2.control.examples/22.random-walk.pd
Normal file
|
@ -0,0 +1,64 @@
|
|||
#N canvas 0 0 604 511 12;
|
||||
#X floatatom 113 218 5 0 0 0 - - -;
|
||||
#X obj 123 113 f;
|
||||
#X obj 104 198 random 4;
|
||||
#X obj 26 197 random 2;
|
||||
#X floatatom 35 219 5 0 0 0 - - -;
|
||||
#X obj 123 138 t b b f;
|
||||
#X obj 26 253 sel 0 1;
|
||||
#X obj 159 328 +;
|
||||
#X obj 123 87 metro 100;
|
||||
#X obj 123 65 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
|
||||
;
|
||||
#X obj 104 252 + 1;
|
||||
#X floatatom 242 153 5 0 0 0 - - -;
|
||||
#X obj 82 309 *;
|
||||
#X msg 26 282 -1;
|
||||
#X obj 242 83 moses 0;
|
||||
#X obj 316 83 moses 100;
|
||||
#X obj 242 107 * -1;
|
||||
#X obj 407 86 * -1;
|
||||
#X obj 407 111 + 200;
|
||||
#X msg 60 282 1;
|
||||
#X text 39 9 Random walk generator;
|
||||
#X text 143 64 on/off;
|
||||
#X text 298 152 output;
|
||||
#X text 22 375 A random walk is a special case of a Markov chain \,
|
||||
in which the states are integers and the transitions add or subtract
|
||||
a small amount from the previous state to get a new one. Here the "f"
|
||||
holds the state. When it gets a bang \, the previous state is added
|
||||
to a random number (from 1 to 4) multiplied by a random sign (-1 or
|
||||
1). The new value is then coerced into the range from 0 to 100;
|
||||
#X text 35 235 sign;
|
||||
#X text 113 234 magnitude;
|
||||
#X text 203 313 add prev value;
|
||||
#X text 200 330 to random increment;
|
||||
#X text 256 30 coercion to range 0-100 \; if out of range \, reflect
|
||||
;
|
||||
#X text 255 60 us back in.;
|
||||
#X text 323 492 updated for Pd version 0.37-1;
|
||||
#X connect 1 0 5 0;
|
||||
#X connect 2 0 0 0;
|
||||
#X connect 2 0 10 0;
|
||||
#X connect 3 0 4 0;
|
||||
#X connect 3 0 6 0;
|
||||
#X connect 5 0 3 0;
|
||||
#X connect 5 1 2 0;
|
||||
#X connect 5 2 7 1;
|
||||
#X connect 6 0 13 0;
|
||||
#X connect 6 1 19 0;
|
||||
#X connect 7 0 14 0;
|
||||
#X connect 8 0 1 0;
|
||||
#X connect 9 0 8 0;
|
||||
#X connect 10 0 12 1;
|
||||
#X connect 11 0 1 1;
|
||||
#X connect 12 0 7 0;
|
||||
#X connect 13 0 12 0;
|
||||
#X connect 14 0 16 0;
|
||||
#X connect 14 1 15 0;
|
||||
#X connect 15 0 11 0;
|
||||
#X connect 15 1 17 0;
|
||||
#X connect 16 0 11 0;
|
||||
#X connect 17 0 18 0;
|
||||
#X connect 18 0 11 0;
|
||||
#X connect 19 0 12 0;
|
28
src/pd-0.44-2/doc/2.control.examples/23.sequencing.pd
Normal file
|
@ -0,0 +1,28 @@
|
|||
#N canvas 47 52 758 482 12;
|
||||
#X text 465 442 updated for Pd version 0.26;
|
||||
#X text 35 28 You can use "qlist" or "textfile" objects for sequencing.
|
||||
Qlist is simpler to use than the (more versatile) textfile.;
|
||||
#X obj 345 144 r receive1;
|
||||
#X obj 441 146 r receive2;
|
||||
#X msg 205 88 clear \, add receive1 1 \, add 1000 receive1 0 \, add
|
||||
receive2 2 \, add 1000 receive2 0 \, add receive1 3 \, bang;
|
||||
#X obj 205 129 qlist;
|
||||
#X floatatom 345 170 0 0 0 0 - - -;
|
||||
#X floatatom 441 171 0 0 0 0 - - -;
|
||||
#X text 48 202 The "add" messages add lines to the qlist \, so that
|
||||
it contains:;
|
||||
#X text 155 238 receive1 1;
|
||||
#X text 154 259 1000 receive1 0;
|
||||
#X text 155 279 receive2 2;
|
||||
#X text 153 299 1000 receive2 0;
|
||||
#X text 155 317 receive1 3;
|
||||
#X text 16 391 If you have more than 5 lines or so wou will probably
|
||||
want to store them as a separate file and have qlist read it. You can
|
||||
also write files \, set tempo \, and single step... see the help patch
|
||||
for details.;
|
||||
#X text 22 341 and the "bang" instructs qlist to play the sequence
|
||||
by sending messages to "receive" objects. Messages starting with numbers
|
||||
request that amount of delay.;
|
||||
#X connect 2 0 6 0;
|
||||
#X connect 3 0 7 0;
|
||||
#X connect 4 0 5 0;
|
49
src/pd-0.44-2/doc/2.control.examples/24.loops.pd
Normal file
|
@ -0,0 +1,49 @@
|
|||
#N canvas 258 107 701 742 12;
|
||||
#X obj 195 318 until;
|
||||
#X obj 221 284 max 0;
|
||||
#X floatatom 221 263 5 0 0 1 times - -;
|
||||
#X text 229 234 times;
|
||||
#X obj 195 342 print repetition;
|
||||
#X msg 195 234 5;
|
||||
#X obj 175 571 + 1;
|
||||
#X obj 118 572 float;
|
||||
#X obj 118 546 until;
|
||||
#X obj 118 606 moses 10;
|
||||
#X obj 233 558 bang;
|
||||
#X obj 118 639 print number;
|
||||
#X msg 118 524 bang;
|
||||
#X msg 196 529 0;
|
||||
#X text 241 529 reset;
|
||||
#X text 277 560 stop "until" when counter reaches 10;
|
||||
#X text 479 711 updated for Pd 0.41;
|
||||
#X text 31 16 Looping with the "until" object;
|
||||
#X text 52 47 It is sometimes desirable to make a loop without an embedded
|
||||
delay (as in 06.more.counters.pd") but rather to make the entire loop
|
||||
take place in the context of a single incoming message. The "until"
|
||||
object is provided to make this possible.;
|
||||
#X text 273 285 make nonnegative;
|
||||
#X text 56 445 Conditional loops get started with a "bang" to until's
|
||||
left inlet. Make sure you stop the loop with a "bang" to until's right
|
||||
inlet \, otherwise it will try to run forever and Pd will freeze!;
|
||||
#X text 48 131 "until" has two modes: It can either run automatically
|
||||
for a certain number of times (a "counting" loop) or it can run forever
|
||||
until stopped through its right inlet (a "conditional" loop).;
|
||||
#X text 47 196 You can perform a counting loop by sending a positive
|
||||
number to until:;
|
||||
#X text 55 398 (As of version 0.41 \, "until" silently interprets negative
|
||||
numbers to be equivalent to zero.);
|
||||
#X text 62 667 In pseudo-code: "x=0 \; do print x++ until x>=10";
|
||||
#X text 57 368 In pseudo-code: "for i = 1 to 5 do print end";
|
||||
#X connect 0 0 4 0;
|
||||
#X connect 1 0 0 0;
|
||||
#X connect 2 0 1 0;
|
||||
#X connect 5 0 0 0;
|
||||
#X connect 6 0 7 1;
|
||||
#X connect 7 0 6 0;
|
||||
#X connect 7 0 9 0;
|
||||
#X connect 8 0 7 0;
|
||||
#X connect 9 0 11 0;
|
||||
#X connect 9 1 10 0;
|
||||
#X connect 10 0 8 1;
|
||||
#X connect 12 0 8 0;
|
||||
#X connect 13 0 7 1;
|
35
src/pd-0.44-2/doc/2.control.examples/dollarsign.pd
Normal file
|
@ -0,0 +1,35 @@
|
|||
#N canvas 62 73 586 361 12;
|
||||
#X obj 207 44 inlet;
|
||||
#X obj 207 71 s \$1-a;
|
||||
#X obj 302 72 s \$1-b;
|
||||
#X text 331 337 updated for Pd version 0.34;
|
||||
#X text 63 7 This is an abstraction used in example 12 \, "locality".
|
||||
;
|
||||
#X obj 302 47 inlet;
|
||||
#X obj 62 249 s \$1-c;
|
||||
#X obj 62 279 r \$1-c;
|
||||
#X floatatom 62 218 5 0 0;
|
||||
#X floatatom 62 307 5 0 0;
|
||||
#X obj 164 250 s here's-what-happens-if-you-dont;
|
||||
#X obj 163 280 r here's-what-happens-if-you-dont;
|
||||
#X floatatom 163 308 5 0 0;
|
||||
#X floatatom 164 220 5 0 0;
|
||||
#X floatatom 487 224 5 0 0;
|
||||
#X floatatom 488 307 5 0 0;
|
||||
#X obj 487 251 s \$0-d;
|
||||
#X obj 488 281 r \$0-d;
|
||||
#X text 47 94 The sends above get named "one-a" \, etc. The window
|
||||
title bar tells you the creation arguments for this particular instance.
|
||||
You can use this to make internal local connections as shown below.
|
||||
The "$1-c" boxes act locally whereas the middle boxes get crosstalk
|
||||
between the windows. The boxes at right also get unique names but in
|
||||
this case you don't have to secify "$0" \, it's just something unique.
|
||||
;
|
||||
#X connect 0 0 1 0;
|
||||
#X connect 5 0 2 0;
|
||||
#X connect 7 0 9 0;
|
||||
#X connect 8 0 6 0;
|
||||
#X connect 11 0 12 0;
|
||||
#X connect 13 0 10 0;
|
||||
#X connect 14 0 16 0;
|
||||
#X connect 17 0 15 0;
|
54
src/pd-0.44-2/doc/2.control.examples/dollarsign2.pd
Normal file
|
@ -0,0 +1,54 @@
|
|||
#N canvas 22 54 588 671 12;
|
||||
#X text 324 642 updated for Pd version 0.34;
|
||||
#X text 34 6 This is an abstraction used in example 13 \, "dollarsigns".
|
||||
;
|
||||
#X obj 88 107 send \$1;
|
||||
#X obj 199 106 + \$2;
|
||||
#X floatatom 303 88 0 0 0;
|
||||
#X obj 303 139 print;
|
||||
#X msg 303 113 blah \$1;
|
||||
#X text 36 163 This may sound inconsistant \, but it's not--object
|
||||
and message boxes are both actually messages \, but in the case of
|
||||
the Object box the message is passed at creation time \, and for the
|
||||
Message box \, at message time.;
|
||||
#X msg 188 272 bang;
|
||||
#X obj 188 300 symbol \$1;
|
||||
#X msg 98 272 bang;
|
||||
#X obj 98 300 float \$2;
|
||||
#X floatatom 98 327 5 0 0;
|
||||
#X symbolatom 188 329 10 0 0;
|
||||
#X text 36 233 So how do you put creation arguments in messages? Use
|
||||
"float" and "symbol" as shown:;
|
||||
#X msg 97 383 bang;
|
||||
#X obj 97 407 float \$2;
|
||||
#X msg 97 434 five \$1;
|
||||
#X text 41 357 Then if you wish \, connect to a message box as in:
|
||||
;
|
||||
#X obj 97 459 print;
|
||||
#X msg 143 512 bang;
|
||||
#X obj 143 564 symbol \$1;
|
||||
#X obj 237 560 f \$2;
|
||||
#X obj 143 540 t b b;
|
||||
#X obj 142 587 pack symbol float;
|
||||
#X msg 142 613 six \$1 \$2;
|
||||
#X obj 142 640 print;
|
||||
#X text 31 485 For messages combining more than one creation argument
|
||||
try:;
|
||||
#X text 37 50 In Object boxes \, dollar signs refer to the abstraction's
|
||||
creation arguments. In Messages \, they change dynamically:;
|
||||
#X connect 4 0 6 0;
|
||||
#X connect 6 0 5 0;
|
||||
#X connect 8 0 9 0;
|
||||
#X connect 9 0 13 0;
|
||||
#X connect 10 0 11 0;
|
||||
#X connect 11 0 12 0;
|
||||
#X connect 15 0 16 0;
|
||||
#X connect 16 0 17 0;
|
||||
#X connect 17 0 19 0;
|
||||
#X connect 20 0 23 0;
|
||||
#X connect 21 0 24 0;
|
||||
#X connect 22 0 24 1;
|
||||
#X connect 23 0 21 0;
|
||||
#X connect 23 1 22 0;
|
||||
#X connect 24 0 25 0;
|
||||
#X connect 25 0 26 0;
|
20
src/pd-0.44-2/doc/2.control.examples/sendnumber.pd
Normal file
|
@ -0,0 +1,20 @@
|
|||
#N canvas 171 73 718 283 12;
|
||||
#X obj 34 60 inlet;
|
||||
#X obj 34 88 float \$1;
|
||||
#X obj 34 116 send \$2;
|
||||
#X text 26 225 For obvious reasons you might not want to call a patch
|
||||
as an abstraction from itself.;
|
||||
#X text 151 183 In this case \$1 is a number you can specify and \$2
|
||||
is a "send" destination.;
|
||||
#X text 461 260 updated for Pd version 0.26;
|
||||
#X text 154 103 When you call an abstraction by typing \, say \, "sendnumber
|
||||
1 x" in an object box. the subpatch can access the values of the creation
|
||||
arguments (1 and x) as "$1" and "$2" innside object boxes. Typing \$1
|
||||
inside a message box has a different meaning (see the message box help
|
||||
window.);
|
||||
#X text 155 31 This window is used by 11.subpatch.pd to demonstrate
|
||||
the abstraction mechanism in Pd. If you've opened this window directly
|
||||
\, you might also want to open the other one to see how it's used.
|
||||
;
|
||||
#X connect 0 0 1 0;
|
||||
#X connect 1 0 2 0;
|
10
src/pd-0.44-2/doc/3.audio.examples/A00.intro.pd
Normal file
|
@ -0,0 +1,10 @@
|
|||
#N canvas 440 252 579 286 12;
|
||||
#X text 87 6 INTRODUCTION TO THE PD AUDIO EXAMPLE PATCHES;
|
||||
#X text 328 257 updated for Pd version 0.37;
|
||||
#X text 34 45 This is the second of three tutorial series on Pd. This
|
||||
one shows the time-domain audio processing features. (The first one
|
||||
showed how to use Pd to do "control" computations \, and the third
|
||||
is about frequency-domain techniques.);
|
||||
#X text 33 125 These patches are accompanied by an ONLINE BOOK:;
|
||||
#X text 100 158 http://www.crca.ucsd.edu/~msp/techniques.htm;
|
||||
#X text 37 189 which develops the underlying theory.;
|
9
src/pd-0.44-2/doc/3.audio.examples/A00.intro.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
This is the second of three tutorial series on Pd. This one shows the
|
||||
time-domain audio processing features. (The first one showed how to use Pd to
|
||||
do "control" computations, and the third is about frequency-domain techniques.)
|
||||
|
||||
These patches are accompanied by an ONLINE BOOK:
|
||||
|
||||
http://www.crca.ucsd.edu/~msp/techniques.htm
|
||||
|
||||
which develops the underlying theory.
|
32
src/pd-0.44-2/doc/3.audio.examples/A01.sinewave.pd
Normal file
|
@ -0,0 +1,32 @@
|
|||
#N canvas 6 2 588 513 12;
|
||||
#X obj 108 109 osc~ 440;
|
||||
#X obj 108 168 dac~;
|
||||
#X text 187 111 <-- 440 Hz. sine wave at full blast;
|
||||
#X obj 108 138 *~ 0.05;
|
||||
#X text 202 3 MAKING A SINE WAVE;
|
||||
#X text 32 195 Audio computation can be turned on and off by sending
|
||||
messages to the global "pd" object as follows:;
|
||||
#X msg 98 239 \; pd dsp 1;
|
||||
#X msg 202 239 \; pd dsp 0;
|
||||
#X text 113 276 ON;
|
||||
#X text 222 276 OFF;
|
||||
#X text 29 297 You should see the Pd window change to reflect whether
|
||||
audio is on or off. You can also turn audio on and off using the "audio"
|
||||
menu \, but the buttons are provided as a shortcut.;
|
||||
#X text 30 368 When DSP is on \, you should hear a tone whose pitch
|
||||
is A 440 and whose amplitude is 0.05. If instead you are greeted with
|
||||
silence \, you might want to read the HTML documentation on setting
|
||||
up audio.;
|
||||
#X text 28 434 In general when you start a work session with Pd \,
|
||||
you will want to choose "test audio and MIDI" from the help window
|
||||
\, which opens a more comprehensive test patch than this one.;
|
||||
#X text 296 247 <-- click these;
|
||||
#X text 187 139 <-- reduce amplitude to 0.05;
|
||||
#X text 160 168 <----- send to the audio output device;
|
||||
#X text 32 23 Audio computation in Pd is done using "tilde objects"
|
||||
such as the three below. They use continuous audio streams to intercommunicate
|
||||
\, as well as communicating with other ("control") Pd objects using
|
||||
messages.;
|
||||
#X text 342 490 updated for Pd version 0.36;
|
||||
#X connect 0 0 3 0;
|
||||
#X connect 3 0 1 0;
|
37
src/pd-0.44-2/doc/3.audio.examples/A02.amplitude.pd
Normal file
|
@ -0,0 +1,37 @@
|
|||
#N canvas 73 190 702 512 12;
|
||||
#X obj 64 65 osc~ 440;
|
||||
#X obj 64 283 dac~;
|
||||
#X text 145 66 <-- 440 Hz. sine wave at full blast;
|
||||
#X msg 431 7 \; pd dsp 1;
|
||||
#X msg 514 7 \; pd dsp 0;
|
||||
#X text 456 45 ON;
|
||||
#X text 534 43 OFF;
|
||||
#X text 164 18 CONTROLLING AMPLITUDE;
|
||||
#X text 35 327 Amplitudes of audio signals can have any reasonable
|
||||
range \, but when you output a signal via the dac~ object \, the samples
|
||||
should range between -1 and +1. Values out of that range will be "clipped."
|
||||
;
|
||||
#X obj 64 202 *~ 0;
|
||||
#X floatatom 107 165 0 0 0 0 - - -;
|
||||
#X obj 95 132 dbtorms;
|
||||
#X floatatom 95 100 0 0 80 0 - - -;
|
||||
#X text 141 100 <-- set amplitude here in dB;
|
||||
#X text 211 133 <-- this converts dB to linear units;
|
||||
#X text 210 164 <-- this shows the linear gain;
|
||||
#X text 116 204 <-- multiply the sine wave by the gain \, reducing
|
||||
its amplitude. You can also use the "*~" object to multiply two signals.
|
||||
The "0" argument here instructs it that we'll just send it messages
|
||||
to set the multiplier.;
|
||||
#X text 35 396 Here we calculate a gain for the multiplier (*~) using
|
||||
a "dbtorms" object (acronym for "dB to RMS"). 100 dB is normalized
|
||||
to one \, and zero dB artificially outputs a true 0;
|
||||
#X text 34 452 Pd assumes you have a two channel audio system unless
|
||||
you tell it otherwise.;
|
||||
#X text 440 486 updated for Pd version 0.33;
|
||||
#X text 114 282 <-- and out. We're sending to both channels now.;
|
||||
#X connect 0 0 9 0;
|
||||
#X connect 9 0 1 0;
|
||||
#X connect 9 0 1 1;
|
||||
#X connect 11 0 9 1;
|
||||
#X connect 11 0 10 0;
|
||||
#X connect 12 0 11 0;
|
55
src/pd-0.44-2/doc/3.audio.examples/A03.line.pd
Normal file
|
@ -0,0 +1,55 @@
|
|||
#N canvas 369 106 647 598 12;
|
||||
#X obj 56 79 osc~ 440;
|
||||
#X obj 56 309 dac~;
|
||||
#X msg 446 79 \; pd dsp 1;
|
||||
#X msg 538 79 \; pd dsp 0;
|
||||
#X text 467 112 ON;
|
||||
#X text 555 112 OFF;
|
||||
#X obj 56 269 *~;
|
||||
#X obj 72 243 line~;
|
||||
#X text 129 243 <--- ramp generator;
|
||||
#X text 132 78 <-- sine wave;
|
||||
#X msg 72 103 0.1 2000;
|
||||
#X msg 72 177 0 2000;
|
||||
#X msg 72 125 0.1 50;
|
||||
#X msg 72 199 0 50;
|
||||
#X msg 72 147 0.1;
|
||||
#X msg 72 221 0;
|
||||
#X text 274 124 ON;
|
||||
#X text 154 105 <-- slow;
|
||||
#X text 144 126 <-- fast;
|
||||
#X text 111 146 <-- instantly;
|
||||
#X text 271 197 OFF;
|
||||
#X text 136 178 <-- slow;
|
||||
#X text 129 199 <-- fast;
|
||||
#X text 109 219 <-- instantly;
|
||||
#X text 112 161 ----------------------;
|
||||
#X text 97 308 <-- out;
|
||||
#X text 103 7 CONTROLLING AMPLITUDE USING LINE~;
|
||||
#X text 38 342 Line~'s left inlet is a target value \; it reaches that
|
||||
target in the time specified (in milliseconds) to its right inlet.
|
||||
;
|
||||
#X text 34 495 The line~ object (and its control brother \, line) treat
|
||||
their right inlet specially. The inlets don't retain values the way
|
||||
other inlets do but revert to zero whenever a target is received.;
|
||||
#X text 14 27 In this patch \, the multiplier is configured to multiply
|
||||
two signals. The amplitude is now a signal computed by the line~ object.
|
||||
;
|
||||
#X text 37 395 (In this example \, message boxes with two numbers each
|
||||
are connected to line~'s left inlet. Except in some special cases \,
|
||||
Pd objects with more than one inlet will automatically distribute lists
|
||||
of numbers across their inlets. In this case \, "0 50" becomes \, "50
|
||||
at right and 0 at left.");
|
||||
#X text 386 557 updated for Pd version 0.36;
|
||||
#X text 93 268 <-- multiply the sine wave by the ramp. There's no longer
|
||||
a "0" argument-- this tells Pd to expect a signal here.;
|
||||
#X connect 0 0 6 0;
|
||||
#X connect 6 0 1 0;
|
||||
#X connect 6 0 1 1;
|
||||
#X connect 7 0 6 1;
|
||||
#X connect 10 0 7 0;
|
||||
#X connect 11 0 7 0;
|
||||
#X connect 12 0 7 0;
|
||||
#X connect 13 0 7 0;
|
||||
#X connect 14 0 7 0;
|
||||
#X connect 15 0 7 0;
|
59
src/pd-0.44-2/doc/3.audio.examples/A04.line2.pd
Normal file
|
@ -0,0 +1,59 @@
|
|||
#N canvas 30 68 949 754 12;
|
||||
#X obj 67 77 osc~ 440;
|
||||
#X obj 67 329 dac~;
|
||||
#X obj 67 242 *~;
|
||||
#X obj 86 180 line~;
|
||||
#X text 116 330 <-- out;
|
||||
#X text 124 9 LINES GRAPHED;
|
||||
#X text 24 33 Here again is a line~ controlling the amplitude of an
|
||||
osc~ \, but with the outputs graphed:;
|
||||
#X obj 149 89 r graphit;
|
||||
#X obj 151 179 r graphit;
|
||||
#X obj 151 246 r graphit;
|
||||
#X obj 86 149 r to-line;
|
||||
#X graph graph1 0 -1.02 44100 1.02 631 480 831 350;
|
||||
#X array product 44100 float 0;
|
||||
#X pop;
|
||||
#X graph graph1 0 -1.02 44100 1.02 631 150 831 20;
|
||||
#X array osc-output 44100 float 0;
|
||||
#X pop;
|
||||
#X graph graph1 0 -1.02 44100 1.02 631 315 831 185;
|
||||
#X array line-output 44100 float 0;
|
||||
#X pop;
|
||||
#X obj 149 119 tabwrite~ osc-output;
|
||||
#X obj 67 299 *~ 0.1;
|
||||
#X msg 38 401 \; pd dsp 1 \; to-line 0 \, 1 500 \; graphit bang;
|
||||
#X msg 210 401 \; pd dsp 1 \; to-line 1 \, 0 500 \; graphit bang;
|
||||
#X obj 151 209 tabwrite~ line-output;
|
||||
#X obj 151 276 tabwrite~ product;
|
||||
#X text 70 379 ramp up;
|
||||
#X text 235 378 ramp down;
|
||||
#X text 406 376 to 1/2;
|
||||
#X msg 375 400 \; pd dsp 1 \; to-line 0.5 1000 \; graphit bang;
|
||||
#X text 634 491 ------ 1 second ------;
|
||||
#X text 38 485 Click the message boxes above to try it. Note that in
|
||||
the first two boxes \, the line~ objects get two messages. The first
|
||||
one \, with no time value \, causes the line~ to jump immediately to
|
||||
the value. The third box takes line~'s previous value as a point of
|
||||
departure. What you see will depend on which box you last clicked and
|
||||
how long you waited between the two.;
|
||||
#X text 662 727 updated for Pd version 0.33;
|
||||
#X text 41 600 On most machines \, you will hear an interruption in
|
||||
the sound one second after you click on the first or third box. This
|
||||
is because the graphical updates are likely to eat more CPU time than
|
||||
your audio buffer has pre-buffered for. You can avoid this if you keep
|
||||
your graphs in sub-windows and open them only when you need them. In
|
||||
some future version of Pd this behavior will be improved. Until then
|
||||
\, you'll have to avoid having arrays getting re-drawn during music
|
||||
performances.;
|
||||
#X connect 0 0 2 0;
|
||||
#X connect 0 0 14 0;
|
||||
#X connect 2 0 15 0;
|
||||
#X connect 2 0 19 0;
|
||||
#X connect 3 0 2 1;
|
||||
#X connect 3 0 18 0;
|
||||
#X connect 7 0 14 0;
|
||||
#X connect 8 0 18 0;
|
||||
#X connect 9 0 19 0;
|
||||
#X connect 10 0 3 0;
|
||||
#X connect 15 0 1 0;
|
30
src/pd-0.44-2/doc/3.audio.examples/A05.output.subpatch.pd
Normal file
|
@ -0,0 +1,30 @@
|
|||
#N canvas 300 159 635 486 12;
|
||||
#X text 261 20 CONTROLLING OUTPUT AMPLITUDE;
|
||||
#X obj 32 27 osc~ 440;
|
||||
#X obj 54 55 osc~ 550;
|
||||
#X obj 54 116 osc~ 660;
|
||||
#X obj 32 88 +~;
|
||||
#X obj 32 142 +~;
|
||||
#X text 108 177 <-- this is a subwindow--right click on it;
|
||||
#X text 149 197 and select "open" to see inside.;
|
||||
#X text 30 401 The output control automatically starts DSP whenever
|
||||
you touch the level control. Hitting "mute" toggles between the current
|
||||
level and zero.;
|
||||
#X obj 32 173 output~;
|
||||
#X text 383 463 updated for Pd version 0.36;
|
||||
#X text 143 115 <-- Here we make an A major triad as a test signal.
|
||||
;
|
||||
#X text 31 250 In this and subsequent patches \, we'll use a subwindow
|
||||
\, "output" \, to control overall amplitude. The amplitudes are in
|
||||
decibels \, with 100 being full blast. In this example \, you can't
|
||||
actually push the output amplitude past 90 or so without clipping.
|
||||
You'll know you're clipping if \, instead of an A major chord \, you
|
||||
hear a single \, distorted tone two octaves down. The clipping happens
|
||||
at Pd's last stage of audio output. Audio signals internal to Pd have
|
||||
essentially no level limit.;
|
||||
#X connect 1 0 4 0;
|
||||
#X connect 2 0 4 1;
|
||||
#X connect 3 0 5 1;
|
||||
#X connect 4 0 5 0;
|
||||
#X connect 5 0 9 0;
|
||||
#X connect 5 0 9 1;
|
61
src/pd-0.44-2/doc/3.audio.examples/A06.frequency.pd
Normal file
|
@ -0,0 +1,61 @@
|
|||
#N canvas 8 17 693 642 12;
|
||||
#N canvas 0 0 450 300 graph1 0;
|
||||
#X array osc-output 4410 float 0;
|
||||
#X coords 0 1.02 4410 -1.02 200 130 1;
|
||||
#X restore 473 167 graph;
|
||||
#X obj 98 261 tabwrite~ osc-output;
|
||||
#X msg 98 232 bang;
|
||||
#X floatatom 280 66 0 0 0 0 - - -;
|
||||
#X text 147 231 <-- click to graph;
|
||||
#X obj 15 206 r frequency;
|
||||
#X msg 280 37 set \$1;
|
||||
#X floatatom 6 66 0 0 0 0 - - -;
|
||||
#X obj 6 8 r frequency;
|
||||
#X msg 6 37 set \$1;
|
||||
#X obj 19 90 s frequency;
|
||||
#X obj 280 8 r pitch;
|
||||
#X obj 289 90 s pitch;
|
||||
#X obj 280 116 mtof;
|
||||
#X obj 280 145 s frequency;
|
||||
#X obj 6 145 s pitch;
|
||||
#X obj 6 116 ftom;
|
||||
#X text 105 66 <-- set frequency;
|
||||
#X text 372 65 <-- set MIDI pitch;
|
||||
#X text 15 429 Frequency and pitch are converted using the "ftom" and
|
||||
"mtof" objects. Frequency refers to the number of cycles per second.
|
||||
Pitch is "60" for Middle C \, 61 for C sharp \, 72 for the next C up
|
||||
\, and so on.;
|
||||
#X text 476 308 ---- 0.1 seconds ----;
|
||||
#X text 447 6 FREQUENCY AND PITCH;
|
||||
#X text 16 363 The osc~ object \, if you give it an argument \, expects
|
||||
floating-point messages to set its frequency. Without arguments \,
|
||||
its frequency is controlled by connecting an audio signal to its input.
|
||||
;
|
||||
#X text 14 496 Mtof and ftom work fine for microtones (non-integral
|
||||
"MIDI pitch" ) and don't have MIDI's range restriction-- for example
|
||||
\, MIDI -36 is about 1 Hz.;
|
||||
#X text 15 553 Note also the "set" messages going to the number boxes
|
||||
so that they can each update the other without bringing on an infinite
|
||||
loop. (get help on number boxes for details.);
|
||||
#X text 87 291 <-- output level;
|
||||
#X text 51 116 <-- convert frequency;
|
||||
#X text 106 134 to "MIDI" pitch;
|
||||
#X text 327 117 <-- convert "MIDI" pitch to frequency;
|
||||
#X obj 15 273 output~;
|
||||
#X text 437 619 updated for Pd version 0.36;
|
||||
#X obj 15 232 osc~;
|
||||
#X connect 2 0 1 0;
|
||||
#X connect 3 0 12 0;
|
||||
#X connect 3 0 13 0;
|
||||
#X connect 5 0 31 0;
|
||||
#X connect 6 0 3 0;
|
||||
#X connect 7 0 10 0;
|
||||
#X connect 7 0 16 0;
|
||||
#X connect 8 0 9 0;
|
||||
#X connect 9 0 7 0;
|
||||
#X connect 11 0 6 0;
|
||||
#X connect 13 0 14 0;
|
||||
#X connect 16 0 15 0;
|
||||
#X connect 31 0 1 0;
|
||||
#X connect 31 0 29 0;
|
||||
#X connect 31 0 29 1;
|
76
src/pd-0.44-2/doc/3.audio.examples/A07.fusion.pd
Normal file
|
@ -0,0 +1,76 @@
|
|||
#N canvas 18 14 650 653 12;
|
||||
#X floatatom 32 60 0 0 0 0 - - -;
|
||||
#X obj 32 86 mtof;
|
||||
#X obj 32 323 output~;
|
||||
#X msg 32 34 60;
|
||||
#X text 67 63 <-- choose a pitch;
|
||||
#X text 68 34 <-- reset to middle C;
|
||||
#X obj 32 154 osc~;
|
||||
#X obj 73 130 * 2;
|
||||
#X obj 73 154 osc~;
|
||||
#X obj 137 154 osc~;
|
||||
#X obj 137 130 * 3;
|
||||
#X obj 201 155 osc~;
|
||||
#X obj 201 131 * 4;
|
||||
#X obj 137 179 *~ 0.2;
|
||||
#X obj 33 289 +~;
|
||||
#X obj 74 259 *~;
|
||||
#X obj 109 260 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
|
||||
1;
|
||||
#X obj 74 210 +~;
|
||||
#X obj 74 234 +~;
|
||||
#X text 133 7 Adding sinusoids to make a complex tone;
|
||||
#N canvas 0 0 450 300 graph1 0;
|
||||
#X array tab.01.07 882 float 0;
|
||||
#X coords 0 1.02 881 -1.02 200 130 1;
|
||||
#X restore 426 222 graph;
|
||||
#X msg 116 295 bang;
|
||||
#X text 165 294 <-- click to graph;
|
||||
#X text 260 129 frequencies of harmonics;
|
||||
#X text 260 155 four oscillators;
|
||||
#X text 264 181 adjust amplitudes;
|
||||
#X text 109 233 add the three overtones together;
|
||||
#X obj 116 324 tabwrite~ tab.01.07;
|
||||
#X text 381 632 updated for Pd version 0.40.;
|
||||
#X text 429 360 ---- 0.02 seconds ----;
|
||||
#X obj 73 179 *~ 0.1;
|
||||
#X obj 201 179 *~ 0.5;
|
||||
#X text 129 259 <-- overtones ON/OFF;
|
||||
#X text 29 580 To hear the output \, choose a pitch (at top) \, optionally
|
||||
click the "overtones" control \, and mouse up the output volume. Click
|
||||
the "bang" message to graph it.;
|
||||
#X text 31 392 A simple way to build non-sinusoidal \, periodic musical
|
||||
tones is to sum a series of harmonically tuned sinusoids. Here the
|
||||
four oscillators have frequencies in a 1:2:3:4 ratio (the three "*"
|
||||
objects compute the second \, third \, and fourth one). The amplitudes
|
||||
are adjusted by the "*~ 0.1" \, etc. \, objects. Note that \, since
|
||||
the frequency (from the "mtof") is a message \, a "*" box suffices
|
||||
to operate on it \, but the oscillator's output \, being an audio signal
|
||||
\, needs "*~" instead. The control marked "overtones ON/OFF" is a toggle
|
||||
switch. Click to turn it on and off. Of the overtones are "off" you
|
||||
hear only a sinusoid from the forst oscillator. If on \, you hear all
|
||||
four.;
|
||||
#X connect 0 0 1 0;
|
||||
#X connect 1 0 6 0;
|
||||
#X connect 1 0 7 0;
|
||||
#X connect 1 0 10 0;
|
||||
#X connect 1 0 12 0;
|
||||
#X connect 3 0 0 0;
|
||||
#X connect 6 0 14 0;
|
||||
#X connect 7 0 8 0;
|
||||
#X connect 8 0 30 0;
|
||||
#X connect 9 0 13 0;
|
||||
#X connect 10 0 9 0;
|
||||
#X connect 11 0 31 0;
|
||||
#X connect 12 0 11 0;
|
||||
#X connect 13 0 17 1;
|
||||
#X connect 14 0 2 0;
|
||||
#X connect 14 0 2 1;
|
||||
#X connect 14 0 27 0;
|
||||
#X connect 15 0 14 1;
|
||||
#X connect 16 0 15 1;
|
||||
#X connect 17 0 18 0;
|
||||
#X connect 18 0 15 0;
|
||||
#X connect 21 0 27 0;
|
||||
#X connect 30 0 17 0;
|
||||
#X connect 31 0 18 1;
|
41
src/pd-0.44-2/doc/3.audio.examples/A08.beating.pd
Normal file
|
@ -0,0 +1,41 @@
|
|||
#N canvas 53 63 581 571 12;
|
||||
#X obj 31 212 output~;
|
||||
#X obj 32 178 +~;
|
||||
#X text 320 537 updated for Pd version 0.40.;
|
||||
#X obj 32 110 +~;
|
||||
#X obj 187 105 +~;
|
||||
#X obj 187 52 osc~ 440;
|
||||
#X obj 32 57 osc~ 330;
|
||||
#X obj 53 81 osc~ 330.2;
|
||||
#X obj 208 75 osc~ 440.33;
|
||||
#X obj 342 102 +~;
|
||||
#X obj 343 52 osc~ 587;
|
||||
#X obj 364 75 osc~ 587.25;
|
||||
#X obj 33 147 +~;
|
||||
#X text 133 7 Beating between closely tuned sinusoids;
|
||||
#X text 33 280 In each of the three pairs of oscillators above \, the
|
||||
two frequencies are within 1/3 Hz or closer (for example \, the leftmost
|
||||
ones are close to 330 Hz but separated by 1/5 Hz.) The result is a
|
||||
gradual change in amplitude as the phases of the two slip against each
|
||||
other. This is called beating. More complex beating pattenrs may be
|
||||
made by using three or more oscillators. Also their amplitudes need
|
||||
not be equal (as they are here).;
|
||||
#X text 31 407 They are all summed using "+~" boxes. They could have
|
||||
been summed in any order ("+~" is commutative for practical purposes)
|
||||
but here they are added in pairs to emphasize the relationships between
|
||||
them.;
|
||||
#X text 30 474 In contrast to the previous example \, the oscillators
|
||||
are not tuned to the overtone series (ratios 1:2:3:4...) and so the
|
||||
frequencies 330 \, 440 \, and 587 are heard separately.;
|
||||
#X connect 1 0 0 0;
|
||||
#X connect 1 0 0 1;
|
||||
#X connect 3 0 12 0;
|
||||
#X connect 4 0 12 1;
|
||||
#X connect 5 0 4 0;
|
||||
#X connect 6 0 3 0;
|
||||
#X connect 7 0 3 1;
|
||||
#X connect 8 0 4 1;
|
||||
#X connect 9 0 1 1;
|
||||
#X connect 10 0 9 0;
|
||||
#X connect 11 0 9 1;
|
||||
#X connect 12 0 1 0;
|