Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jwilkes/purr-data
  • aggraef/purr-data
  • samthursfield/purr-data
  • prakhar/purr-data
  • yadu05/purr-data
  • NegiAkash890/purr-data
  • prateekpardeshi/purr-data
  • Shruti3004/purr-data
  • hidimpu/purr-data
  • Atseosi/purr-data
  • piyushjasaiwal/purr-data
  • deveshprasad/purr-data
  • skm_7/purr-data
  • sankt/purr-data
  • ashim_tom/purr-data
  • dineshsoni02/purr-data
  • chaitanya1-coder/purr-data
  • Nitish0007/purr-data
  • nitin/purr-data
  • shuvam09/purr-data
  • gabrielabittencourt/purr-data
  • sivasai/purr-data
  • flachyjoe/purr-data
  • ishankaler/purr-data
  • prateek/purr-data
  • RukshanJS/purr-data
  • rajatshrm648/purr-data
  • Srashti/purr-data
  • Paarth/purr-data
  • AniruddhaGawali/purr-data
  • brittneyjuliet/purr-data
  • prakharagarwal1/purr-data
  • Shreyanshpaliwalcmsmn/purr-data
  • k_amrut/purr-data
  • AyushAnand/purr-data
  • Va16hav07/purr-data
36 results
Show changes
Commits on Source (2488)
Showing
with 3831 additions and 738 deletions
name: Makefile CI
on:
push:
branches: [ master, release, testing ]
tags: [ '*' ]
pull_request:
branches: [ master ]
jobs:
macos-build:
runs-on: macos-13
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: install dependencies
run: |
brew install automake
brew install fftw
brew install fluidsynth
brew install faac
brew install jpeg
brew install speex
brew install gsl
brew install libquicktime
brew install sdl2
pip3 install markdown
- name: version
run: |
echo "version=$(git describe --tags)" >> $GITHUB_ENV
- name: make
run: |
echo version: $version
make V=0
- name: check
run: make check
- name: upload
uses: actions/upload-artifact@v3
with:
name: purr-data-${{ env.version }}-macos-x86_64
path: Purr-Data-*.dmg
retention-days: 2
ubuntu-build:
runs-on: ubuntu-latest
env:
DEBEMAIL: "Albert Graef <aggraef@gmail.com>"
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: install dependencies
run: |
# dance around Azure connectivity issues
sudo apt-get update && sudo apt-get -o Acquire::Retries=3 install -q -y debhelper devscripts autoconf automake libtool pkg-config bison flex libgtk2.0-dev libgtk-3-dev dh-python ladspa-sdk libasound2-dev libjack-dev libbluetooth-dev libcairo2-dev libgl-dev libglew-dev libgsl-dev libmagick++-dev libavifile-0.7-dev libdc1394-dev libfftw3-dev libfluidsynth-dev libftgl-dev libgsm1-dev libjpeg-dev libmp3lame-dev libmpeg3-dev libquicktime-dev libraw1394-dev libsmpeg-dev libspeex-dev libstk-dev libtiff5-dev libv4l-dev libdv4-dev libiec61883-dev libxv-dev libxxf86vm-dev libvorbis-dev zlib1g-dev rsync libgconf2-dev libnss3-dev libxtst-dev libxss-dev
pip install markdown
- name: version
run: |
echo "version=$(git describe --tags)" >> $GITHUB_ENV
- name: make
run: |
echo version: $version
cd debuild
make debchange
make deb-us
- name: check
run: echo handled by debuild
- name: upload
uses: actions/upload-artifact@v3
with:
name: purr-data-${{ env.version }}-ubuntu-x86_64
path: debuild/purr-data*.deb
retention-days: 2
windows-build:
runs-on: windows-2022
defaults:
run:
shell: msys2 {0}
env:
CC: gcc
CXX: g++
steps:
- uses: msys2/setup-msys2@v2
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: install innosetup
run: |
wget https://jrsoftware.org/download.php/is.exe -O innosetup.exe
./innosetup.exe //SILENT //CURRENTUSER
- name: install dependencies
run: |
pacman --noconfirm --disable-download-timeout -S autoconf automake git libtool make mingw-w64-x86_64-dlfcn mingw-w64-x86_64-fftw mingw-w64-x86_64-fluidsynth mingw-w64-x86_64-SDL2 mingw-w64-x86_64-ftgl mingw-w64-x86_64-fribidi mingw-w64-x86_64-ladspa-sdk mingw-w64-x86_64-lame mingw-w64-x86_64-libsndfile mingw-w64-x86_64-libvorbis mingw-w64-x86_64-lua mingw-w64-x86_64-toolchain mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-speex mingw-w64-x86_64-python mingw-w64-x86_64-python-markdown rsync unzip wget
- name: version
run: |
echo "version=$(git describe --tags)" >> $GITHUB_ENV
- name: make
run: |
echo version: $version
echo UNAME: `uname -s`
make V=0
- name: check
run: make check
- name: upload
uses: actions/upload-artifact@v3
with:
name: purr-data-${{ env.version }}-mingw-x86_64
path: Purr-Data-*.exe
retention-days: 2
release:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
needs: [macos-build, ubuntu-build, windows-build]
steps:
- uses: actions/download-artifact@v3
- name: ziptie
run: |
mkdir dist
for x in purr-data-*; do (cd $x && zip -r ../dist/$x.zip *); done
- name: release
uses: softprops/action-gh-release@v1
with:
prerelease: true
draft: true
files: dist/*.zip
......@@ -30,5 +30,11 @@ pd.pc
.svn
packages/linux_make/build/
pd/src/makefile
pd/src/config.h
pd/src/s_version.h
pd/nw/nw/
l2ork_addons/cwiid/defs.mak
CVS
.DS_Store
*.dmg
.vscode/
\ No newline at end of file
before_script:
- apt-get update -qq && apt-get upgrade -qq
# This file creates automated tests on GitLab CI for Purr Data.
# See https://docs.gitlab.com/ee/ci/yaml/README.html for details of the format.
build_package:
# These are script snippets used in the jobs defined below.
.debian_image_preparation: &debian_image_preparation
- echo "" | sudo -S apt-get -qq purge -y pd-l2ork > /dev/null || echo "couldn't purge..."
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y update > /dev/null
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive apt-get -qq -y upgrade > /dev/null
.build_all: &build_all
- echo -e "section_start:`date +%s`:build_all\r\e[0KBuilding Purr Data"
- cd l2ork_addons
- export V=0
- ./tar_em_up.sh $BUILD_TYPE_FLAG
- cd ..
- echo -e "section_end:`date +%s`:build_all\r\e[0K"
.test_linux: &test_linux
- echo -e "section_start:`date +%s`:test_linux\r\e[0KTesting Purr Data for Linux"
- echo "" | sudo -S DEBIAN_FRONTEND=noninteractive dpkg --force-all -i pd-l2ork*.deb > /dev/null
- valgrind pd-l2ork -noprefs -nogui -nrt -noaudio -send "init dollarzero \$0" scripts/regression_tests.pd
- valgrind pd-l2ork -noprefs -nostdpath -nogui -nrt -noaudio scripts/external-tests.pd
- echo -e "section_end:`date +%s`:text_linux\r\e[0K"
.test_osx: &test_osx
- echo -e "section_start:`date +%s`:test_osx\r\e[0KTesting Purr Data for Mac OSX"
- cd scripts
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork -noprefs -nostdpath -nogui -noaudio external-tests.pd
- echo -e "section_end:`date +%s`:text_osx\r\e[0K"
.test_windows: &test_windows
- echo -e "section_start:`date +%s`:test_windows\r\e[0KTesting Purr Data for Windows"
- cd scripts
- ../packages/win64_inno/build/bin/pd.com -noprefs -nogui -noaudio -send "init dollarzero \$0" regression_tests.pd
- ../packages/win64_inno/build/bin/pd.com -noprefs -nostdpath -nogui -noaudio external-tests.pd
- echo -e "section_end:`date +%s`:text_windows\r\e[0K"
debian_stretch_x86_64_deb:
tags:
- debian
- stretch
- x86_64
variables:
BUILD_TYPE_FLAG: -B
before_script:
- *debian_image_preparation
script:
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
ubuntu_16.04_x86_64_deb:
tags:
- ubuntu
- v16.04
- x86_64
variables:
BUILD_TYPE_FLAG: -B
before_script:
- *debian_image_preparation
script:
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
osx_10.11_x86_64_dmg:
tags:
- osx
- v10.11
- dmg
variables:
BUILD_TYPE_FLAG: -X
script:
- echo `pwd`
- *build_all
- *test_osx
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Purr*.dmg
osx_10.8_x86_64_dmg:
tags:
- osx
- v10.8
- dmg
variables:
BUILD_TYPE_FLAG: -X
osx_version: "10.8"
script:
- echo `pwd`
- *build_all
- *test_osx
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Purr*.dmg
windows_x86_64_innosetup:
tags:
- windows
- x86_64
variables:
BUILD_TYPE_FLAG: -Z
script:
- echo `pwd`
- cd l2ork_addons
- ./tar_em_up.sh -B
- *build_all
- *test_windows
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- Purr*.exe
raspbian_stretch_armv7l_deb:
tags:
- raspbian
- arm
- stretch
variables:
BUILD_TYPE_FLAG: -r
before_script:
- *debian_image_preparation
script:
- echo `pwd`
- *build_all
- *test_linux
artifacts:
name: "$CI_RUNNER_DESCRIPTION"
expire_in: 1 day
paths:
- pd*.deb
[submodule "Gem"]
path = Gem
url = git://git.code.sf.net/p/pd-gem/gem
[submodule "l2ork_addons/rtcmix-in-pd"]
path = externals/rtcmix-in-pd
url = https://github.com/jwmatthys/rtcmix-in-pd.git
[submodule "l2ork_addons/cwiid"]
path = externals/disis/cwiid
url = https://github.com/pd-l2ork/cwiid
[submodule "l2ork_addons/lyonpotpourri"]
path = externals/lyonpotpourri
url = https://github.com/pd-projects/lyonpotpourri
[submodule "l2ork_addons/fftease3.0-32bit"]
path = externals/fftease
url = https://github.com/ericlyon/fftease3.0-32bit
[submodule "Gem"]
path = Gem
url = https://github.com/agraef/Gem.git
[submodule "l2ork_addons/raspberry_pi/disis_gpio/wiringPi"]
path = l2ork_addons/raspberry_pi/disis_gpio/wiringPi
url = git://git.drogon.net/wiringPi
url = https://git.purrdata.net/jwilkes/wiringPi.git
[submodule "externals/pd-lua"]
path = externals/pd-lua
url = https://github.com/agraef/pd-lua.git
Subproject commit 374f71368f4a54e8d0f7887460a178e9020a1ba4
Subproject commit 0d5f10cc9166ce8971c6fde32fa0d2d47ab33fa0
This diff is collapsed.
This diff is collapsed.
# Toplevel Makefile for Purr Data. Please note that at present this is just a
# thin wrapper around l2ork_addons/tar_em_up.sh, the traditional Pd-l2ork
# build script.
# The Pd-l2ork build system is very arcane and intricate. Its main purpose is
# putting together a staging area with a complete Pd-l2ork installation and
# then building installers for the supported platforms from that, pulling
# together a bunch of separate packages, each with their own build system.
# Compiling sources is just one of the tasks that the builder does. Therefore
# you'll notice that, unlike with other less complicated source packages,
# `make` will rebuild lots of things even if you just finished another build.
# The available build targets are:
# all: produce a native installer for the host platform (equivalent to
# `tar_em_up.sh -Tk`); note that in order to force a complete rebuild (like
# what `tar_em_up.sh -T` does), you'll have to run `make clean` first
# incremental: like `all`, but does an "incremental build" (equivalent to
# `tar_em_up.sh -tk`), bypassing Gem which takes an eternity to compile; please
# check the tar_em_up.sh script for details
# light: like `incremental`, but does a light build (equivalent to
# `tar_em_up.sh -tkl`) which only includes the most essential externals;
# please check the tar_em_up.sh script for details
# checkout: convenience target to check out all submodules in preparation for
# a subsequent build (the `all`, `incremental` and `dist` targets also do this
# automatically when needed)
# clean: does something similar to what `tar_em_up.sh` does in order to start
# from a clean slate, so that a subsequent build starts from scratch again
# realclean: put the sources into pristine state again (WARNING: this will get
# rid of any uncommitted source changes, too); use this as a last resort to
# get the sources into a compilable state again after things have gone awry
# dist: create a self-contained distribution tarball of the source
# NOTES:
# The realclean and dist targets use git commands and thus only work in a
# working copy of the git repo, not in the static tarball snapshots produced
# by the dist target.
# On Linux systems running `make` will try to produce a Debian package. On
# Linux distributions like Arch which are no Debian derivatives, the Debian
# packaging tools are not available. In this case, `make` will stop right
# before creating the actual package and leave the ready-made staged
# installation tree under `packages/linux_make/build` from where it can be
# copied or packaged up in any desired way.
# The incremental and light builds assume an existing staging area
# (packages/*/build directory) which is *not* cleaned before installing. This
# makes it possible to update the existing staging area after recompiling just
# a part of the system (all but Gem in the case of "incremental", only the
# Pd core and a few essential externals in the case of "light"). Use `make
# clean` beforehand if you want to install into a clean staging area.
# When doing a `light` build, which only includes the most essential
# externals, it may be desirable to manually include additional abstractions
# and externals in the build. To these ends, after running `make light` you
# can run `make` with the `foo_abs` or `foo_ext` target, where `foo` is the
# name of the desired abstraction or external, respectively. E.g., you can run
# `make light memento_abs pdlua_ext` to get a light build with the `memento`
# abstraction and the `pdlua` external included. (This will not rebuild the
# Debian package, though, so you'll have to install manually with `make
# install` instead.) The names of the desired addons must be specified as
# given in abstractions/Makefile and externals/Makefile, respectively (look
# for targets looking like `foo_install`). Also note that even though a
# subsequent `make install` will then include your addons, they won't be
# enabled by default, so you'll have to do that manually in Purr Data's
# `Startup` dialog. Simply adding the name of the addon in the `Libraries`
# list should normally do the trick. Or you can add an option like `-lib foo`
# when running Purr Data from the command line.
.PHONY: all incremental checkout clean realclean dist
# Target platform (OSX/macOS only): On Mojave (10.14 with Xcode 10) this needs
# to be at least 10.9, which is the default now. With older Xcode versions you
# can try earlier versions (>= 10.4) if you need to compile for legacy OSX
# versions.
export macos_target = 10.9
# Installation prefix under which Pd-l2ork is installed (Linux only). If this
# isn't set, a default location will be used (usually /usr/local). NOTE: We
# *always* assume that this variable is set properly in the install targets,
# as well as the (Linux) check target (see below).
prefix = /usr
ifneq ($(prefix),)
env = inst_dir="$(prefix)"
endif
install_vars = DESTDIR=$(firstword $(wildcard $(CURDIR)/packages/*/build)) prefix=$(prefix)
# You can set the nwjsver variable to indicate the nw.js version to build
# against. This will also clear out any cached nw.js binaries beforehand.
# Note that some nw.js versions for certain platforms have to be hard-coded,
# so the nwjsver variable won't affect these, but it will still cause the
# cache to be cleared and the binaries to be downloaded. See the tar_em_up.sh
# script for details.
ifneq ($(nwjsver),)
env += nwjsver="$(nwjsver)"
endif
# You can set CFLAGS to whatever special compile options are needed. E.g., to
# build the double precision version: CFLAGS = -DPD_FLOATSIZE=64
CFLAGS =
export CFLAGS
# For the light build only, you can add externals to be included in the build.
addons =
export addons
# You can also set this variable to specify externals NOT to be built. E.g.,
# to prevent building Gem (which takes an eternity to build): blacklist = gem
blacklist =
export blacklist
all:
cd l2ork_addons && $(env) ./tar_em_up.sh -Tk
incremental:
cd l2ork_addons && $(env) ./tar_em_up.sh -tk
light:
cd l2ork_addons && $(env) ./tar_em_up.sh -tkl
# Convenience targets to build the double precision version.
# Blacklist of externals which don't work with double precision yet.
double_blacklist = autotune smlib
# These are dubious, passing float* for t_float* pointers, and so are most
# likely broken, even though they compile with double precision.
double_blacklist += cyclone lyonpotpourri
all-double:
cd l2ork_addons && $(env) CFLAGS=-DPD_FLOATSIZE=64 blacklist="$(double_blacklist)" ./tar_em_up.sh -Tk
incremental-double:
cd l2ork_addons && $(env) CFLAGS=-DPD_FLOATSIZE=64 blacklist="$(double_blacklist)" ./tar_em_up.sh -tk
light-double:
cd l2ork_addons && $(env) CFLAGS=-DPD_FLOATSIZE=64 blacklist="$(double_blacklist)" ./tar_em_up.sh -tkl
%_abs:
make -C abstractions $(@:%_abs=%) $(@:%_abs=%_install) $(install_vars)
%_ext:
make -C externals $(@:%_ext=%) $(@:%_ext=%_install) $(install_vars)
checkout:
git submodule update --init --recursive
clean:
test "$(shell uname -s)" = "Darwin" && make -C packages/darwin_app clean || true
cd pd/src && aclocal && autoconf && make clean || true
cd externals/miXed && make clean || true
cd Gem/src/ && test -f Makefile && make distclean || true
cd Gem/src/ && rm -rf ./.libs && rm -rf ./*/.libs || true
cd Gem/ && test -f Makefile && make distclean || true
cd Gem/ && rm -f gemglutwindow.pd_linux Gem.pd_linux || true
rm -rf packages/*/build/
realclean:
# This requires a working copy of the git repo.
@test -d .git || (echo "Not a git repository, bailing out." && false)
git submodule deinit --all -f
git checkout .
git clean -dffx -e pd/nw/nw/
# Check targets. These run the regression tests in scripts.
# Requires a full build.
os = $(shell uname|sed 's/^\(MINGW[0-9]*\)_NT.*/\1/')
ifeq ($(os),Linux)
# Linux (all flavors)
pdprog = packages/linux_make/build$(prefix)/bin/pd-l2ork
else ifeq ($(os),Darwin)
# Mac
pdprog = packages/darwin_app/build/*.app/Contents/Resources/app.nw/bin/pd-l2ork
else ifeq ($(os),MINGW64)
# Msys2 mingw64
pdprog = packages/win64_inno/build/bin/pd.exe
else ifeq ($(os),MINGW32)
# Msys2 mingw32
pdprog = packages/win32_inno/build/bin/pd.exe
endif
ifneq ($(pdprog),)
# This runs just a quick regression test, useful to see whether the program
# works at all.
check1:
$(pdprog) -noprefs -nogui -noaudio -send 'init dollarzero $$0' scripts/regression_tests.pd
# This runs the full test suite, including the test of the externals.
check:
$(pdprog) -noprefs -nogui -noaudio -send 'init dollarzero $$0' scripts/regression_tests.pd
$(pdprog) -noprefs -nostdpath -nogui -noaudio scripts/external-tests.pd
else
check1 check:
@echo "Target $(os) not recognized, can't run 'make $@'!"; false
endif
# Installation targets. These don't work on Mac and Windows right now, you
# should use the generated installers on these systems instead. Also,
# $(prefix) must be set. $(DESTDIR) is supported as well, so you can do staged
# installs (but then again presumably you already have a staged install
# sitting in packages/*/build, so you might as well use that instead).
# Note that these targets simply (un)install whatever is in the
# packages/*/build directory at the time they're invoked. If no build
# directory is present then nothing will happen, so you need to run `make` (or
# `make incremental`, etc.) before running these targets. Also note that some
# old cruft under build/etc (all but the bash auto-completions) isn't
# installed as it isn't needed on modern Linux systems any more.
builddir = $(firstword $(wildcard packages/*/build))
ifneq ($(builddir),)
manifest = etc/bash_completion.d/pd-l2ork $(prefix:/%=%)/include/pd-l2ork $(prefix:/%=%)/lib/pd-l2ork $(patsubst $(builddir)/%,%, $(wildcard $(builddir)/$(prefix:/%=%)/bin/*) $(shell find $(builddir)/usr/share -type f))
endif
ifneq ($(manifest),)
install:
test -z "$(DESTDIR)" || (rm -rf "$(DESTDIR)" && mkdir -p "$(DESTDIR)")
tar -c -C $(builddir) $(manifest) | tar -x -C $(DESTDIR)/
# Edit the library paths in the default user.settings file so that it matches
# our installation prefix.
test -f "$(DESTDIR)"$(prefix)/lib/pd-l2ork/default.settings && cd "$(DESTDIR)"$(prefix)/lib/pd-l2ork && sed -e "s!/usr/lib/pd-l2ork!$(prefix)/lib/pd-l2ork!g" -i default.settings || true
uninstall:
rm -rf $(addprefix $(DESTDIR)/, $(manifest))
else
install:
@echo "no build directory, run make first" && false
uninstall:
@echo "no build directory, run make first" && false
endif
# Build a self-contained distribution tarball (snapshot). This is pretty much
# the same as in debuild/Makefile and must be run in a working copy of the git
# repo.
# The Debian version gets derived from the date and serial number of the last
# commit.
debversion = $(shell grep PD_L2ORK_VERSION pd/src/m_pd.h | sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|')+git$(shell test -d .git && git rev-list --count HEAD)+$(shell test -d .git && git rev-parse --short HEAD)
# Source tarball and folder.
debsrc = purr-data_$(debversion).orig.tar.gz
debdist = purr-data-$(debversion)
# Submodules (Gem, etc.).
submodules = $(sort $(shell test -d .git && (git config --file .gitmodules --get-regexp path | awk '{ print $$2 }')))
dist: $(debsrc)
# Determine the version number of this build. We get this from m_pd.h.
PD_L2ORK_VERSION := $(shell grep PD_L2ORK_VERSION pd/src/m_pd.h | sed 's|^.define *PD_L2ORK_VERSION *"\(.*\)".*|\1|')
# Determine the build version which needs git to be computed, so we can't do
# it in a stand-alone build from a tarball.
PD_BUILD_VERSION := $(shell test -d .git && (git log -1 --format=%cd --date=short | sed -e 's/-//g'))-rev.$(shell test -d .git && git rev-parse --short HEAD)
$(debsrc):
@test -d .git || (echo "Not a git repository, bailing out." && false)
rm -rf $(debdist)
# Make sure that the submodules are initialized.
git submodule update --init
# Grab the main source.
git archive --format=tar.gz --prefix=$(debdist)/ HEAD | tar xfz -
# Grab the submodules.
for x in $(submodules); do (cd $(debdist) && rm -rf $$x && git -C ../$$x archive --format=tar.gz --prefix=$$x/ HEAD | tar xfz -); done
# Pre-generate and put s_version.h into the tarball (see above; the build
# version is generated using git which can't be done outside the git repo).
sed 's|^\(#define PD_BUILD_VERSION "\).*"|\1$(PD_BUILD_VERSION)"|' pd/src/s_version.h.in > $(debdist)/pd/src/s_version.h
# Pre-generate the markdown and html docs so that they will be included in the
# source. This means that we don't need any special tools as a build
# dependency, which makes live a lot easier.
make -C packages/gendoc version="$(PD_L2ORK_VERSION)" build_version="$(PD_BUILD_VERSION)"
mv packages/gendoc/{ReadMe,Welcome}-*.{md,html} $(debdist)/packages/gendoc
make -C packages/gendoc clean
# Create the source tarball.
tar cfz $(debsrc) $(debdist)
rm -rf $(debdist)
This diff is collapsed.
......@@ -126,9 +126,6 @@ memento_install:
--author "Frank Barknecht" \
--license "GNU GPL" \
--description "a collection of objects for managing state saving"
install -d $(DESTDIR)$(manualsdir)/$(MEMENTO_NAME)
install -p $(abstractions_src)/rradical/memento/tutorial/*.* \
$(DESTDIR)$(manualsdir)/$(MEMENTO_NAME)
install -d $(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual
install -p $(abstractions_src)/rradical/memento/tutorial/*.* \
$(DESTDIR)$(objectsdir)/$(MEMENTO_NAME)/manual
......@@ -236,11 +233,6 @@ pixeltango_install:
install -d $(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/Example-Patches/*.* \
$(DESTDIR)$(examplesdir)/$(PIXELTANGO_NAME)
install -d $(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/*.txt \
$(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -p $(abstractions_src)/pixelTANGO/dev-notes/*.txt \
$(DESTDIR)$(manualsdir)/$(PIXELTANGO_NAME)
install -d $(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual
install -p $(abstractions_src)/pixelTANGO/*.txt \
$(DESTDIR)$(objectsdir)/$(PIXELTANGO_NAME)/manual
......@@ -352,10 +344,6 @@ timestretch_install:
# install -d $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME)
# install -p $(abstractions_src)/timestretch/doc/*.txt \
# $(DESTDIR)$(manualsdir)/$(TIMESTRETCH_NAME)
# install -d $(DESTDIR)$(readmesdir)
# install -p $(abstractions_src)/timestretch/README \
# $(DESTDIR)$(readmesdir)/$(TIMESTRETCH_NAME).txt
#-------------------------------------------------------------------------------
......@@ -369,42 +357,15 @@ pd-wavelet_install:
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
install -p $(abstractions_src)/pd-wavelet/main.pd \
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
install -p $(abstractions_src)/pd-wavelet/README.txt \
$(DESTDIR)$(objectsdir)/$(PDWAVELET_NAME)
$(scripts_src)/generate-libdir-metafile.sh $(DESTDIR)$(objectsdir) $(PDWAVELET_NAME) \
--author "Raul Diaz Poblete" \
--description "manipulation of audio in the wavelet domain" \
--license "GNU GPL v2" \
--version ""
install -d $(DESTDIR)$(readmesdir)
install -p $(abstractions_src)/pd-wavelet/README.txt \
$(DESTDIR)$(readmesdir)/$(PDWAVELET_NAME).txt
#==============================================================================#
#
# DEVELOPER'S TARGETS
#
#==============================================================================#
# make the symlinks necessary to simulate the installed environment
devsymlinks:
# make symlinks for help patches
test -e $(abstractions_src)/../2.control.examples || \
ln -s $(pd_src)/doc/2.control.examples \
$(abstractions_src)/../2.control.examples
test -e $(abstractions_src)/../3.audio.examples || \
ln -s $(pd_src)/doc/3.audio.examples \
$(abstractions_src)/../3.audio.examples
# pd <= 0.38-4 has 4.fft.examples
test -e $(abstractions_src)/../4.fft.examples || \
ln -s $(pd_src)/doc/4.fft.examples $(abstractions_src)/../4.fft.examples
# pd > 0.38-4 has 4.data.structures
test -e $(abstractions_src)/../4.data.structures || \
ln -s $(pd_src)/doc/4.data.structures \
$(abstractions_src)/../4.data.structures
test -e $(abstractions_src)/../7.stuff || \
ln -s $(pd_src)/doc/7.stuff $(abstractions_src)/../7.stuff
test -e $(abstractions_src)/../sound || \
ln -s $(pd_src)/doc/sound $(abstractions_src)/../sound
#==============================================================================#
#
......
......@@ -41,6 +41,10 @@ LIBS =
#
#------------------------------------------------------------------------------#
ifeq ($(macos_target),)
macos_target = 10.9
endif
# get library version from meta file
LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd)
......@@ -92,13 +96,13 @@ ifeq ($(UNAME),Darwin)
OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
# build universal 32-bit on 10.4 and 32/64 on newer
ifeq ($(shell uname -r | sed 's|\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*|\1|'), 8)
FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=10.4
FAT_FLAGS = -arch ppc -arch i386 -mmacosx-version-min=$(macos_target)
else
FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4
FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=$(macos_target)
SOURCES += $(SOURCES_iphoneos)
endif
CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib
CFLAGS += $(FAT_FLAGS) -fPIC
LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup
# if the 'pd' binary exists, check the linking against it to aid with stripping
LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
LIBS += -lc
......
Abstractions from Joo Pais
Version 0.46
Version 0.47
(c) 2005-2016 Joo Pais - jmmmpais@gmail.com
Released under the BSD license (more information in each abstraction).
......@@ -25,6 +25,7 @@ dsp01 - DSP switch
f+ - Counter with variable increment
gui-edit - edit standard GUI objects fast
jp.menu - Dropdown menu programmed with data structures
jp.preset - Dropdown preset saver programmed with data structures
lbang - loadbang which can be triggered more often
liner~ - practical implementation of [line~]
liner+~ - practical implementation of signal envelopping
......@@ -53,9 +54,9 @@ tastin - Gate for keyboard input
uhr - Shows the time
It is recomended to use these abstractions with Pd-extended, since I don't keep track of which externals are used. Some abstractions use other ones of this package, so it is also better to have always the whole package together.
The jmmmp library is dependent from the following libraries: cyclone, ext13, ggee, iemlib, iemmatrix, jmmmp, zexy 2.2.6.
2016.05.27
2016.06.30
Non-working or discarded abstractions:
......
#N canvas 457 189 505 304 10;
#X obj 15 72 inlet;
#X obj 15 222 outlet;
#X obj 34 92 inlet;
#X obj 58 112 inlet;
#X obj 15 182 f \$1;
#X obj 72 192 +;
#X obj 108 152 expr if($f1 == 0 \, 1 \, $f1);
#X obj 15 52 inlet;
#X obj 15 202 outlet;
#X obj 34 72 inlet;
#X obj 58 92 inlet;
#X obj 15 162 f \$1;
#X obj 72 172 +;
#X obj 108 132 expr if($f1 == 0 \, 1 \, $f1);
#N canvas 0 0 426 446 license 0;
#X text 8 47 All rights reserved.;
#X text 8 227 The names of its contributors may not be used to endorse
......@@ -39,15 +39,15 @@ in the documentation and/or other materials provided with the distribution.
#X text 279 168 - Set increment;
#X text 279 198 Outlets;
#X text 279 218 - Float;
#X obj 34 162 \$1;
#X obj 34 132 route bang;
#X obj 34 142 \$1;
#X obj 34 112 route bang;
#X text 279 148 - Bang reset / Float (next count);
#X obj 15 202 t f f;
#X obj 15 182 t f f;
#X text 12 257 (C) 2006-2012 João Pais - jmmmpais@googlemail.com;
#X text 278 58 - Initial number (default 0);
#X text 279 78 - Increment (default 1);
#X obj 108 132 \$2;
#X obj 108 112 initbang;
#X obj 108 112 \$2;
#X obj 108 92 iemlib/init;
#X connect 0 0 4 0;
#X connect 2 0 16 0;
#X connect 3 0 5 1;
......
#N canvas 268 142 382 289 10;
#X text 16 6 NAME jmmmp;
#X text 16 26 AUTHOR Joo Pais <jmmmpais@googlemail.com>;
#X text 16 76 LICENSE GPL;
#X text 16 96 VERSION 0.46;
#X text 16 46 DESCRIPTION this library has several utilities with different
functions. It is composed of abstractions only.;
#N canvas 10 10 200 164 10;
#N canvas 20 20 420 300 META 0;
#X text 10 10 META this is a prototype of a libdir meta file;
#X text 10 30 NAME jmmmp;
#X text 10 90 LICENSE BSD;
#X text 10 110 VERSION 0.47;
#X text 10 50 AUTHOR Joo Pais <jmmmpais@googlemail.com>;
#X text 10 70 DESCRIPTION Several useful abstractions;
#X restore 10 10 pd META;
#N struct 1012-color float x float y float farbe;
#N struct 1012-color-display float x float y float farbe;
#N struct 1015-color float x float y float farbe;
#N struct 1015-color-display float x float y float farbe;
#N struct 1007-element float x float y symbol menu float lenght float
#N struct 1087-color float x float y float farbe;
#N struct 1087-color-display float x float y float farbe;
#N struct 1090-color float x float y float farbe;
#N struct 1090-color-display float x float y float farbe;
#N struct 1082-element float x float y symbol menu float lenght float
height float selection float ypos float col-back float col-lab;
#N struct 1025-color float x float y float farbe;
#N struct 1025-color-display float x float y float farbe;
#N struct 1028-color float x float y float farbe;
#N struct 1028-color-display float x float y float farbe;
#N struct 1020-element float x float y symbol menu float lenght float
#N struct 1183-color float x float y float farbe;
#N struct 1183-color-display float x float y float farbe;
#N struct 1186-color float x float y float farbe;
#N struct 1186-color-display float x float y float farbe;
#N struct 1178-element float x float y symbol menu float lenght float
height float selection float ypos float col-back float col-lab;
#N canvas 40 80 738 476 10;
#X floatatom 19 206 5 0 0 0 - - -;
#N canvas 0 0 426 446 license 0;
#N canvas 106 113 779 512 10;
#X floatatom 19 216 5 0 0 0 - - -;
#N canvas 0 0 393 422 license 0;
#X text 8 47 All rights reserved.;
#X text 8 227 The names of its contributors may not be used to endorse
or promote products derived from this software without specific prior
......@@ -37,9 +37,9 @@ in the documentation and/or other materials provided with the distribution.
;
#X text 8 7 Copyright 2016 \, João Pais;
#X text 8 27 jmmmpais@gmail.com;
#X restore 431 446 pd license;
#X text 429 341 Outlets;
#X text 429 251 - bang - outputs current setting;
#X restore 421 486 pd license;
#X text 419 401 Outlets;
#X text 419 291 - bang - outputs current setting;
#N canvas 564 268 494 344 META 0;
#X text 12 95 LICENSE BSD;
#X text 12 75 LIBRARY jmmmp;
......@@ -49,139 +49,154 @@ in the documentation and/or other materials provided with the distribution.
#X text 12 36 KEYWORDS menu GOP data-structures;
#X text 12 55 AUTHOR João Pais <jmmmpais@gmail.com>;
#X text 12 135 VERSION 2016;
#X restore 521 446 pd META;
#X restore 511 486 pd META;
#X text 11 11 [jp.menu] - Dropdown menu programmed with data structures
;
#X text 429 41 Arguments - ALWAYS USE THE FIRST THREE ARGUMENTS;
#X text 429 61 - name of configuration file;
#X text 428 81 - lenght (pixels);
#X text 429 101 - height (pixels);
#N canvas 451 243 394 363 configuration 0;
#X text 19 17 HOW TO FORMAT THE CONFIGURATION FILE FOR [jp.menu];
#X text 19 87 Name;
#X text 19 167 Content;
#X text 19 187 The content consists of as many lines as items in the
menu. In each line is be the label that appears.;
#X text 19 47 The configuration file must be a .txt file \, stored
in the same folder as the main patch where [jp.menu] is being used.
;
#X text 19 227 Load new file;
#X text 19 247 To load a new file \, send the message "load \$1" with
#X text 419 61 - name of configuration file;
#N canvas 312 426 384 356 configuration 0;
#X text 9 7 HOW TO FORMAT THE CONFIGURATION FILE FOR [jp.menu];
#X text 9 77 Name;
#X text 9 157 Content;
#X text 9 37 The configuration file must be a .txt file \, stored in
the same folder as the main patch where [jp.menu] is being used.;
#X text 9 217 Load new file;
#X text 9 237 To load a new file \, send the message "load \$1" with
the symbol as argument.;
#X obj 19 337 s \$0-country-i;
#X msg 19 288 load audio;
#X msg 29 308 load country;
#X text 19 107 The file must be named jp.menu-NAME.txt.;
#X text 19 127 The NAME will be used as the first argument for [jp.menu].
#X obj 9 327 s \$0-country-i;
#X msg 9 278 load audio;
#X msg 19 298 load country;
#X text 9 97 The file must be named jp.menu-NAME.txt.;
#X text 9 117 The NAME will be used as the first argument for [jp.menu].
;
#X connect 8 0 7 0;
#X connect 9 0 7 0;
#X restore 222 251 pd configuration;
#X text 430 426 (C) 2016 João Pais - jmmmpais@gmail.com;
#X text 429 211 - integer - select item number. From 0 upwards.;
#X obj 19 111 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
#X text 9 177 The content consists of as many lines as items in the
menu. In each line is be the label that appears in the menu.;
#X connect 7 0 6 0;
#X connect 8 0 6 0;
#X restore 262 281 pd configuration;
#X text 420 466 (C) 2016 João Pais - jmmmpais@gmail.com;
#X text 419 211 - integer - select item number. From 0 upwards.;
#X obj 19 121 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X text 429 121 - identifier for receive/send names;
#X text 15 91 This menu has 4 items;
#X text 429 361 - integer - chosen item number;
#X msg 29 131 open;
#X text 429 191 Input messages;
#X text 429 231 - open - opens full menu;
#X text 12 356 Limitations of data structures;
#X text 12 416 - the message "drawnumber_motion: symbol" appears in
#X text 439 121 - identifier for receive/send names;
#X text 419 421 - integer - chosen item number;
#X msg 29 141 open;
#X text 419 191 Input messages;
#X text 419 271 - open - opens full menu;
#X text 12 416 Limitations of data structures;
#X text 12 476 - the message "drawnumber_motion: symbol" appears in
the console when instead of clicking \, the user drags the menu;
#X text 12 396 - the size of the text can't be changed;
#N canvas 467 689 450 300 zutun 0;
#X text 25 215 ## dizer ao puckette para eliminar drawnumbermotion
das mensagens;
#X text 26 174 ## saida da direita com símbolo de label. para isso
\, só tem que apanhar o símbolo apenas quando entra float \, nao
quando há open.;
#X text 17 138 ## editar e gravar configuracao usando mensagens? funciona
com text \, ou tem que se usar a nova versao?;
#X text 21 244 ## modo and \, com várias opcoes ligadas/desligadas?
;
#X text 26 48 ## depois de load \, tamanho volta ao normal;
#X restore 584 446 pd zutun;
#X text 14 251 Formatting the configuration file;
#X text 14 291 Color configuration;
#X text 14 271 You can use send/receive variables;
#N canvas 497 71 396 209 send/receive 0;
#X text 19 17 SEND/RECEIVE VARIABLES;
#X text 19 47 [jp.menu] lets you define an internal variable to use
with send and receive objects. You can send and receive any messages
to it.;
#X text 19 87 The variables are formated as:;
#X text 19 107 - the 3rd argument gives the send name;
#X text 19 127 - the receive name adds "-i" to the 3rd argument;
#X text 19 157 For example \, if the 3rd argument is "menusend" \,
the receive name will be "menusend-i". You can use also dollarsigns
as symbols: \$0 \, \$1 \, etc. \, as in the following example:;
#X restore 228 271 pd send/receive;
#X text 12 41 [jp.menu] creates a dropdown menu based on a text file.
This abstraction is a development of the concept used by Gilberto Bernardes
in his earGram software.;
#X msg 199 131 open;
#X obj 189 151 s \$0-country-i;
#X obj 189 181 r \$0-country;
#X floatatom 189 111 5 0 0 0 - - -;
#X floatatom 189 201 5 0 0 0 - - -;
#X obj 169 131 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
#X msg 299 171 open;
#X obj 289 191 s \$0-country-i;
#X obj 289 221 r \$0-country;
#X floatatom 289 151 5 0 0 0 - - -;
#X floatatom 289 241 5 0 0 0 - - -;
#X obj 269 171 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 429 271 - color \$1 \$2 - change colors;
#X text 170 91 Use send/receive to control the menu;
#X text 429 141 - background color;
#X text 429 161 - label / border color;
#X obj 289 111 jp.menu country 100 22 \$0-country 89 9;
#X text 429 291 - size x y - change menu size;
#N canvas 331 210 386 167 size 0;
#X msg 29 47 size 60 70;
#X msg 39 67 size 120 20;
#X msg 19 27 size 80 15;
#X text 19 7 Change menu size;
#X obj 19 97 s \$0-country-i;
#X text 19 127 !! Mind \, for "size" the object doesn't get saved with
#X text 419 311 - color \$1 \$2 - change colors;
#X text 150 131 Use send/receive to control the menu;
#X text 439 141 - background color;
#X text 439 161 - label / border color;
#X text 419 351 - size x y - change menu size;
#X text 12 436 The following limitations are built in to Pure Data:
;
#X text 15 91 This menu has 4 items \, Click on it or send a number
or message.;
#X text 419 31 Arguments - Always use the first argument \, others
are facultative;
#X text 14 281 Formatting/loading a configuration file;
#N canvas 38 162 445 466 display 0;
#X msg 19 47 size 60 70;
#X msg 29 67 size 120 20;
#X msg 9 27 size 80 15;
#X text 9 7 Change menu size;
#X obj 9 87 s \$0-country-i;
#X text 9 107 !! Mind \, for "size" the object doesn't get saved with
the new parameters !! You must edit the object itself.;
#X connect 0 0 4 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X restore 121 311 pd size;
#X text 14 311 Change menu size;
#N canvas 438 53 442 335 color 0;
#X msg 21 157 color 57 600;
#X text 10 7 Change colors:;
#X obj 373 67 pd-colors;
#X msg 11 257 color;
#X text 11 237 Or send only the message "color" to open a color selector.
#X msg 20 307 color 57 600;
#X text 9 167 Change colors:;
#X obj 372 227 pd-colors;
#X msg 10 387 color;
#X text 10 367 Or send only the message "color" to open a color selector.
;
#X text 11 67 The colors follow the data structures color scheme. Look
at;
#X text 11 81 for a complete palette.;
#X text 11 97 If both color arguments are 0 \, default colors will
#X text 10 227 The colors follow the data structures color scheme.
Look at;
#X text 10 241 for a complete palette.;
#X text 10 257 If both color arguments are 0 \, default colors will
be used.;
#X obj 11 206 s \$0-country-i;
#X obj 11 277 s \$0-country-i;
#X msg 11 127 color 999 0;
#X text 91 127 default values;
#X text 11 47 \$1 = background color \, \$2 = label+border color;
#X text 11 27 Send the message "color \$1 \$2" to set the menu colors.
#X obj 10 347 s \$0-country-i;
#X obj 10 407 s \$0-country-i;
#X msg 10 287 color 999 0;
#X text 90 287 default values;
#X text 10 207 \$1 = background color \, \$2 = label+border color;
#X text 10 187 Send the message "color \$1 \$2" to set the menu colors.
;
#X msg 31 177 color 60 999;
#X text 11 297 !! Mind \, for "color" the object doesn't get saved
#X msg 30 327 color 60 999;
#X text 10 427 !! Mind \, for "color" the object doesn't get saved
with the new parameters !! You must edit the object itself.;
#X connect 0 0 8 0;
#X connect 3 0 9 0;
#X connect 10 0 8 0;
#X connect 14 0 8 0;
#X restore 138 290 pd color;
#X text 429 311 - load \$1 - load other configuration;
#X obj 19 151 jp.menu audio 85 13 \$0-aud;
#X text 12 376 The following limitations are built in to Pure Data:
#X connect 0 0 4 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 6 0 14 0;
#X connect 9 0 15 0;
#X connect 16 0 14 0;
#X connect 20 0 14 0;
#X restore 164 361 pd display;
#X text 14 361 Display configuration;
#N canvas 38 28 396 209 send/receive 0;
#X text 9 7 SEND/RECEIVE VARIABLES;
#X text 9 77 The variables are formated as:;
#X text 9 147 For example \, if the 3rd argument is "menusend" \, the
receive name will be "menusend-i". You can use also dollarsigns as
symbols: \$0 \, \$1 \, etc. \, as in the example in the main patch.
;
#X text 9 97 - the 4th argument gives the send name;
#X text 9 117 - the receive name adds "-i" to the 4th argument;
#X text 9 37 [jp.menu] lets you define an internal variable to use
with send and receive objects. You can send and receive any messages
to it.;
#X restore 164 341 pd send/receive;
#X text 14 341 Send/receive variables;
#X text 14 321 Select items;
#N canvas 500 61 386 239 select 0;
#X msg 22 91 next;
#X msg 32 111 previous;
#X floatatom 12 71 5 0 0 0 - - -;
#X text 12 7 To select an item;
#X text 12 27 You can send an integer to select an item. The strings
"next" and "previous" also move between the elements of the menu.;
#X text 12 167 The message "open" shows the full menu.;
#X msg 12 187 open;
#X obj 12 131 s \$0-country-i;
#X obj 12 207 s \$0-country-i;
#X connect 0 0 7 0;
#X connect 1 0 7 0;
#X connect 2 0 7 0;
#X connect 6 0 8 0;
#X restore 164 321 pd select;
#X text 12 456 - the size and font of the label can't be changed;
#X text 419 231 - next - outputs next item;
#X text 419 251 - previous - outputs previous item;
#X text 419 331 - color - open color selector;
#X text 419 371 - load \$1 - load other configuration from the same
folder;
#X obj 19 161 jp.menu audio;
#X text 438 81 - lenght (pixels) \, set to 100 if not used;
#X text 439 101 - height (pixels) \, set to 17 if not used;
#X obj 149 151 jp.menu country 100 22 \$0-country 89 9;
#N canvas 491 72 386 146 edit 0;
#X text 12 7 For now \, the only way to delete a preset is by editing
the text file with the data. At a later point \, it might be possible
to integrate editing features into this abstraction. For a more powerful
abstraction \, check out [jmmmp/jp.preset].;
#X restore 164 301 pd edit;
#X text 14 301 Edit presets;
#X connect 10 0 45 0;
#X connect 13 0 45 0;
#X connect 17 0 45 0;
#X connect 29 0 30 0;
#X connect 31 0 33 0;
#X connect 32 0 30 0;
#X connect 34 0 30 0;
#X connect 19 0 20 0;
#X connect 21 0 23 0;
#X connect 22 0 20 0;
#X connect 24 0 20 0;
#X connect 45 0 0 0;
This diff is collapsed.
#N struct 1036-color float x float y float farbe;
#N struct 1036-color-display float x float y float farbe;
#N struct 1039-color float x float y float farbe;
#N struct 1039-color-display float x float y float farbe;
#N struct 1034-element float x float y symbol menu float lenght float
height float selection float ypos float col-back float col-lab;
#N struct 1132-color float x float y float farbe;
#N struct 1132-color-display float x float y float farbe;
#N struct 1135-color float x float y float farbe;
#N struct 1135-color-display float x float y float farbe;
#N struct 1130-element float x float y symbol menu float lenght float
height float selection float ypos float col-back float col-lab;
#N canvas 217 63 770 565 10;
#N canvas 0 0 396 419 license 0;
#X text 8 47 All rights reserved.;
#X text 8 227 The names of its contributors may not be used to endorse
or promote products derived from this software without specific prior
written permission.;
#X text 8 87 Redistribution and use in source and binary forms \, with
or without modification \, are permitted provided that the following
conditions are met:;
#X text 8 127 Redistributions of source code must retain the above
copyright notice \, this list of conditions and the following disclaimer.
;
#X text 8 297 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT \, INDIRECT
\, INCIDENTAL \, SPECIAL \, EXEMPLARY \, OR CONSEQUENTIAL DAMAGES (INCLUDING
\, BUT NOT LIMITED TO \, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
;
#X text 8 167 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.
;
#X text 8 7 Copyright 2016 \, João Pais;
#X text 8 27 jmmmpais@gmail.com;
#X restore 411 536 pd license;
#X text 409 441 Outlets;
#X text 409 291 - bang - outputs current setting;
#N canvas 564 268 494 344 META 0;
#X text 12 95 LICENSE BSD;
#X text 12 75 LIBRARY jmmmp;
#X text 13 115 WEBSITE http://puredata.info/Members/jmmmp;
#X text 12 6 DESCRIPTION Dropdown menu programmed with data structures
;
#X text 12 36 KEYWORDS menu GOP data-structures;
#X text 12 55 AUTHOR João Pais <jmmmpais@gmail.com>;
#X text 12 135 VERSION 2016;
#X restore 501 536 pd META;
#X text 409 61 - name of configuration file;
#N canvas 403 54 381 365 configuration 0;
#X text 9 87 Name;
#X text 9 157 Content;
#X text 9 227 Load new file;
#X text 9 247 To load a new file \, send the message "load \$1" with
the symbol as argument.;
#X text 9 7 HOW TO FORMAT THE CONFIGURATION FILE FOR [jp.preset];
#X text 9 37 The configuration file must be a .txt file \, stored in
the same folder as the main patch where [jp.preset] is being used.
;
#X text 9 107 The file must be named jp.preset-NAME.txt.;
#X text 9 127 The NAME will be used as the first argument for [jp.preset].
;
#X text 9 177 The content consists of as many lines as items in the
menu. At the start of each line is the preset's label \, followed by
the parameters.;
#X msg 9 288 load test1;
#X msg 19 308 load test2;
#X obj 9 337 s \$0-test2-i;
#X connect 9 0 11 0;
#X connect 10 0 11 0;
#X restore 262 341 pd configuration;
#X text 410 516 (C) 2016 João Pais - jmmmpais@gmail.com;
#X text 409 211 - integer - select item number. From 0 upwards.;
#X obj 18 111 hradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X text 429 121 - identifier for receive/send names;
#X msg 28 131 open;
#X text 409 191 Input messages;
#X text 409 271 - open - opens full menu;
#X text 12 466 Limitations of data structures;
#X text 12 526 - the message "drawnumber_motion: symbol" appears in
the console when instead of clicking \, the user drags the menu;
#N canvas 204 57 396 209 send/receive 0;
#X text 9 7 SEND/RECEIVE VARIABLES;
#X text 9 77 The variables are formated as:;
#X text 9 147 For example \, if the 3rd argument is "menusend" \, the
receive name will be "menusend-i". You can use also dollarsigns as
symbols: \$0 \, \$1 \, etc. \, as in the example in the main patch.
;
#X text 9 37 [jp.preset] lets you define an internal variable to use
with send and receive objects. You can send and receive any messages
to it.;
#X text 9 97 - the 4th argument gives the send name;
#X text 9 117 - the receive name adds "-i" to the 4th argument;
#X restore 164 401 pd send/receive;
#X text 409 351 - color \$1 \$2 - change colors;
#X text 429 141 - background color;
#X text 429 161 - label / border color;
#X text 409 391 - size x y - change menu size;
#X text 12 486 The following limitations are built in to Pure Data:
;
#X obj 18 171 print PRESET;
#X msg 238 301 1 2 3;
#X obj 238 281 prepend set;
#X text 409 311 - save \$1 ... - replaces current preset;
#X text 409 331 - rename - open input window to rename current preset
;
#X text 409 371 - color - open color selector;
#X text 409 411 - load \$1 - load other configuration from the same
folder;
#X text 14 381 Select items;
#N canvas 500 61 386 239 select 0;
#X msg 22 91 next;
#X msg 32 111 previous;
#X floatatom 12 71 5 0 0 0 - - -;
#X text 12 7 To select an item;
#X text 12 27 You can send an integer to select an item. The strings
"next" and "previous" also move between the elements of the menu.;
#X text 12 167 The message "open" shows the full menu.;
#X msg 12 187 open;
#X obj 12 131 s \$0-test2-i;
#X obj 12 207 s \$0-test2-i;
#X connect 0 0 7 0;
#X connect 1 0 7 0;
#X connect 2 0 7 0;
#X connect 6 0 8 0;
#X restore 164 381 pd select;
#X text 409 231 - next - outputs next item;
#X text 409 251 - previous - outputs previous item;
#X text 14 401 Send/receive variables;
#N canvas 491 72 386 554 edit 0;
#X text 12 337 You can edit the configuration file in anyway you want.
Or you can use the GUI:;
#X text 12 387 - the name window appears \, you will be prompted to
give it a name;
#X text 12 417 - the new preset slot is created. You can write data
to it by sending the message "save \$1 ...";
#X text 12 367 - click the last preset slot \, called "NEW";
#X text 12 447 - the preset file is automatically saved after you add
some content to it.;
#X text 12 317 To add a new preset;
#X text 12 37 To write a preset;
#X text 12 57 - select a preset \, making it active;
#X text 12 77 - send the message "save \$1 ..." to [jp.preset]. It
overwrites the active preset and saves the file.;
#X text 12 207 - select a preset \, making it active;
#X text 12 227 - send the message "save \$1 ..." to [jp.preset]. It
overwrites the active preset and saves the file.;
#X text 12 187 To rename a preset;
#X msg 11 107 save ano soa apdp aospd;
#X msg 21 127 save 1 23 aa xpto -5;
#X msg 11 257 rename;
#X text 12 7 All content operations save the preset file immediately.
;
#X text 12 497 To delete a preset;
#X text 12 517 For now \, the only way to delete a preset is by editing
the text file with the data.;
#X obj 11 147 s \$0-test2-i;
#X obj 11 277 s \$0-test2-i;
#X connect 12 0 18 0;
#X connect 13 0 18 0;
#X connect 14 0 19 0;
#X restore 164 361 pd edit;
#X text 14 361 Edit presets;
#X text 14 421 Display configuration;
#N canvas 509 163 442 464 display 0;
#X msg 21 307 color 57 600;
#X text 10 167 Change colors:;
#X obj 373 227 pd-colors;
#X msg 11 387 color;
#X text 11 367 Or send only the message "color" to open a color selector.
;
#X text 11 227 The colors follow the data structures color scheme.
Look at;
#X text 11 241 for a complete palette.;
#X text 11 257 If both color arguments are 0 \, default colors will
be used.;
#X msg 11 287 color 999 0;
#X text 91 287 default values;
#X text 11 207 \$1 = background color \, \$2 = label+border color;
#X text 11 187 Send the message "color \$1 \$2" to set the menu colors.
;
#X msg 31 327 color 60 999;
#X text 11 427 !! Mind \, for "color" the object doesn't get saved
with the new parameters !! You must edit the object itself.;
#X msg 20 47 size 60 70;
#X msg 30 67 size 120 20;
#X msg 10 27 size 80 15;
#X text 10 7 Change menu size;
#X text 10 107 !! Mind \, for "size" the object doesn't get saved with
the new parameters !! You must edit the object itself.;
#X obj 10 87 s \$0-test2-i;
#X obj 11 347 s \$0-test2-i;
#X obj 11 407 s \$0-test2-i;
#X connect 0 0 20 0;
#X connect 3 0 21 0;
#X connect 8 0 20 0;
#X connect 12 0 20 0;
#X connect 14 0 19 0;
#X connect 15 0 19 0;
#X connect 16 0 19 0;
#X restore 164 421 pd display;
#X text 19 211 This object is controlled by the send/receive variables
defined as arguments.;
#X text 14 91 This preset has 4 items;
#X text 428 81 - lenght (pixels) \, set to 100 if not used;
#X text 429 101 - height (pixels) \, set to 17 if not used;
#X text 409 31 Arguments - Always use the first argument \, others
are facultative;
#X obj 138 261 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144
-1 -1 0;
#X text 139 241 Send:;
#X text 239 241 Receive:;
#X text 12 41 [jp.preset] can be used to store and recall lists of
values. You can connect it with another object \, or use configurable
send/receive variables.;
#X text 11 11 [jp.preset] - Dropdown preset saver programmed with data
structures;
#X text 409 461 - list of elements;
#X obj 18 151 jp.preset test1;
#X obj 138 281 s \$0-test2-i;
#X obj 238 261 r \$0-test2;
#X text 14 341 Formatting/loading a configuration file;
#X text 12 506 - the size and font of the label can't be changed;
#X obj 18 241 jp.preset test2 100 22 \$0-test2 89 9;
#X connect 8 0 48 0;
#X connect 10 0 48 0;
#X connect 23 0 22 0;
#X connect 42 0 49 0;
#X connect 48 0 21 0;
#X connect 50 0 23 0;
test1 1 2 3
test2 -1 -2 -3 -4 -5
test3 0.1 0.2 0.3 0.4
othertest a b 1 2 c 3 d e f -4 -5 -6
item1 1 2 3
something -1 -2 -3 -4 -5
else 0.1 0.2 0.3 0.4
list a b 1 2 c 3 d e f -4 -5 -6
a_symbol symb
\ No newline at end of file
#N struct 1036-color float x float y float farbe;
#N struct 1036-color-display float x float y float farbe;
#N struct 1039-color float x float y float farbe;
#N struct 1039-color-display float x float y float farbe;
#N canvas 558 47 375 250 10;
#X declare -stdlib zexy;
#N canvas 156 50 442 365 \$0-element 0;
#X obj 8 94 route click;
#X obj 35 134 tgl 15 0 \$0-open/close \$0-open/close-i empty 17 7 0
10 -262144 -1 -1 1 1;
#X obj 8 182 unpack pointer f;
#X obj 8 242 / 1;
#X obj 23 222 r \$0-ypos;
#X obj 8 262 outlet;
#X obj 8 152 spigot;
#X obj 8 114 t l b;
#X text 8 14 Data structures template and click interaction;
#X obj 8 202 get \$0-element ypos;
#X obj 8 44 struct \$0-element float x float y symbol menu float lenght
float height float selection float ypos float col-back float col-lab
;
#X obj 8 313 filledpolygon -v selection col-back col-lab 1 0 0 0 height
lenght height lenght 0;
#X obj 8 293 drawsymbol -v selection menu 4 2 col-lab;
#X connect 0 0 7 0;
#X connect 1 0 6 1;
#X connect 2 0 9 0;
#X connect 3 0 5 0;
#X connect 4 0 3 1;
#X connect 6 0 2 0;
#X connect 7 0 6 0;
#X connect 7 1 1 0;
#X connect 9 0 3 0;
#X connect 10 0 0 0;
#X restore 128 40 pd \$0-element;
#X obj 128 20 namecanvas \$0-menu;
#N canvas 800 113 691 659 patch 0;
#X msg 408 90 clear;
#X obj 408 110 s pd-\$0-paint;
#X obj 309 590 s pd-\$0-paint;
#X obj 357 150 symbol \$0-element;
#X obj 352 360 l2s;
#X obj 183 440 + 0;
#X obj 155 630 s \$0-menu;
#X msg 165 560 donecanvasdialog 1 1 2 0 0 \$3 \$2 \$3 \$2 0 0 \, dirty
0;
#X msg 8 480 0 \$1;
#X obj 350 250 0;
#X obj 8 420 r \$0-open/close;
#X obj 90 440 r \$0-ypos;
#X obj 198 420 r \$0-ypos;
#X obj 8 460 expr if ($f1 == 1 \, $f2 \, $f3);
#X msg 155 610 donecanvasdialog 1 -1 2 0 -1 1 1 \$3 \$2 0 0 \, dirty
0;
#X obj 309 470 * 1;
#X obj 309 380 f+ 0 1;
#X obj 401 430 s \$0-sellist;
#X obj 401 410 f;
#X text 22 10 Reads configuration file and creates the menu scalars.
;
#X msg 309 510 scalar \$2 0 0 \$3 \$4 \$5 0 \$1 \$6 \$7;
#X obj 496 270 sel 1;
#X obj 496 300 999;
#X obj 524 300 0;
#X text 496 210 Sets default colors;
#X obj 350 270 outlet;
#X obj 212 490 r \$0-lenght;
#X obj 309 340 t b a;
#X text 317 530 scalar parameters: x y menu lenght height selection
ypos col-back col-lab;
#X obj 173 400 r \$0-gop-height;
#X text 124 380 New height after "size";
#X obj 330 50 t b b;
#X obj 357 70 t b b b b;
#X obj 261 150 r \$0-load;
#X obj 261 170 t b s b;
#N canvas 133 417 276 172 path+file 0;
#X obj 12 106 list;
#X obj 12 46 t b b;
#X obj 12 26 inlet;
#X text 12 6 Gets path of parent patch and opens file;
#X obj 12 66 symbol jp.preset-\$1.txt;
#X msg 12 126 symbol \$2/\$1;
#X obj 12 146 s \$0-load;
#X obj 33 86 ggee/getdir 3;
#X connect 0 0 5 0;
#X connect 1 0 4 0;
#X connect 1 1 7 0;
#X connect 2 0 1 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 7 0 0 1;
#X restore 280 90 pd path+file;
#X obj 280 300 list split 1;
#X obj 280 230 msgfile;
#X obj 261 210 until;
#X msg 280 190 read \$1 cr \, rewind;
#X obj 303 35 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 401 290 symbol NEW;
#X obj 350 230 t b b b b;
#X obj 411 270 r \$0-addNEW;
#X obj 401 310 t b s;
#X obj 330 30 loadbang;
#X obj 496 230 pack \$5 \$6;
#X obj 496 250 expr if($i1 + $i2 == 0 \, 1 \, 0);
#X text 436 491 pack f s s \$2 \$3 \$5 \$6;
#X obj 309 490 pack f s s f f \$5 \$6;
#X obj 155 510 pack f f f;
#X obj 337 440 r \$0-ypos;
#X obj 367 470 r \$0-lenght;
#N canvas 75 90 370 149 dimensions 0;
#X obj 11 109 s \$0-ypos;
#X obj 11 39 inlet;
#X obj 11 69 f \$3;
#X obj 11 89 expr if($i1 == 0 \, 17 \, $i1);
#X text 11 9 Checks if arguments for lenght and height are there. If
not \, takes 100 + 17 as default values.;
#X obj 181 69 f \$2;
#X obj 181 89 expr if($i1 == 0 \, 100 \, $i1);
#X obj 181 109 s \$0-lenght;
#X connect 1 0 2 0;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X restore 391 130 pd dimensions;
#X connect 0 0 1 0;
#X connect 3 0 49 1;
#X connect 4 0 49 2;
#X connect 5 0 13 2;
#X connect 5 0 50 1;
#X connect 7 0 2 0;
#X connect 8 0 50 0;
#X connect 9 0 25 0;
#X connect 10 0 13 0;
#X connect 11 0 13 1;
#X connect 12 0 5 1;
#X connect 13 0 8 0;
#X connect 14 0 6 0;
#X connect 15 0 5 0;
#X connect 15 0 49 0;
#X connect 16 0 15 0;
#X connect 16 0 18 1;
#X connect 18 0 17 0;
#X connect 20 0 2 0;
#X connect 21 0 23 0;
#X connect 21 0 22 0;
#X connect 22 0 49 5;
#X connect 23 0 49 6;
#X connect 26 0 50 2;
#X connect 27 0 16 0;
#X connect 27 1 4 0;
#X connect 29 0 13 2;
#X connect 31 0 35 0;
#X connect 31 1 32 0;
#X connect 32 0 3 0;
#X connect 32 1 46 0;
#X connect 32 2 53 0;
#X connect 32 3 0 0;
#X connect 33 0 34 0;
#X connect 34 0 38 0;
#X connect 34 1 39 0;
#X connect 34 2 16 1;
#X connect 36 0 27 0;
#X connect 37 0 36 0;
#X connect 37 1 42 0;
#X connect 38 0 37 0;
#X connect 39 0 37 0;
#X connect 40 0 31 0;
#X connect 41 0 44 0;
#X connect 42 0 9 0;
#X connect 42 2 38 1;
#X connect 42 3 41 0;
#X connect 43 0 41 0;
#X connect 44 0 18 0;
#X connect 44 1 27 0;
#X connect 45 0 31 0;
#X connect 46 0 47 0;
#X connect 47 0 21 0;
#X connect 49 0 20 0;
#X connect 50 0 7 0;
#X connect 50 0 14 0;
#X connect 51 0 49 4;
#X connect 51 0 15 1;
#X connect 52 0 49 3;
#X restore 197 110 pd patch;
#X obj 138 70 inlet;
#X obj 128 180 outlet;
#N canvas 77 301 547 364 selection 0;
#X obj 234 22 inlet;
#X obj 301 212 symbol \$0-paint;
#X obj 301 272 pointer;
#X msg 252 252 next;
#X msg 301 232 traverse pd-\$1;
#X msg 265 102 1 0 0 0 0;
#X obj 364 122 * -1;
#X obj 225 232 t f b;
#X msg 158 212 1 1 1 1 1;
#X obj 297 62 outlet;
#X obj 265 82 t b f b b;
#X obj 225 332 set \$0-element selection y;
#X obj 396 162 s \$0-open/close-i;
#X obj 158 122 r \$0-open/close;
#X obj 158 182 t b b;
#X obj 158 142 t f f;
#X msg 396 142 1;
#X obj 301 312 expr if ($f2 == 0 \, $f1 \, 0);
#X obj 158 162 sel 0;
#X obj 14 48 r \$0-sellist;
#X msg 68 108 set \, add2 1;
#X obj 41 128 until;
#X msg 51 148 add2 1;
#X msg 41 168 add2 0;
#X obj 41 88 t f b;
#X obj 14 68 sel 0;
#N canvas 184 50 479 211 messages 0;
#X obj 11 27 inlet;
#X obj 11 107 outlet;
#X obj 170 177 outlet;
#X obj 11 87 0;
#N canvas 506 305 300 290 color 0;
#X obj 16 52 route bang;
#X obj 16 242 s pd-\$0-color-selector;
#X msg 16 222 vis 1;
#N canvas 423 741 518 243 \$0-color-selector 0;
#N canvas 298 464 528 328 color-sel-gui 0;
#X obj 12 59 ds-color-sel;
#X obj 12 154 ds-color-sel;
#X obj 425 25 bng 15 250 50 0 \$0-send-colors \$0-send-colors-i empty
17 7 0 10 -228856 -1 -1;
#X text 442 23 Send colors;
#X obj 12 258 pack s f f;
#X msg 12 238 symbol color;
#X obj 12 298 s \$0-color-reset;
#X msg 12 278 \$2 \$3;
#X text 12 41 Background color;
#X text 12 136 Label and border color;
#X text 12 13 Click the desired color for the fields \, and click the
"send" button when you're finished.;
#X connect 0 0 4 1;
#X connect 1 0 4 2;
#X connect 2 0 5 0;
#X connect 4 0 7 0;
#X connect 5 0 4 0;
#X connect 7 0 6 0;
#X coords 0 -1 1 1 506 217 2 10 10;
#X restore 5 14 pd color-sel-gui;
#X restore 16 262 pd \$0-color-selector;
#X obj 83 72 r \$0-color-reset;
#X obj 16 32 inlet;
#X msg 92 142 traverse \$1;
#X obj 92 122 symbol pd-\$0-paint;
#X obj 92 162 pointer \$0-element;
#X msg 54 142 next;
#X obj 54 122 until;
#X obj 92 202 set \$0-element col-back col-lab;
#X obj 92 182 list prepend;
#X obj 73 92 t b b a;
#X text 17 12 Sets color scheme;
#X connect 0 0 2 0;
#X connect 0 1 13 0;
#X connect 2 0 1 0;
#X connect 4 0 13 0;
#X connect 5 0 0 0;
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 12 0;
#X connect 8 2 10 1;
#X connect 9 0 8 0;
#X connect 10 0 9 0;
#X connect 12 0 11 0;
#X connect 13 0 10 0;
#X connect 13 1 7 0;
#X connect 13 2 12 1;
#X restore 100 107 pd color;
#N canvas 471 174 426 490 size 0;
#X obj 99 74 s pd-\$0-paint;
#X obj 82 114 s \$0-menu;
#X obj 48 14 inlet;
#X msg 99 54 donecanvasdialog 1 1 2 0 0 \$1 \$2 \$1 \$2 0 0 \, dirty
0;
#X msg 82 94 donecanvasdialog 1 -1 2 0 -1 1 1 \$1 \$2 0 0 \, dirty
0;
#X msg 65 374 traverse \$1;
#X obj 65 234 symbol pd-\$0-paint;
#X obj 65 394 pointer \$0-element;
#X msg 27 374 next;
#X obj 27 234 until;
#X obj 65 464 set \$0-element lenght height ypos;
#X obj 122 154 s \$0-ypos;
#X obj 65 134 unpack f f;
#X obj 65 174 s \$0-lenght;
#X obj 103 304 r \$0-ypos;
#X obj 88 324 * 1;
#X obj 88 284 f+ 0 1;
#X obj 48 204 t b b b a;
#X obj 27 254 t b b;
#X obj 65 424 pack p f f f;
#X msg 65 444 \$3 \$4 \$2 \$1;
#X obj 48 34 t l l l l;
#X obj 111 254 unpack f f;
#X obj 98 344 s \$0-gop-height;
#X connect 2 0 21 0;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
#X connect 7 0 19 0;
#X connect 7 2 9 1;
#X connect 8 0 7 0;
#X connect 9 0 18 0;
#X connect 12 0 13 0;
#X connect 12 1 11 0;
#X connect 14 0 15 1;
#X connect 15 0 19 1;
#X connect 15 0 23 0;
#X connect 16 0 15 0;
#X connect 17 0 9 0;
#X connect 17 1 6 0;
#X connect 17 2 16 1;
#X connect 17 3 22 0;
#X connect 18 0 8 0;
#X connect 18 1 16 0;
#X connect 19 0 20 0;
#X connect 20 0 10 0;
#X connect 21 0 17 0;
#X connect 21 1 12 0;
#X connect 21 2 4 0;
#X connect 21 3 3 0;
#X connect 22 0 19 2;
#X connect 22 1 19 3;
#X restore 126 87 pd size;
#N canvas 129 204 270 175 load 0;
#X obj 14 13 inlet;
#X msg 41 53 clear;
#X obj 41 73 s pd-\$0-paint;
#X obj 14 133 s \$0-load;
#X obj 14 33 t a b;
#X obj 14 93 symbol;
#X msg 14 113 symbol jp.preset-\$1.txt;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 4 0 5 0;
#X connect 4 1 1 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X restore 162 107 pd load;
#X text 12 7 Messages accepted by [jp.preset];
#X obj 57 157 outlet;
#N canvas 347 312 450 300 store 0;
#X obj 16 28 inlet;
#X text 67 28 guarda um outro preset \, primeiro envia-se o nr;
#X restore 297 21 pd store;
#N canvas 517 402 493 387 input 0;
#X obj 10 50 inlet;
#X obj 10 70 i;
#X obj 10 180 moses 0;
#X obj 49 200 moses;
#X obj 96 170 r \$0-sellist;
#X obj 106 200 + 1;
#X obj 29 330 outlet;
#X text 9 11 Filters selection input. Selecting last element creates
new preset.;
#X obj 79 220 moses;
#X msg 106 240 Error - outside preset range;
#X obj 106 260 print jp.preset-\$1;
#X msg 98 320 vis 1;
#X obj 98 340 s pd-RENAME-\$0;
#X text 138 289 clicking on "NEW" selects it \, renames it and makes
a new "NEW" preset;
#X obj 79 290 t b b f;
#X obj 79 360 s \$0-addNEW;
#X obj 70 50 inlet;
#X obj 210 50 inlet;
#X obj 70 100 +;
#X obj 70 70 1;
#X obj 210 100 +;
#X obj 210 70 -1;
#X obj 210 120 moses 0;
#X obj 70 120 moses 0;
#X obj 109 100 r \$0-sellist;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 18 1;
#X connect 1 0 20 1;
#X connect 2 0 9 0;
#X connect 2 1 3 0;
#X connect 3 0 6 0;
#X connect 3 1 8 0;
#X connect 4 0 5 0;
#X connect 4 0 3 1;
#X connect 5 0 8 1;
#X connect 8 0 14 0;
#X connect 8 1 9 0;
#X connect 9 0 10 0;
#X connect 11 0 12 0;
#X connect 14 0 15 0;
#X connect 14 1 11 0;
#X connect 14 2 6 0;
#X connect 16 0 19 0;
#X connect 17 0 21 0;
#X connect 18 0 23 0;
#X connect 19 0 18 0;
#X connect 20 0 22 0;
#X connect 21 0 20 0;
#X connect 22 0 9 0;
#X connect 22 1 1 0;
#X connect 23 0 1 0;
#X connect 23 1 9 0;
#X connect 24 0 23 1;
#X restore 57 127 pd input;
#N canvas 56 193 582 437 edit 0;
#X obj 61 307 outlet;
#X obj 37 137 r \$0-load;
#X msg 37 157 read \$1 cr;
#X obj 27 267 list split 1;
#X obj 27 247 msgfile;
#X msg 27 117 goto \$1 \, this;
#X obj 206 117 list prepend;
#X obj 206 137 list prepend replace;
#X obj 206 157 list trim;
#X obj 179 177 symbol;
#X msg 179 197 write \$1 cr;
#X obj 179 97 t b l;
#X obj 61 287 demux 0 1;
#X obj 356 247 1;
#X msg 322 267 this;
#X obj 305 227 t b b s b;
#X obj 305 247 0;
#X obj 454 337 symbol \$0-paint;
#X obj 454 377 pointer;
#X msg 405 357 next;
#X msg 454 357 traverse pd-\$1;
#X obj 295 397 set -symbol \$0-element menu;
#X obj 405 337 until;
#X obj 405 317 + 1;
#X obj 405 297 t f b;
#N canvas 494 50 387 83 RENAME-\$0 0;
#X symbolatom 9 56 50 0 0 0 - #0-renamesymb-i #0-renamesymb;
#X text 8 6 Click on the field below to input the new name for the
current preset. Must be a symbol (in one word) \, with any characters.
To finish typing \, press return.;
#X restore 395 267 pd RENAME-\$0;
#X obj 295 197 r \$0-renamesymb;
#X msg 395 227 vis 1;
#X obj 395 247 s pd-RENAME-\$0;
#X msg 435 227 vis 0;
#X obj 27 357 s \$0-renamesymb-i;
#X msg 27 337 set \$1;
#X text 70 337 updates name window;
#X obj 27 57 inlet;
#X text 7 97 stores file for edition;
#X obj 179 57 inlet;
#X text 178 37 saves preset;
#X obj 395 197 inlet;
#X text 324 177 renames preset;
#X text 28 17 Commands for edition \, saving \, rename;
#X obj 179 77 list prepend list;
#X text 231 57 to make sure that lists beginning with symbols are read
;
#X msg 228 315 add \$1;
#X connect 1 0 2 0;
#X connect 1 0 9 1;
#X connect 2 0 4 0;
#X connect 3 0 6 1;
#X connect 3 0 31 0;
#X connect 3 1 12 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X connect 11 0 9 0;
#X connect 11 1 6 0;
#X connect 12 0 0 0;
#X connect 12 1 11 0;
#X connect 13 0 12 1;
#X connect 14 0 4 0;
#X connect 15 0 16 0;
#X connect 15 1 14 0;
#X connect 15 2 6 1;
#X connect 15 3 13 0;
#X connect 16 0 12 1;
#X connect 17 0 20 0;
#X connect 18 0 21 1;
#X connect 19 0 18 0;
#X connect 20 0 18 0;
#X connect 22 0 19 0;
#X connect 23 0 22 0;
#X connect 24 0 23 0;
#X connect 24 1 17 0;
#X connect 26 0 15 0;
#X connect 26 0 21 0;
#X connect 26 0 29 0;
#X connect 27 0 28 0;
#X connect 29 0 28 0;
#X connect 31 0 30 0;
#X connect 33 0 5 0;
#X connect 33 0 24 0;
#X connect 35 0 40 0;
#X connect 37 0 27 0;
#X connect 40 0 11 0;
#X restore 170 157 pd edit;
#X obj 11 47 route open float bang color size load save rename store
next previous;
#X msg 338 80 Error: wrong command;
#X obj 338 100 print jp.preset-\$1;
#X connect 0 0 12 0;
#X connect 3 0 1 0;
#X connect 10 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 2 0;
#X connect 12 0 3 0;
#X connect 12 1 10 0;
#X connect 12 2 10 0;
#X connect 12 3 4 0;
#X connect 12 4 5 0;
#X connect 12 5 6 0;
#X connect 12 6 11 1;
#X connect 12 7 11 2;
#X connect 12 9 10 1;
#X connect 12 10 10 2;
#X connect 12 11 13 0;
#X connect 13 0 14 0;
#X restore 234 42 pd messages;
#X obj 301 292 get \$0-element ypos menu;
#X obj 314 22 inlet;
#X obj 265 142 list-abs/list-rot;
#X obj 265 162 list-abs/list-drip;
#X connect 0 0 26 0;
#X connect 1 0 4 0;
#X connect 2 0 11 2;
#X connect 2 0 27 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 29 0;
#X connect 6 0 29 1;
#X connect 7 0 11 0;
#X connect 7 1 3 0;
#X connect 8 0 30 0;
#X connect 10 0 5 0;
#X connect 10 1 6 0;
#X connect 10 2 1 0;
#X connect 10 3 16 0;
#X connect 13 0 15 0;
#X connect 14 0 8 0;
#X connect 14 1 1 0;
#X connect 15 0 18 0;
#X connect 15 1 17 1;
#X connect 16 0 12 0;
#X connect 17 0 11 1;
#X connect 18 0 14 0;
#X connect 19 0 25 0;
#X connect 20 0 5 0;
#X connect 20 0 8 0;
#X connect 21 0 22 0;
#X connect 21 0 23 0;
#X connect 22 0 8 0;
#X connect 23 0 5 0;
#X connect 24 0 21 0;
#X connect 24 1 20 0;
#X connect 25 1 24 0;
#X connect 26 0 12 0;
#X connect 26 1 10 0;
#X connect 26 2 9 0;
#X connect 27 0 17 0;
#X connect 28 0 10 0;
#X connect 29 0 30 0;
#X connect 30 0 7 0;
#X restore 128 130 pd selection;
#X obj 147 90 receive \$4-i;
#X obj 137 160 send \$4;
#N canvas 125 353 450 300 \$0-paint 0;
#X coords 0 0 100 17 100 17 2 0 0;
#X restore 0 0 pd \$0-paint;
#N canvas 322 55 450 240 zutun 0;
#X text 26 18 ## ver questoes em aberto em jp.menu;
#X text 28 48 suggestion for commands;
#X text 28 68 - reload;
#X text 28 108 - flush (right outlet);
#X text 28 88 - delete;
#X text 28 128 - close (oposto de open);
#X text 28 148 - enviar comandos através do ficheiro de config (tamanho
\, cor \, etc);
#X restore 248 180 pd zutun;
#X obj 128 201 declare -stdlib zexy;
#X connect 0 0 5 0;
#X connect 2 0 5 1;
#X connect 3 0 5 0;
#X connect 5 0 4 0;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
#X coords 0 -1 1 1 100 17 2 0 0;