├── .gitignore
├── .gitmodules
├── Hoa.xcodeproj
├── project.pbxproj
└── project.xcworkspace
│ └── contents.xcworkspacedata
├── LICENSE.txt
├── Makefile.am
├── Package
└── Hoa
│ ├── Hoa-help.pd
│ ├── LICENSE.txt
│ ├── Makefile.am
│ ├── README.txt
│ ├── changelog.txt
│ ├── helps
│ ├── Makefile.am
│ ├── hoa.2d.decoder~-help.pd
│ ├── hoa.2d.encoder~-help.pd
│ ├── hoa.2d.exchanger~-help.pd
│ ├── hoa.2d.map~-help.pd
│ ├── hoa.2d.meter~-help.pd
│ ├── hoa.2d.optim~-help.pd
│ ├── hoa.2d.projector~-help.pd
│ ├── hoa.2d.recomposer~-help.pd
│ ├── hoa.2d.rotate~-help.pd
│ ├── hoa.2d.scope~-help.pd
│ ├── hoa.2d.space-help.pd
│ ├── hoa.2d.wider~-help.pd
│ ├── hoa.3d.decoder~-help.pd
│ ├── hoa.3d.encoder~-help.pd
│ ├── hoa.3d.exchanger~-help.pd
│ ├── hoa.3d.map~-help.pd
│ ├── hoa.3d.meter~-help.pd
│ ├── hoa.3d.optim~-help.pd
│ ├── hoa.3d.scope~-help.pd
│ ├── hoa.3d.wider~-help.pd
│ ├── hoa.connect-help.pd
│ ├── hoa.dac~-help.pd
│ ├── hoa.fx.convolve~-help.pd
│ ├── hoa.fx.delay~-help.pd
│ ├── hoa.fx.dephaser~-help.pd
│ ├── hoa.fx.freeverb~-help.pd
│ ├── hoa.fx.gain~-help.pd
│ ├── hoa.fx.mirror~-help.pd
│ ├── hoa.fx.ringmod~-help.pd
│ ├── hoa.io-help.pd
│ ├── hoa.map-help.pd
│ ├── hoa.pi-help.pd
│ ├── hoa.pi~-help.pd
│ ├── hoa.process~-help.pd
│ ├── hoa.syn.delay~-help.pd
│ ├── hoa.syn.grain~-help.pd
│ ├── hoa.syn.ringmod~-help.pd
│ └── hoa.thisprocess~-help.pd
│ ├── media
│ ├── Chapel.wav
│ ├── Cistern.wav
│ ├── Makefile.am
│ └── SmallRoom.wav
│ ├── misc
│ ├── Makefile.am
│ ├── hoa.2d.txt
│ ├── hoa.3d.txt
│ ├── hoa.args.map.pd
│ ├── hoa.common.txt
│ ├── hoa.help.also.pd
│ ├── hoa.help.header.pd
│ ├── hoa.help.pub.pd
│ ├── hoa.ioexample~.pd
│ ├── hoa.mode.sel.pd
│ ├── hoa.objects.txt
│ ├── hoa.process.display.pd
│ ├── hoa.process.txt
│ ├── hoa.processexample.pd
│ ├── hoa.procexample~.pd
│ ├── hoa.pw.2d.dec~.pd
│ ├── hoa.pw.3d.dec~.pd
│ ├── hoa.soundcoat.pd
│ ├── hoa.soundgrain.pd
│ ├── hoa.soundrone.pd
│ ├── hoa.thisprocexample2~.pd
│ ├── hoa.thisprocexample~.pd
│ ├── hoa.tri~.pd
│ ├── hoa.tuto.gain~.pd
│ ├── hoa.tuto.header.pd
│ ├── hoa.tuto.txt
│ ├── hoa.tutos.txt
│ └── logo.gif
│ ├── patchers
│ ├── Makefile.am
│ ├── hoa.fx.2d.decoder~.pd
│ ├── hoa.fx.2d.rotate~.pd
│ ├── hoa.fx.convolve~.pd
│ ├── hoa.fx.delay2~.pd
│ ├── hoa.fx.delay~.pd
│ ├── hoa.fx.dephaser~.pd
│ ├── hoa.fx.freeverb~.pd
│ ├── hoa.fx.gain~.pd
│ ├── hoa.fx.mirror~.pd
│ ├── hoa.fx.optim~.pd
│ ├── hoa.fx.ringmod~.pd
│ ├── hoa.fx.sum~.pd
│ ├── hoa.fx.wider~.pd
│ ├── hoa.syn.2d.encoder~.pd
│ ├── hoa.syn.3d.encoder~.pd
│ ├── hoa.syn.delay~.pd
│ ├── hoa.syn.grain~.pd
│ └── hoa.syn.ringmod~.pd
│ └── tutorials
│ ├── Makefile.am
│ ├── Tutorial_1.pd
│ ├── Tutorial_10.pd
│ ├── Tutorial_2.pd
│ ├── Tutorial_3.pd
│ ├── Tutorial_4.pd
│ ├── Tutorial_5.pd
│ ├── Tutorial_6.pd
│ ├── Tutorial_7.pd
│ ├── Tutorial_8.pd
│ ├── Tutorial_9.pd
│ ├── hoa.tools.2d.pd
│ └── hoa.tools.3d.pd
├── README.md
├── Sources
├── Makefile.am
├── hoa.decoder_tilde.cpp
├── hoa.encoder_tilde.cpp
├── hoa.exchanger_tilde.cpp
├── hoa.io.cpp
├── hoa.map_gui.cpp
├── hoa.map_tilde.cpp
├── hoa.meter_gui_tilde.cpp
├── hoa.optim_tilde.cpp
├── hoa.process_tilde.cpp
├── hoa.projector_tilde.cpp
├── hoa.recomposer_tilde.cpp
├── hoa.rotate_tilde.cpp
├── hoa.scope_gui_tilde.cpp
├── hoa.space_gui.cpp
├── hoa.tools.cpp
└── hoa.wider_tilde.cpp
├── autogen.sh
├── config
└── .gitignore
├── configure.ac
├── hoa.library.cbp
├── hoa.library.cpp
├── hoa.library.depend
├── hoa.library.hpp
├── hoa.library.layout
├── hoa.library.sln
├── hoa.library.vcxproj
├── hoa.library.vcxproj.filters
└── m4
└── .gitignore
/.gitignore:
--------------------------------------------------------------------------------
1 | #################
2 | ## PURE DATA
3 | #################
4 |
5 | *.dll
6 | *.pd_darwin
7 | *.pd_linux
8 |
9 | #################
10 | ## Visual Studio
11 | #################
12 |
13 | *.amplxeproj
14 | *.tlog
15 | *.obj
16 | *.log
17 | *.idb
18 | *.pdb
19 | *.lastbuildstate
20 | *.ipch
21 | *.opensdf
22 | *.sdf
23 | *.user
24 | *.suo
25 | *.cache
26 | *.unsuccessfulbuild
27 | *.ilk
28 | *.rc
29 | *.manifest
30 | *.res
31 |
32 | sysbuild/
33 |
34 | #################
35 | ## XCode
36 | #################
37 |
38 | xcuserdata/
39 | xcshareddata/
40 |
41 | *.build/
42 | *.gcda
43 |
44 | # Mac crap
45 | .DS_Store
46 |
47 | *.mode1V3
48 | *.pbxuser
49 |
50 |
51 | # backup copies
52 | *~
53 |
54 | # archive
55 | *.tar.gz
56 |
57 | # build products
58 | *.la
59 | *.a
60 | *.lo
61 | *.o
62 | *.so
63 | *.pd_darwin
64 | *.pd_linux
65 | *.l_ia64
66 | *.l_i386
67 | *.dll
68 | .deps
69 | .libs
70 | *.lib
71 |
72 | #################
73 | ## automake files
74 | #################
75 | Makefile
76 | Makefile.in
77 | cream-meta.pd
78 | README.txt
79 | config/*
80 | configure
81 | config.status
82 | libtool
83 | aclocal.m4
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "ThirdParty/CicmWrapper"]
2 | path = ThirdParty/CicmWrapper
3 | url = https://pierreguillot@github.com/CICM/CicmWrapper.git
4 | [submodule "ThirdParty/HoaLibrary"]
5 | path = ThirdParty/HoaLibrary
6 | url = https://pierreguillot@github.com/CICM/HoaLibrary-Light.git
7 |
--------------------------------------------------------------------------------
/Hoa.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 | ACLOCAL_AMFLAGS = -I m4
3 |
4 | pkglib_LTLIBRARIES = Hoa.la
5 |
6 | Hoa_la_CXXFLAGS = @PD_CPPFLAGS@ -s -O3 -fPIC -fpermissive -std=c++11
7 | Hoa_la_LDFLAGS = -module -avoid-version -shared -shrext .@EXTENSION@ @PD_LDFLAGS@ -fPIC
8 | Hoa_la_LIBADD = Sources/libHoapd.la
9 | Hoa_la_LIBADD += ThirdParty/CicmWrapper/Sources/libCicmWrapper.la
10 |
11 | Hoa_la_SOURCES = hoa.library.hpp \
12 | hoa.library.cpp
13 |
14 | ALL_CFLAGS = -I"$(PD_INCLUDE)"
15 |
16 | Hoadir=$(pkglibdir)
17 |
18 | dist_Hoa_DATA = \
19 | LICENSE.txt \
20 | README.txt
21 |
22 | EXTRA_DIST = autogen.sh
23 |
24 | DISTDIR=$(PACKAGE_NAME)-$(PACKAGE_VERSION)
25 | ORIGDIR=pd-$(PACKAGE_NAME)_$(PACKAGE_VERSION)
26 | OS=$(shell uname -s)
27 | DISTBINDIR=$(DISTDIR)-$(OS)
28 |
29 | SUBDIRS= Sources
30 | SUBDIRS+= ThirdParty/CicmWrapper
31 | SUBDIRS+= Package/Hoa
32 |
33 | $(abs_builddir)/.libs/Hoa.@EXTENSION@: Hoa.la
34 |
35 | $(top_builddir)/Hoa.@EXTENSION@: $(abs_builddir)/.libs/Hoa.@EXTENSION@
36 | rm -f $@ && cd $(top_builddir) && test -e $< && $(LN_S) $< Hoa.@EXTENSION@ || true
37 |
38 | .PHONY: clean-conveniencelink help
39 |
40 | clean-conveniencelink:
41 | test -L $(top_builddir)/Hoa.@EXTENSION@ && rm -f $(top_builddir)/Hoa.@EXTENSION@ || true
42 |
43 |
44 | all-local:: $(top_builddir)/Hoa.@EXTENSION@ help
45 |
46 | clean-local:: clean-conveniencelink
47 |
48 | README.txt:
49 | cp README.md README.txt
50 |
--------------------------------------------------------------------------------
/Package/Hoa/Hoa-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 539 58 438 587 10;
2 | #X obj 14 21 c.patcherinfos;
3 | #X obj 19 4 loadbang;
4 | #X obj 3 3 hoa.help.header;
5 | #X obj 24 518 hoa.help.pub;
6 | #X obj 5 156 c.tab @size 398 36 @fontname "Monaco" @fontweight "normal"
7 | @fontslant "roman" @fontsize 13 @receive "(null)" @send "(null)" @presetname
8 | "(null)" @orientation 0 @toggle 1 @items "2d" "3d" "common" "process"
9 | "tutos" @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
10 | 0 0 0 1 @hocolor 0.5 0.5 0.5 1 @secolor 0.35 0.35 0.35 1;
11 | #X obj 5 196 c.tab @size 398 264 @fontname "Monaco" @fontweight "normal"
12 | @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)" @presetname
13 | "(null)" @orientation 1 @toggle 0 @items "hoa.2d.decoder~" "hoa.2d.encoder~"
14 | "hoa.2d.map~" "hoa.2d.meter~" "hoa.2d.optim~" "hoa.2d.projector~" "hoa.2d.recomposer~"
15 | "hoa.2d.rotate~" "hoa.2d.scope~" "hoa.2d.space" "hoa.2d.wider~" @bgcolor
16 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1 @hocolor
17 | 0.5 0.5 0.5 1 @secolor 0.35 0.35 0.35 1;
18 | #N canvas 809 275 452 384 sel.hoa.txt 0;
19 | #X obj -556 -387 unpack s s;
20 | #X msg -394 -362 clear;
21 | #X obj -592 -600 inlet;
22 | #X obj -499 -336 outlet;
23 | #X obj -556 -443 c.prepend read;
24 | #X obj -556 -413 textfile;
25 | #X obj -590 -530 until;
26 | #X msg -573 -498 rewind;
27 | #X obj -590 -572 t b b s b;
28 | #X obj -556 -466 makefilename hoa.%s.txt;
29 | #X obj -499 -363 c.prepend append;
30 | #X connect 0 1 10 0;
31 | #X connect 1 0 3 0;
32 | #X connect 2 0 8 0;
33 | #X connect 4 0 5 0;
34 | #X connect 5 0 0 0;
35 | #X connect 5 1 6 1;
36 | #X connect 6 0 5 0;
37 | #X connect 7 0 5 0;
38 | #X connect 8 0 6 0;
39 | #X connect 8 1 7 0;
40 | #X connect 8 2 9 0;
41 | #X connect 8 3 1 0;
42 | #X connect 9 0 4 0;
43 | #X connect 10 0 3 0;
44 | #X restore 284 263 pd sel.hoa.txt;
45 | #N canvas 672 99 691 357 sel.hoa.text2 0;
46 | #X obj -326 -135 list split 1;
47 | #X obj -292 -115 list split 1;
48 | #X obj -467 -385 inlet;
49 | #X obj -258 -62 outlet;
50 | #X obj -467 -363 route -1;
51 | #X obj -328 -380 inlet;
52 | #X obj -326 -223 c.prepend read;
53 | #X obj -326 -193 textfile;
54 | #X obj -326 -352 t s b;
55 | #X obj -422 -286 until;
56 | #X msg -356 -298 rewind;
57 | #X obj -326 -160 spigot 0;
58 | #X obj -422 -218 f 0;
59 | #X obj -383 -217 + 1;
60 | #X obj -422 -194 ==;
61 | #X msg -384 -250 0;
62 | #X obj -422 -310 + 1;
63 | #X obj -433 -241 t b b;
64 | #X obj -326 -246 makefilename hoa.%s.txt;
65 | #X obj -258 -92 c.prepend text 10 10;
66 | #X msg -126 -92 clear;
67 | #X obj -422 -336 t f f b b;
68 | #X connect 0 1 1 0;
69 | #X connect 1 1 19 0;
70 | #X connect 2 0 4 0;
71 | #X connect 4 1 21 0;
72 | #X connect 5 0 8 0;
73 | #X connect 6 0 7 0;
74 | #X connect 7 0 11 0;
75 | #X connect 8 0 18 0;
76 | #X connect 8 1 20 0;
77 | #X connect 9 0 17 0;
78 | #X connect 10 0 7 0;
79 | #X connect 11 0 0 0;
80 | #X connect 12 0 13 0;
81 | #X connect 12 0 14 0;
82 | #X connect 13 0 12 1;
83 | #X connect 14 0 11 1;
84 | #X connect 15 0 12 1;
85 | #X connect 16 0 9 0;
86 | #X connect 17 0 7 0;
87 | #X connect 17 1 12 0;
88 | #X connect 18 0 6 0;
89 | #X connect 19 0 3 0;
90 | #X connect 20 0 3 0;
91 | #X connect 21 0 16 0;
92 | #X connect 21 1 14 1;
93 | #X connect 21 1 15 0;
94 | #X connect 21 2 10 0;
95 | #X connect 21 3 20 0;
96 | #X restore 136 331 pd sel.hoa.text2;
97 | #N canvas 514 160 694 586 hoa.open.hel 0;
98 | #X obj 371 248 makefilename %s-help.pd;
99 | #X obj 371 281 pack s s;
100 | #X obj 398 208 c.patcherinfos;
101 | #X obj 371 187 t s b;
102 | #X msg 371 308 \; pd open \$1 \$2;
103 | #X obj 438 228 makefilename %s/helps;
104 | #X obj 216 19 inlet;
105 | #X obj 96 356 pack s s;
106 | #X obj 143 213 c.patcherinfos;
107 | #X msg 96 383 \; pd open \$1 \$2;
108 | #X obj 183 233 makefilename %s/tutorials;
109 | #X obj 16 30 sel tutos;
110 | #X obj 16 10 inlet;
111 | #X obj 96 168 spigot 0;
112 | #X obj 371 163 spigot 1;
113 | #X obj 16 72 f 1;
114 | #X obj 67 72 f 0;
115 | #X obj 42 72 f 0;
116 | #X obj 94 72 f 1;
117 | #X obj 67 50 bang;
118 | #X msg 74 286 hoa.tools.2d.pd;
119 | #X obj 146 19 inlet;
120 | #X obj 96 192 t f b;
121 | #X msg 235 302 hoa.tools.3d.pd;
122 | #X obj 53 323 makefilename Tutorial_%d.pd;
123 | #X obj 53 233 + 1;
124 | #X obj 114 253 sel 11 12;
125 | #X connect 0 0 1 0;
126 | #X connect 1 0 4 0;
127 | #X connect 2 1 5 0;
128 | #X connect 3 0 0 0;
129 | #X connect 3 1 2 0;
130 | #X connect 5 0 1 1;
131 | #X connect 6 0 14 0;
132 | #X connect 7 0 9 0;
133 | #X connect 8 1 10 0;
134 | #X connect 10 0 7 1;
135 | #X connect 11 0 15 0;
136 | #X connect 11 0 17 0;
137 | #X connect 11 1 19 0;
138 | #X connect 12 0 11 0;
139 | #X connect 13 0 22 0;
140 | #X connect 14 0 3 0;
141 | #X connect 15 0 13 1;
142 | #X connect 16 0 13 1;
143 | #X connect 17 0 14 1;
144 | #X connect 18 0 14 1;
145 | #X connect 19 0 16 0;
146 | #X connect 19 0 18 0;
147 | #X connect 20 0 7 0;
148 | #X connect 21 0 13 0;
149 | #X connect 22 0 25 0;
150 | #X connect 22 1 8 0;
151 | #X connect 23 0 7 0;
152 | #X connect 24 0 7 0;
153 | #X connect 25 0 26 0;
154 | #X connect 26 0 20 0;
155 | #X connect 26 1 23 0;
156 | #X connect 26 2 24 0;
157 | #X restore 220 420 pd hoa.open.hel;
158 | #X obj 6 173 c.loadmess 0;
159 | #X obj 5 464 c.blackboard @size 398 39 @fontname "Monaco" @fontweight
160 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
161 | @chalkmode 0 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1;
162 | #X text 4 47 Hoa Library allows musicians and composers to synthesize
163 | \, transform and render sound fields in a creative and artistic way.
164 | This library facilitates the understanding and the appropriation of
165 | key concepts of Ambisonics. Thanks to original graphical interfaces
166 | a lot of new signal processings are allowed like diffuse sound field
167 | synthesis \, perspective distorsion or spatial filtering.;
168 | #X connect 0 0 2 0;
169 | #X connect 1 0 0 0;
170 | #X connect 4 1 6 0;
171 | #X connect 4 1 7 1;
172 | #X connect 4 1 8 0;
173 | #X connect 5 0 8 1;
174 | #X connect 5 1 8 2;
175 | #X connect 5 2 7 0;
176 | #X connect 6 0 5 0;
177 | #X connect 7 0 10 0;
178 | #X connect 9 0 4 0;
179 | #X coords 0 -2.14748e+09 1 -2.14748e+09 100 60 0;
180 |
--------------------------------------------------------------------------------
/Package/Hoa/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 |
3 | SUFFIXES = .pd
4 |
5 | hoa.librarydir=$(pkglibdir)
6 |
7 | dist_hoa.library_DATA = Hoa-help.pd
8 |
9 | SUBDIRS=helps media misc patchers tutorials
10 |
--------------------------------------------------------------------------------
/Package/Hoa/README.txt:
--------------------------------------------------------------------------------
1 | ## [HOA](http://www.mshparisnord.fr/hoalibrary/ "Hoa Library") for Pure Data
2 |
3 | 
4 |
5 | ### Compatibilty :
6 |
7 | The lastest release has been tested [Pure Data Vanilla](http://msp.ucsd.edu/software.html "PD-Vanilla") (0.46.6 - 32/64 bits) & [Pure Data Extended](https://puredata.info/ "PD-Extended") (0.43.4) on Linux, Mac Os, Windows .
8 |
9 | ### Installation :
10 |
11 | With Pure Data Vanilla, copy the Hoa folder in your package folder and add hoa in the PD's statup window if you use the default package folder\*, otherwise add Hoa/hoa.
12 |
13 | With Pure Data Extended, copy the Hoa folder in your package folder and add -lib externals/Hoa in the statup falgs if you use the default package folder\*, otherwise add -lib Hoa/Hoa.
14 |
15 | \* The default package folder are generally /usr/local/lib/pd-externals on Linux, /Library/Pd on Mac Os and C:\Program Files\Common Files\Pd on Windows.
16 |
17 | __Important__ : The Hoa library needs the [Cream library](https://github.com/CICM/CreamLibrary "Cream") to work properly.
18 |
19 | ### Documentation :
20 |
21 | Helps and tutorials are availables in the Hoa folder of the help browser.
22 |
23 | ### Compilation :
24 |
25 | ./autogen.sh (if needed)
26 | ./configure (useful options --with-pd=)
27 | make
28 | make install (optional)
29 |
30 | XCode, CodeBlock and Visual Studio projects are also available.
31 |
32 | ### Dependencies :
33 |
34 | [Hoa Library](https://github.com/CICM/HoaLibrary-Light "Hoa Library") & the [Cicm Wrapper](https://github.com/CICM/CicmWrapper "Cicm Wrapper").
35 |
36 | ### Authors :
37 |
38 | Pierre Guillot
39 | Eliott Paris
40 | Thomas Le Meur
41 | Julien Colafrancesco
42 |
43 | ### Licence :
44 |
45 | The HOA Library in under the GNU Public License. If you'd like to avoid the restrictions of the GPL and use Hoa Library for a closed-source product, you contact the CICM.
46 |
--------------------------------------------------------------------------------
/Package/Hoa/changelog.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CICM/HoaLibrary-PD/5eb00099eb25ab2e146dbb498b3dddc6411fc602/Package/Hoa/changelog.txt
--------------------------------------------------------------------------------
/Package/Hoa/helps/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 |
3 | SUFFIXES = .pd
4 |
5 | hoa.libraryhelpdir=$(pkglibdir)/helps
6 |
7 | dist_hoa.libraryhelp_DATA = \
8 | hoa.3d.scope~-help.pd \
9 | hoa.3d.wider~-help.pd \
10 | hoa.connect-help.pd \
11 | hoa.dac~-help.pd \
12 | hoa.2d.decoder~-help.pd \
13 | hoa.fx.convolve~-help.pd \
14 | hoa.2d.encoder~-help.pd \
15 | hoa.fx.delay~-help.pd \
16 | hoa.2d.map~-help.pd \
17 | hoa.fx.freeverb~-help.pd \
18 | hoa.2d.meter~-help.pd \
19 | hoa.fx.gain~-help.pd \
20 | hoa.2d.optim~-help.pd \
21 | hoa.fx.mirror~-help.pd \
22 | hoa.2d.projector~-help.pd \
23 | hoa.fx.ringmod~-help.pd \
24 | hoa.2d.recomposer~-help.pd \
25 | hoa.io-help.pd \
26 | hoa.2d.rotate~-help.pd \
27 | hoa.map-help.pd \
28 | hoa.2d.scope~-help.pd \
29 | hoa.pi-help.pd \
30 | hoa.2d.space-help.pd \
31 | hoa.pi~-help.pd \
32 | hoa.2d.wider~-help.pd \
33 | hoa.process~-help.pd \
34 | hoa.3d.decoder~-help.pd \
35 | hoa.syn.delay~-help.pd \
36 | hoa.3d.encoder~-help.pd \
37 | hoa.3d.map~-help.pd \
38 | hoa.syn.grain~-help.pd \
39 | hoa.3d.meter~-help.pd \
40 | hoa.syn.ringmod~-help.pd \
41 | hoa.3d.optim~-help.pd \
42 | hoa.thisprocess~-help.pd \
43 | hoa.3d.exchanger~-help.pd \
44 | hoa.2d.exchanger~-help.pd
45 |
46 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.2d.encoder~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 345 36 735 641 10;
2 | #X obj 437 77 phasor~ -0.3;
3 | #X text 180 81 source;
4 | #X msg 53 238 \; pd dsp 1;
5 | #X msg 53 273 \; pd dsp 0;
6 | #X obj 457 148 c.number~ @size 53 17 @fontname "Helvetica" @fontweight
7 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
8 | @interval 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5
9 | 0.5 1 @textcolor 0 0 0 1;
10 | #X obj 182 153 hoa.2d.encoder~ 7 -------------------------;
11 | #X obj 182 106 hoa.soundgrain;
12 | #X obj 182 135 c.gain~ @size 131 10 @fontname "Helvetica" @fontweight
13 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
14 | @presetname "(null)" @mode 0 @ramp 20 @bgcolor 0.75 0.75 0.75 1 @bdcolor
15 | 0.5 0.5 0.5 1 @kncolor 0.5 0.5 0.5 1;
16 | #X obj 612 143 hoa.connect;
17 | #X obj 612 123 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
18 | -1 -1;
19 | #X obj 437 102 hoa.pi~ 2;
20 | #X obj 5 22 c.patcherinfos;
21 | #X obj 5 5 loadbang;
22 | #X obj 5 5 hoa.help.header;
23 | #X obj 135 563 hoa.help.pub;
24 | #X obj 421 5 hoa.help.also;
25 | #X text 10 49 hoa.2d.encoder~ creates the circular harmonics of a signal
26 | depending on a given order and an azimuth.;
27 | #X text 471 127 azimuth (-π & π);
28 | #X obj 182 494 hoa.2d.decoder~ 7 regular 16 --------------;
29 | #X obj 182 542 hoa.dac~ 1:16 -----------------------------;
30 | #X obj 182 206 hoa.2d.scope~ @size 261 261 @fontname "Helvetica" @fontweight
31 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
32 | @order 7 @view 0 @gain 5 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
33 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
34 | #X connect 0 0 10 1;
35 | #X connect 5 0 18 0;
36 | #X connect 5 0 20 0;
37 | #X connect 5 1 18 1;
38 | #X connect 5 1 20 1;
39 | #X connect 5 2 18 2;
40 | #X connect 5 2 20 2;
41 | #X connect 5 3 18 3;
42 | #X connect 5 3 20 3;
43 | #X connect 5 4 18 4;
44 | #X connect 5 4 20 4;
45 | #X connect 5 5 18 5;
46 | #X connect 5 5 20 5;
47 | #X connect 5 6 18 6;
48 | #X connect 5 6 20 6;
49 | #X connect 5 7 18 7;
50 | #X connect 5 7 20 7;
51 | #X connect 5 8 18 8;
52 | #X connect 5 8 20 8;
53 | #X connect 5 9 18 9;
54 | #X connect 5 9 20 9;
55 | #X connect 5 10 18 10;
56 | #X connect 5 10 20 10;
57 | #X connect 5 11 18 11;
58 | #X connect 5 11 20 11;
59 | #X connect 5 12 18 12;
60 | #X connect 5 12 20 12;
61 | #X connect 5 13 18 13;
62 | #X connect 5 13 20 13;
63 | #X connect 5 14 18 14;
64 | #X connect 5 14 20 14;
65 | #X connect 6 0 7 0;
66 | #X connect 7 0 5 0;
67 | #X connect 9 0 8 0;
68 | #X connect 10 0 5 1;
69 | #X connect 10 0 4 0;
70 | #X connect 11 0 13 0;
71 | #X connect 12 0 11 0;
72 | #X connect 18 0 19 0;
73 | #X connect 18 1 19 1;
74 | #X connect 18 2 19 2;
75 | #X connect 18 3 19 3;
76 | #X connect 18 4 19 4;
77 | #X connect 18 5 19 5;
78 | #X connect 18 6 19 6;
79 | #X connect 18 7 19 7;
80 | #X connect 18 8 19 8;
81 | #X connect 18 9 19 9;
82 | #X connect 18 10 19 10;
83 | #X connect 18 11 19 11;
84 | #X connect 18 12 19 12;
85 | #X connect 18 13 19 13;
86 | #X connect 18 14 19 14;
87 | #X connect 18 15 19 15;
88 | #X coords 0 641 1 640 100 60 0;
89 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.2d.map~-help.pd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CICM/HoaLibrary-PD/5eb00099eb25ab2e146dbb498b3dddc6411fc602/Package/Hoa/helps/hoa.2d.map~-help.pd
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.2d.meter~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 408 100 814 589 10;
2 | #X obj 585 262 s hoameter;
3 | #X obj 478 191 c.number @size 53 17 @fontname Helvetica @fontweight
4 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
5 | (null) @min 1 @max 64 @minmax 1 64 @decimal 0 @bgcolor 0.75 0.75 0.75
6 | 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
7 | #X msg 478 224 channels \$1;
8 | #X obj 585 191 c.number @size 53 17 @fontname Helvetica @fontweight
9 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
10 | (null) @min -360 @max 360 @minmax -360 360 @decimal 0 @bgcolor 0.75
11 | 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
12 | #X msg 585 224 offset \$1;
13 | #X text 582 160 Offset of;
14 | #X text 582 170 channels;
15 | #X text 672 170 channels;
16 | #X text 672 160 Rotation of;
17 | #X msg 675 224 rotation \$1;
18 | #X obj 675 190 c.menu @size 100 17 @fontname Helvetica @fontweight
19 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
20 | (null) @hover 0 @items Anti-Clockwise Clockwise @states 0 0 @bgcolor
21 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
22 | #X obj 346 94 phasor~ 0.3;
23 | #X obj 459 392 s hoameter;
24 | #X text 482 170 channels;
25 | #X text 482 160 Number of;
26 | #X obj 375 310 c.menu @size 100 17 @fontname Helvetica @fontweight
27 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
28 | (null) @hover 0 @items none energy velocity both @states 0 0 0 0 @bgcolor
29 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
30 | #X msg 375 344 vectors \$1;
31 | #X text 392 280 Vectors to;
32 | #X text 392 290 display;
33 | #X text 665 256 Angles;
34 | #X msg 520 294 angles 0 15 90 270 345;
35 | #X obj 61 163 r hoadec;
36 | #X obj 535 392 s hoadec;
37 | #X obj 121 109 noise~;
38 | #X obj 121 141 hoa.2d.encoder~ 3 --------------------;
39 | #X obj 121 240 hoa.2d.meter~ @size 231 231 @fontname Helvetica @fontweight
40 | normal @fontslant roman @fontsize 11 @receive hoameter @send (null)
41 | @channels 5 @angles 0 30 110 250 330 @offset 0 @rotation anti-clockwise
42 | @vectors energy @interval 50 @bgcolor 0.758847 0.758847 0.758847 1
43 | @bdcolor 0.699562 0.699562 0.699562 1 @coldcolor 0 0.6 0 0.8 @tepidcolor
44 | 0.6 0.73 0 0.8 @warmcolor 0.85 0.85 0 0.8 @hotcolor 1 0.6 0 0.8 @overcolor
45 | 1 0 0 0.8 @energycolor 0 0 1 0.8 @velocitycolor 1 0 0 0.8;
46 | #X text 3 45 hoa.2d.meter~ displays the peak levels for a circurlar
47 | array of loudspeakers. It computes and displays the energy and velocity
48 | vectors.;
49 | #X msg 535 320 angles 0 72 144 -144 -72;
50 | #X obj 558 27 hoa.connect;
51 | #X obj 558 7 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
52 | -1;
53 | #X obj 346 115 hoa.pi~ 2;
54 | #X obj 139 508 hoa.help.pub;
55 | #X obj 13 19 c.patcherinfos;
56 | #X obj 18 2 loadbang;
57 | #X obj 3 2 hoa.help.header;
58 | #X obj 409 2 hoa.help.also;
59 | #X obj 478 134 c.loadmess set 5;
60 | #X obj 375 264 c.loadmess set 1;
61 | #X obj 45 384 c.dsp~ @size 30 30 @fontname Helvetica @fontweight normal
62 | @fontslant roman @fontsize 11 @receive (null) @send (null) @local 0
63 | @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @logocolor 0 0.6 0
64 | 0.8;
65 | #X obj 121 167 hoa.2d.optim~ 3 inPhase, f 38;
66 | #X obj 121 191 hoa.2d.decoder~ 3 irregular 5 @angles 0 30 110 250 330
67 | , f 38;
68 | #X msg 552 347 angles 0 30 110 250 330;
69 | #X connect 1 0 2 0;
70 | #X connect 2 0 0 0;
71 | #X connect 3 0 4 0;
72 | #X connect 4 0 0 0;
73 | #X connect 4 0 22 0;
74 | #X connect 9 0 0 0;
75 | #X connect 10 0 9 0;
76 | #X connect 11 0 30 1;
77 | #X connect 15 0 16 0;
78 | #X connect 16 0 12 0;
79 | #X connect 20 0 12 0;
80 | #X connect 20 0 22 0;
81 | #X connect 21 0 40 0;
82 | #X connect 23 0 24 0;
83 | #X connect 24 0 39 0;
84 | #X connect 24 1 39 1;
85 | #X connect 24 2 39 2;
86 | #X connect 24 3 39 3;
87 | #X connect 24 4 39 4;
88 | #X connect 24 5 39 5;
89 | #X connect 24 6 39 6;
90 | #X connect 27 0 12 0;
91 | #X connect 27 0 22 0;
92 | #X connect 29 0 28 0;
93 | #X connect 30 0 24 1;
94 | #X connect 32 0 34 0;
95 | #X connect 33 0 32 0;
96 | #X connect 36 0 1 0;
97 | #X connect 37 0 15 0;
98 | #X connect 39 0 40 0;
99 | #X connect 39 1 40 1;
100 | #X connect 39 2 40 2;
101 | #X connect 39 3 40 3;
102 | #X connect 39 4 40 4;
103 | #X connect 39 5 40 5;
104 | #X connect 39 6 40 6;
105 | #X connect 40 0 25 0;
106 | #X connect 40 1 25 1;
107 | #X connect 40 2 25 2;
108 | #X connect 40 3 25 3;
109 | #X connect 40 4 25 4;
110 | #X connect 41 0 12 0;
111 | #X connect 41 0 22 0;
112 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.2d.optim~-help.pd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CICM/HoaLibrary-PD/5eb00099eb25ab2e146dbb498b3dddc6411fc602/Package/Hoa/helps/hoa.2d.optim~-help.pd
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.2d.recomposer~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 348 82 752 686 10;
2 | #X text 529 301 Fisheye factor between 0 and 1;
3 | #X msg 47 600 \; pd dsp 1;
4 | #X msg 47 638 \; pd dsp 0;
5 | #X obj 250 454 hoa.2d.scope~ @size 189 189 @fontname "Helvetica" @fontweight
6 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
7 | @order 4 @view 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
8 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
9 | #X obj 250 214 hoa.2d.scope~ @size 171 171 @fontname "Helvetica" @fontweight
10 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
11 | @order 4 @view 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
12 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
13 | #X obj 572 25 hoa.connect;
14 | #X obj 572 6 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
15 | -1;
16 | #X obj 175 133 c.loadmess;
17 | #X obj 563 323 c.number @size 53 17 @fontname "Helvetica" @fontweight
18 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
19 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
20 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
21 | #X obj 563 387 line~;
22 | #X msg 563 358 \$1 200;
23 | #X obj 10 147 hoa.soundrone;
24 | #X obj 247 649 hoa.2d.decoder~ 4 0 10 --------;
25 | #X obj 247 682 hoa.dac~ 1:10 -----------------;
26 | #X obj 250 391 hoa.2d.projector~ 4 10 -----;
27 | #X obj 10 173 hoa.2d.encoder~ 4 ----------;
28 | #X text 6 47 hoa.2D.recomposer~ recomposes a plane wave sound field
29 | into the circular harmonics domain.;
30 | #X text 7 84 1st argument is the order;
31 | #X text 7 94 2nd argument is the number of channels;
32 | #X obj 250 146 hoa.soundgrain;
33 | #X obj 490 146 hoa.soundcoat;
34 | #X obj 415 133 c.loadmess;
35 | #X obj 250 173 hoa.2d.encoder~ 4 ----------;
36 | #X obj 654 133 c.loadmess;
37 | #X obj 490 173 hoa.2d.encoder~ 4 ----------;
38 | #X obj 175 153 hoa.pi 0.4;
39 | #X obj 415 153 hoa.pi 1;
40 | #X obj 654 153 hoa.pi 1.6;
41 | #X text 29 345 fixe mode :;
42 | #X text 29 366 The sound field is just;
43 | #X text 29 376 recomposed into the;
44 | #X text 29 386 circular harmonics domain;
45 | #X text 29 396 without any effect.;
46 | #X text 29 425 fisheye mode :;
47 | #X text 29 446 The sound field can be;
48 | #X text 29 456 compressed to the front.;
49 | #X text 29 466 With fisheye \, the object;
50 | #X text 29 476 has one additionnal inlet.;
51 | #X obj 15 20 c.patcherinfos;
52 | #X obj 20 3 loadbang;
53 | #X obj 5 3 hoa.help.header;
54 | #X obj 172 709 hoa.help.pub;
55 | #X obj 426 3 hoa.help.also;
56 | #X obj 250 420 hoa.2d.recomposer~ 4 10 fisheye;
57 | #X text 7 104 3nd argument is the mode : fixe (default) or fisheye
58 | ;
59 | #X connect 6 0 5 0;
60 | #X connect 7 0 25 0;
61 | #X connect 8 0 10 0;
62 | #X connect 9 0 43 10;
63 | #X connect 10 0 9 0;
64 | #X connect 11 0 15 0;
65 | #X connect 12 0 13 0;
66 | #X connect 12 1 13 1;
67 | #X connect 12 2 13 2;
68 | #X connect 12 3 13 3;
69 | #X connect 12 4 13 4;
70 | #X connect 12 5 13 5;
71 | #X connect 12 6 13 6;
72 | #X connect 12 7 13 7;
73 | #X connect 12 8 13 8;
74 | #X connect 12 9 13 9;
75 | #X connect 14 0 43 0;
76 | #X connect 14 1 43 1;
77 | #X connect 14 2 43 2;
78 | #X connect 14 3 43 3;
79 | #X connect 14 4 43 4;
80 | #X connect 14 5 43 5;
81 | #X connect 14 6 43 6;
82 | #X connect 14 7 43 7;
83 | #X connect 14 8 43 8;
84 | #X connect 14 9 43 9;
85 | #X connect 15 0 4 0;
86 | #X connect 15 0 14 0;
87 | #X connect 15 1 4 1;
88 | #X connect 15 1 14 1;
89 | #X connect 15 2 4 2;
90 | #X connect 15 2 14 2;
91 | #X connect 15 3 4 3;
92 | #X connect 15 3 14 3;
93 | #X connect 15 4 4 4;
94 | #X connect 15 4 14 4;
95 | #X connect 15 5 4 5;
96 | #X connect 15 5 14 5;
97 | #X connect 15 6 4 6;
98 | #X connect 15 6 14 6;
99 | #X connect 15 7 4 7;
100 | #X connect 15 7 14 7;
101 | #X connect 15 8 4 8;
102 | #X connect 15 8 14 8;
103 | #X connect 19 0 22 0;
104 | #X connect 20 0 24 0;
105 | #X connect 21 0 26 0;
106 | #X connect 22 0 4 0;
107 | #X connect 22 0 14 0;
108 | #X connect 22 1 4 1;
109 | #X connect 22 1 14 1;
110 | #X connect 22 2 4 2;
111 | #X connect 22 2 14 2;
112 | #X connect 22 3 4 3;
113 | #X connect 22 3 14 3;
114 | #X connect 22 4 4 4;
115 | #X connect 22 4 14 4;
116 | #X connect 22 5 4 5;
117 | #X connect 22 5 14 5;
118 | #X connect 22 6 4 6;
119 | #X connect 22 6 14 6;
120 | #X connect 22 7 4 7;
121 | #X connect 22 7 14 7;
122 | #X connect 22 8 4 8;
123 | #X connect 22 8 14 8;
124 | #X connect 23 0 27 0;
125 | #X connect 24 0 4 0;
126 | #X connect 24 0 14 0;
127 | #X connect 24 1 4 1;
128 | #X connect 24 1 14 1;
129 | #X connect 24 2 4 2;
130 | #X connect 24 2 14 2;
131 | #X connect 24 3 4 3;
132 | #X connect 24 3 14 3;
133 | #X connect 24 4 4 4;
134 | #X connect 24 4 14 4;
135 | #X connect 24 5 4 5;
136 | #X connect 24 5 14 5;
137 | #X connect 24 6 4 6;
138 | #X connect 24 6 14 6;
139 | #X connect 24 7 4 7;
140 | #X connect 24 7 14 7;
141 | #X connect 24 8 4 8;
142 | #X connect 24 8 14 8;
143 | #X connect 25 0 15 1;
144 | #X connect 26 0 22 1;
145 | #X connect 27 0 24 1;
146 | #X connect 38 0 40 0;
147 | #X connect 39 0 38 0;
148 | #X connect 43 0 3 0;
149 | #X connect 43 0 12 0;
150 | #X connect 43 1 3 1;
151 | #X connect 43 1 12 1;
152 | #X connect 43 2 3 2;
153 | #X connect 43 2 12 2;
154 | #X connect 43 3 3 3;
155 | #X connect 43 3 12 3;
156 | #X connect 43 4 3 4;
157 | #X connect 43 4 12 4;
158 | #X connect 43 5 3 5;
159 | #X connect 43 5 12 5;
160 | #X connect 43 6 3 6;
161 | #X connect 43 6 12 6;
162 | #X connect 43 7 3 7;
163 | #X connect 43 7 12 7;
164 | #X connect 43 8 3 8;
165 | #X connect 43 8 12 8;
166 | #X coords 0 686 1 685 100 60 0;
167 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.2d.rotate~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 330 82 562 615 10;
2 | #X obj 452 233 hoa.pi 2;
3 | #X obj 452 214 loadbang;
4 | #X obj 437 252 *~;
5 | #X obj 437 189 phasor~ 0.1;
6 | #X msg 330 373 \; pd dsp 1;
7 | #X msg 330 411 \; pd dsp 0;
8 | #X obj 139 335 hoa.2d.scope~ @size 153 153 @fontname "Helvetica" @fontweight
9 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
10 | @order 4 @view 0 @gain 5 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
11 | 0.5 0.5 0.5 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
12 | #X obj 139 523 hoa.dac~ 1:10 -----------;
13 | #X obj 437 295 c.number~ @size 53 17 @fontname "Helvetica" @fontweight
14 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
15 | @interval 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5
16 | 0.5 1 @textcolor 0 0 0 1;
17 | #X obj 178 146 hoa.pi;
18 | #X obj 178 93 c.loadmess 0;
19 | #X obj 178 122 c.number @size 53 17 @fontname "Helvetica" @fontweight
20 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
21 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
22 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
23 | 0 0 0 1;
24 | #X obj 374 122 c.number @size 53 17 @fontname "Helvetica" @fontweight
25 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
26 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
27 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
28 | 0 0 0 1;
29 | #X obj 374 93 c.loadmess 1;
30 | #X obj 437 162 c.number @size 53 17 @fontname "Helvetica" @fontweight
31 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
32 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
33 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
34 | 0 0 0 1;
35 | #X obj 437 113 c.loadmess 0.1;
36 | #X text 444 134 Speed of;
37 | #X text 444 144 rotation;
38 | #X text 466 254 Angle of;
39 | #X text 466 264 rotation;
40 | #X text 466 274 in radian;
41 | #X obj 49 170 hoa.2d.encoder~ 4 ----;
42 | #X obj 245 170 hoa.2d.encoder~ 4 ----;
43 | #X obj 139 305 hoa.2d.rotate~ 4 --------;
44 | #X obj 139 491 hoa.2d.decoder~ 4 0 10 --;
45 | #X text 20 48 hoa.2d.rotate~ allows you to apply a rotation on the
46 | ambisonic sound field. The last inlet set the angle of the rotation.
47 | ;
48 | #X obj 245 122 hoa.soundrone;
49 | #X obj 49 122 hoa.soundgrain;
50 | #X obj 374 147 hoa.pi;
51 | #X obj 35 545 hoa.help.pub;
52 | #X obj 23 24 c.patcherinfos;
53 | #X obj 28 7 loadbang;
54 | #X obj 13 5 hoa.help.header;
55 | #X obj 421 5 hoa.help.also;
56 | #X connect 0 0 2 1;
57 | #X connect 1 0 0 0;
58 | #X connect 2 0 8 0;
59 | #X connect 2 0 23 9;
60 | #X connect 3 0 2 0;
61 | #X connect 9 0 21 1;
62 | #X connect 10 0 11 0;
63 | #X connect 11 0 9 0;
64 | #X connect 12 0 28 0;
65 | #X connect 13 0 12 0;
66 | #X connect 14 0 3 0;
67 | #X connect 15 0 14 0;
68 | #X connect 21 0 23 0;
69 | #X connect 21 1 23 1;
70 | #X connect 21 2 23 2;
71 | #X connect 21 3 23 3;
72 | #X connect 21 4 23 4;
73 | #X connect 21 5 23 5;
74 | #X connect 21 6 23 6;
75 | #X connect 21 7 23 7;
76 | #X connect 21 8 23 8;
77 | #X connect 22 0 23 0;
78 | #X connect 22 1 23 1;
79 | #X connect 22 2 23 2;
80 | #X connect 22 3 23 3;
81 | #X connect 22 4 23 4;
82 | #X connect 22 5 23 5;
83 | #X connect 22 6 23 6;
84 | #X connect 22 7 23 7;
85 | #X connect 22 8 23 8;
86 | #X connect 23 0 6 0;
87 | #X connect 23 0 24 0;
88 | #X connect 23 1 6 1;
89 | #X connect 23 1 24 1;
90 | #X connect 23 2 6 2;
91 | #X connect 23 2 24 2;
92 | #X connect 23 3 6 3;
93 | #X connect 23 3 24 3;
94 | #X connect 23 4 6 4;
95 | #X connect 23 4 24 4;
96 | #X connect 23 5 6 5;
97 | #X connect 23 5 24 5;
98 | #X connect 23 6 6 6;
99 | #X connect 23 6 24 6;
100 | #X connect 23 7 6 7;
101 | #X connect 23 7 24 7;
102 | #X connect 23 8 24 8;
103 | #X connect 23 8 6 8;
104 | #X connect 24 0 7 0;
105 | #X connect 24 1 7 1;
106 | #X connect 24 2 7 2;
107 | #X connect 24 3 7 3;
108 | #X connect 24 4 7 4;
109 | #X connect 24 5 7 5;
110 | #X connect 24 6 7 6;
111 | #X connect 24 7 7 7;
112 | #X connect 24 8 7 8;
113 | #X connect 24 9 7 9;
114 | #X connect 26 0 22 0;
115 | #X connect 27 0 21 0;
116 | #X connect 28 0 22 1;
117 | #X connect 30 0 32 0;
118 | #X connect 31 0 30 0;
119 | #X coords 0 615 1 614 100 60 0;
120 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.2d.scope~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 408 103 770 585 10;
2 | #X obj 361 128 hoa.pi 2;
3 | #X obj 361 99 loadbang;
4 | #X obj 280 171 *~;
5 | #X obj 280 128 phasor~ 0.1;
6 | #X msg 480 78 \; pd dsp 1;
7 | #X msg 480 116 \; pd dsp 0;
8 | #X obj 325 243 c.number @size 53 17 @fontname "Helvetica" @fontweight
9 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
10 | @presetname "(null)" @min 1 @max "(null)" @minmax 1 "(null)" @decimal
11 | 0 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0
12 | 1;
13 | #X msg 325 269 order \$1;
14 | #X obj 415 298 s hoascope;
15 | #X obj 325 220 c.loadmess 7;
16 | #X obj 415 243 c.number @size 53 17 @fontname "Helvetica" @fontweight
17 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
18 | @presetname "(null)" @min 1 @max "(null)" @minmax 1 "(null)" @decimal
19 | 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0
20 | 1;
21 | #X msg 415 269 gain \$1;
22 | #X obj 415 220 c.loadmess 1;
23 | #X obj 505 243 c.number @size 53 17 @fontname "Helvetica" @fontweight
24 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
25 | @presetname "(null)" @min 20 @max 1000 @minmax 20 1000 @decimal 0 @bgcolor
26 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
27 | #X msg 505 269 interval \$1;
28 | #X obj 464 448 s hoascope;
29 | #X obj 324 377 c.colorpanel @size 97 14 @fontname "Helvetica" @fontweight
30 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
31 | @presetname "(null)" @matrix 8 1 @reverse 0 @saturation 1 @hue 0 @lightness
32 | 0.5 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1;
33 | #X obj 324 396 c.prepend phcolor;
34 | #X obj 464 377 c.colorpanel @size 97 14 @fontname "Helvetica" @fontweight
35 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
36 | @presetname "(null)" @matrix 8 1 @reverse 0 @saturation 1 @hue 0.65
37 | @lightness 0.5 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1;
38 | #X text 323 196 order :;
39 | #X text 323 186 Ambisonic;
40 | #X text 413 186 Gain :;
41 | #X text 503 196 interval :;
42 | #X text 323 346 color :;
43 | #X text 323 336 Positive;
44 | #X text 463 346 color :;
45 | #X text 463 336 Negative;
46 | #X obj 79 160 osc~ 0.1;
47 | #X text 503 186 Refresh;
48 | #X obj 505 220 c.loadmess 20;
49 | #X obj 464 396 c.prepend nhcolor;
50 | #X obj 79 257 hoa.2d.scope~ @size 207 207 @fontname "Helvetica" @fontweight
51 | "normal" @fontslant "roman" @fontsize 11 @receive "hoascope" @send
52 | "(null)" @order 7 @view 0 @gain 1 @interval 20 @bgcolor 0.76 0.76 0.76
53 | 1 @bdcolor 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
54 | #X obj 79 211 hoa.2d.encoder~ 7 ----------------;
55 | #X text 37 66 hoa.2d.scope~ displays the circular harmonics of an ambisonic
56 | sound field on a disc.;
57 | #X obj 133 492 hoa.help.pub;
58 | #X obj 525 510 hoa.connect;
59 | #X obj 525 490 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
60 | -1 -1;
61 | #X obj 54 32 c.patcherinfos;
62 | #X obj 59 15 loadbang;
63 | #X obj 39 15 hoa.help.header;
64 | #X obj 448 15 hoa.help.also;
65 | #X connect 0 0 2 1;
66 | #X connect 1 0 0 0;
67 | #X connect 2 0 32 1;
68 | #X connect 3 0 2 0;
69 | #X connect 6 0 7 0;
70 | #X connect 7 0 8 0;
71 | #X connect 9 0 6 0;
72 | #X connect 10 0 11 0;
73 | #X connect 11 0 8 0;
74 | #X connect 12 0 10 0;
75 | #X connect 13 0 14 0;
76 | #X connect 14 0 8 0;
77 | #X connect 16 0 17 0;
78 | #X connect 17 0 15 0;
79 | #X connect 18 0 30 0;
80 | #X connect 27 0 32 0;
81 | #X connect 29 0 13 0;
82 | #X connect 30 0 15 0;
83 | #X connect 32 0 31 0;
84 | #X connect 32 1 31 1;
85 | #X connect 32 2 31 2;
86 | #X connect 32 3 31 3;
87 | #X connect 32 4 31 4;
88 | #X connect 32 5 31 5;
89 | #X connect 32 6 31 6;
90 | #X connect 32 7 31 7;
91 | #X connect 32 8 31 8;
92 | #X connect 32 9 31 9;
93 | #X connect 32 10 31 10;
94 | #X connect 32 11 31 11;
95 | #X connect 32 12 31 12;
96 | #X connect 32 13 31 13;
97 | #X connect 32 14 31 14;
98 | #X connect 36 0 35 0;
99 | #X connect 37 0 39 0;
100 | #X connect 38 0 37 0;
101 | #X coords 0 585 1 584 85 60 0;
102 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.2d.wider~-help.pd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CICM/HoaLibrary-PD/5eb00099eb25ab2e146dbb498b3dddc6411fc602/Package/Hoa/helps/hoa.2d.wider~-help.pd
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.3d.encoder~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 284 114 656 687 10;
2 | #X text 127 91 source;
3 | #X msg 50 218 \; pd dsp 1;
4 | #X msg 50 253 \; pd dsp 0;
5 | #X obj 129 135 c.gain~ @size 131 10 @fontname "Helvetica" @fontweight
6 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
7 | @presetname "(null)" @mode 0 @ramp 20 @bgcolor 0.75 0.75 0.75 1 @bdcolor
8 | 0.5 0.5 0.5 1 @kncolor 0.5 0.5 0.5 1;
9 | #X obj 569 32 hoa.connect;
10 | #X obj 569 12 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
11 | -1;
12 | #X obj 2 22 c.patcherinfos;
13 | #X obj 2 5 loadbang;
14 | #X obj 2 5 hoa.help.header;
15 | #X obj 418 5 hoa.help.also;
16 | #X text 7 49 hoa.3d.encoder~ creates the spherical harmonics of a signal
17 | depending on a given order \, an azimuth and an elevation.;
18 | #X obj 100 611 hoa.help.pub;
19 | #X obj 129 106 hoa.soundcoat;
20 | #X obj 129 544 hoa.3d.decoder~ 3 regular 20 -------------------;
21 | #X obj 129 582 hoa.dac~ 1:20 ----------------------------------;
22 | #X obj 344 156 c.number~ @size 53 17 @fontname "Helvetica" @fontweight
23 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
24 | @interval 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5
25 | 0.5 1 @textcolor 0 0 0 1;
26 | #X obj 271 128 hoa.pi~ 2;
27 | #X text 344 128 azimuth;
28 | #X text 494 132 elevation;
29 | #X obj 498 162 c.number~ @size 53 17 @fontname "Helvetica" @fontweight
30 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
31 | @interval 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5
32 | 0.5 1 @textcolor 0 0 0 1;
33 | #X obj 271 103 phasor~ -0.5;
34 | #X text 342 139 (-π & π);
35 | #X text 486 144 (-π/2 & π/2);
36 | #X obj 414 134 hoa.pi~ 0.5;
37 | #X obj 414 109 hoa.tri~ 0.05;
38 | #X obj 129 183 hoa.3d.encoder~ 3, f 48;
39 | #X obj 129 210 hoa.3d.scope~ @size 291 291 @fontname "Helvetica" @fontweight
40 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
41 | @order 3 @view 0 0 0 @gain 1 @interval 100 @bgcolor 0.76 0.76 0.76
42 | 1 @bdcolor 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
43 | #X obj 129 521 hoa.3d.optim~ 3 inPhase ------------------------;
44 | #X connect 3 0 25 0;
45 | #X connect 5 0 4 0;
46 | #X connect 6 0 8 0;
47 | #X connect 7 0 6 0;
48 | #X connect 12 0 3 0;
49 | #X connect 13 0 14 0;
50 | #X connect 13 1 14 1;
51 | #X connect 13 2 14 2;
52 | #X connect 13 3 14 3;
53 | #X connect 13 4 14 4;
54 | #X connect 13 5 14 5;
55 | #X connect 13 6 14 6;
56 | #X connect 13 7 14 7;
57 | #X connect 13 8 14 8;
58 | #X connect 13 9 14 9;
59 | #X connect 13 10 14 10;
60 | #X connect 13 11 14 11;
61 | #X connect 13 12 14 12;
62 | #X connect 13 13 14 13;
63 | #X connect 13 14 14 14;
64 | #X connect 13 15 14 15;
65 | #X connect 13 16 14 16;
66 | #X connect 13 17 14 17;
67 | #X connect 13 18 14 18;
68 | #X connect 13 19 14 19;
69 | #X connect 16 0 15 0;
70 | #X connect 16 0 25 1;
71 | #X connect 20 0 16 1;
72 | #X connect 23 0 19 0;
73 | #X connect 23 0 25 2;
74 | #X connect 24 0 23 1;
75 | #X connect 25 0 26 0;
76 | #X connect 25 0 27 0;
77 | #X connect 25 1 26 1;
78 | #X connect 25 1 27 1;
79 | #X connect 25 2 26 2;
80 | #X connect 25 2 27 2;
81 | #X connect 25 3 26 3;
82 | #X connect 25 3 27 3;
83 | #X connect 25 4 26 4;
84 | #X connect 25 4 27 4;
85 | #X connect 25 5 26 5;
86 | #X connect 25 5 27 5;
87 | #X connect 25 6 26 6;
88 | #X connect 25 6 27 6;
89 | #X connect 25 7 26 7;
90 | #X connect 25 7 27 7;
91 | #X connect 25 8 26 8;
92 | #X connect 25 8 27 8;
93 | #X connect 25 9 26 9;
94 | #X connect 25 9 27 9;
95 | #X connect 25 10 26 10;
96 | #X connect 25 10 27 10;
97 | #X connect 25 11 26 11;
98 | #X connect 25 11 27 11;
99 | #X connect 25 12 26 12;
100 | #X connect 25 12 27 12;
101 | #X connect 25 13 26 13;
102 | #X connect 25 13 27 13;
103 | #X connect 25 14 26 14;
104 | #X connect 25 14 27 14;
105 | #X connect 25 15 26 15;
106 | #X connect 25 15 27 15;
107 | #X connect 27 0 13 0;
108 | #X connect 27 1 13 1;
109 | #X connect 27 2 13 2;
110 | #X connect 27 3 13 3;
111 | #X connect 27 4 13 4;
112 | #X connect 27 5 13 5;
113 | #X connect 27 6 13 6;
114 | #X connect 27 7 13 7;
115 | #X connect 27 8 13 8;
116 | #X connect 27 9 13 9;
117 | #X connect 27 10 13 10;
118 | #X connect 27 11 13 11;
119 | #X connect 27 12 13 12;
120 | #X connect 27 13 13 13;
121 | #X connect 27 14 13 14;
122 | #X connect 27 15 13 15;
123 | #X coords 0 687 1 686 100 60 0;
124 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.3d.optim~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 101 76 570 676 10;
2 | #X obj 320 100 phasor~ -0.3;
3 | #X msg 455 211 \; pd dsp 1;
4 | #X msg 455 249 \; pd dsp 0;
5 | #X text 6 196 basic has no effect.;
6 | #X text 6 225 confined to the center of the;
7 | #X obj 105 148 c.menu @size 100 17 @fontname "Helvetica" @fontweight
8 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
9 | @presetname "(null)" @hover 0 @items "basic" "maxRe" "inPhase" @states
10 | 0 0 0 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0
11 | 0 0 1;
12 | #X obj 214 125 hoa.soundcoat;
13 | #X text 5 254 inPhase is used when audience;
14 | #X obj 481 85 hoa.connect;
15 | #X obj 481 65 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
16 | -1;
17 | #X text 9 302 Important : the optimization;
18 | #X text 9 312 can be changed in real time;
19 | #X text 9 322 but this is not a good practice.;
20 | #X text 9 332 You should only use this;
21 | #X text 9 343 option for your tests.;
22 | #X obj 13 21 c.patcherinfos;
23 | #X obj 18 4 loadbang;
24 | #X obj 3 4 hoa.help.header;
25 | #X obj 110 606 hoa.help.pub;
26 | #X obj 414 4 hoa.help.also;
27 | #X obj 215 268 hoa.3d.scope~ @size 219 219 @fontname "Helvetica" @fontweight
28 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
29 | @order 3 @view 0 0 0 @gain 20 @interval 100 @bgcolor 0.76 0.76 0.76
30 | 1 @bdcolor 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
31 | #X obj 214 192 hoa.3d.optim~ 3 maxRe --------------;
32 | #X obj 214 153 hoa.3d.encoder~ 3 ------------------;
33 | #X obj 215 526 hoa.3d.decoder~ 3 regular 20 -------;
34 | #X obj 215 574 hoa.dac~ 1:20 ----------------------;
35 | #X text 4 48 hoa.3d.optim~ weights the spherical harmonics signals
36 | depending on the optimization.;
37 | #X text 6 235 the sphere.;
38 | #X obj 105 116 c.loadmess set 1;
39 | #X obj 427 100 sig~ 0;
40 | #X obj 427 125 hoa.pi~ 1;
41 | #X obj 320 125 hoa.pi~ 2;
42 | #X text 5 264 coverzs all the sphere.;
43 | #X text 6 215 maxRe is used when audience is;
44 | #X connect 0 0 30 1;
45 | #X connect 5 1 21 0;
46 | #X connect 6 0 22 0;
47 | #X connect 9 0 8 0;
48 | #X connect 15 0 17 0;
49 | #X connect 16 0 15 0;
50 | #X connect 21 0 20 0;
51 | #X connect 21 0 23 0;
52 | #X connect 21 1 20 1;
53 | #X connect 21 1 23 1;
54 | #X connect 21 2 20 2;
55 | #X connect 21 2 23 2;
56 | #X connect 21 3 20 3;
57 | #X connect 21 3 23 3;
58 | #X connect 21 4 20 4;
59 | #X connect 21 4 23 4;
60 | #X connect 21 5 20 5;
61 | #X connect 21 5 23 5;
62 | #X connect 21 6 20 6;
63 | #X connect 21 6 23 6;
64 | #X connect 21 7 20 7;
65 | #X connect 21 7 23 7;
66 | #X connect 21 8 20 8;
67 | #X connect 21 8 23 8;
68 | #X connect 21 9 20 9;
69 | #X connect 21 9 23 9;
70 | #X connect 21 10 20 10;
71 | #X connect 21 10 23 10;
72 | #X connect 21 11 20 11;
73 | #X connect 21 11 23 11;
74 | #X connect 21 12 20 12;
75 | #X connect 21 12 23 12;
76 | #X connect 21 13 20 13;
77 | #X connect 21 13 23 13;
78 | #X connect 21 14 20 14;
79 | #X connect 21 14 23 14;
80 | #X connect 21 15 20 15;
81 | #X connect 21 15 23 15;
82 | #X connect 22 0 21 0;
83 | #X connect 22 1 21 1;
84 | #X connect 22 2 21 2;
85 | #X connect 22 3 21 3;
86 | #X connect 22 4 21 4;
87 | #X connect 22 5 21 5;
88 | #X connect 22 6 21 6;
89 | #X connect 22 7 21 7;
90 | #X connect 22 8 21 8;
91 | #X connect 22 9 21 9;
92 | #X connect 22 10 21 10;
93 | #X connect 22 11 21 11;
94 | #X connect 22 12 21 12;
95 | #X connect 22 13 21 13;
96 | #X connect 22 14 21 14;
97 | #X connect 22 15 21 15;
98 | #X connect 23 0 24 0;
99 | #X connect 23 1 24 1;
100 | #X connect 23 2 24 2;
101 | #X connect 23 3 24 3;
102 | #X connect 23 4 24 4;
103 | #X connect 23 5 24 5;
104 | #X connect 23 6 24 6;
105 | #X connect 23 7 24 7;
106 | #X connect 23 8 24 8;
107 | #X connect 23 9 24 9;
108 | #X connect 23 10 24 10;
109 | #X connect 23 11 24 11;
110 | #X connect 23 12 24 12;
111 | #X connect 23 13 24 13;
112 | #X connect 23 14 24 14;
113 | #X connect 23 15 24 15;
114 | #X connect 23 16 24 16;
115 | #X connect 23 17 24 17;
116 | #X connect 23 18 24 18;
117 | #X connect 23 19 24 19;
118 | #X connect 27 0 5 0;
119 | #X connect 28 0 29 0;
120 | #X connect 29 0 22 2;
121 | #X connect 30 0 22 1;
122 | #X coords 0 676 1 675 100 60 0;
123 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.3d.scope~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 408 103 616 551 10;
2 | #X msg 446 69 \; pd dsp 1;
3 | #X msg 446 107 \; pd dsp 0;
4 | #X obj 291 244 c.number @size 53 17 @fontname "Helvetica" @fontweight
5 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
6 | @presetname "(null)" @min 1 @max "(null)" @minmax 1 "(null)" @decimal
7 | 0 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0
8 | 1;
9 | #X msg 291 270 order \$1;
10 | #X obj 381 244 c.number @size 53 17 @fontname "Helvetica" @fontweight
11 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
12 | @presetname "(null)" @min 1 @max "(null)" @minmax 1 "(null)" @decimal
13 | 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0
14 | 1;
15 | #X msg 381 270 gain \$1;
16 | #X obj 381 221 c.loadmess 1;
17 | #X obj 471 244 c.number @size 53 17 @fontname "Helvetica" @fontweight
18 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
19 | @presetname "(null)" @min 20 @max 1000 @minmax 20 1000 @decimal 0 @bgcolor
20 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
21 | #X msg 471 270 interval \$1;
22 | #X obj 290 368 c.colorpanel @size 97 14 @fontname "Helvetica" @fontweight
23 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
24 | @presetname "(null)" @matrix 8 1 @reverse 0 @saturation 1 @hue 0 @lightness
25 | 0.5 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1;
26 | #X obj 290 387 c.prepend phcolor;
27 | #X obj 430 368 c.colorpanel @size 97 14 @fontname "Helvetica" @fontweight
28 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
29 | @presetname "(null)" @matrix 8 1 @reverse 0 @saturation 1 @hue 0.65
30 | @lightness 0.5 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1;
31 | #X text 289 197 order :;
32 | #X text 289 187 Ambisonic;
33 | #X text 379 187 Gain :;
34 | #X text 469 197 interval :;
35 | #X text 289 337 color :;
36 | #X text 289 327 Positive;
37 | #X text 429 337 color :;
38 | #X text 429 327 Negative;
39 | #X text 469 187 Refresh;
40 | #X obj 471 221 c.loadmess 20;
41 | #X obj 430 387 c.prepend nhcolor;
42 | #X obj 99 483 hoa.help.pub;
43 | #X obj 491 501 hoa.connect;
44 | #X obj 491 481 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
45 | -1 -1;
46 | #X obj 20 23 c.patcherinfos;
47 | #X obj 25 6 loadbang;
48 | #X obj 5 6 hoa.help.header;
49 | #X obj 414 6 hoa.help.also;
50 | #X obj 45 202 hoa.3d.encoder~ 3 ----------------;
51 | #X obj 291 221 c.loadmess 3;
52 | #X obj 381 299 s hoascope3d;
53 | #X obj 145 136 phasor~ -0.3;
54 | #X obj 145 161 hoa.pi~ 2;
55 | #X obj 145 107 c.number @size 53 17 @fontname "Helvetica" @fontweight
56 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
57 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
58 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
59 | 0 0 0 1;
60 | #X obj 246 136 hoa.tri~ 0.1 -0.5 0.5;
61 | #X obj 246 161 hoa.pi~ 1;
62 | #X obj 246 107 c.number @size 53 17 @fontname "Helvetica" @fontweight
63 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
64 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
65 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
66 | 0 0 0 1;
67 | #X obj 430 439 s hoascope3d;
68 | #X text 3 57 hoa.3d.scope~ displays the spherical harmonics of an ambisonic
69 | sound field on a disc. The disc is the cross-section of the ambisonic
70 | sphere at 0° elevation.;
71 | #X obj 45 240 hoa.3d.scope~ @size 207 207 @fontname "Helvetica" @fontweight
72 | "normal" @fontslant "roman" @fontsize 11 @receive "hoascope3d" @send
73 | "(null)" @order 3 @view 0 0 0 @gain 1 @interval 20 @bgcolor 0.76 0.76
74 | 0.76 1 @bdcolor 0.7 0.7 0.7 1 @phcolor 1 0 2.38419e-07 1 @nhcolor 0
75 | 0.1 1 1;
76 | #X obj 45 151 osc~ 0.1;
77 | #X connect 2 0 3 0;
78 | #X connect 3 0 32 0;
79 | #X connect 4 0 5 0;
80 | #X connect 5 0 32 0;
81 | #X connect 6 0 4 0;
82 | #X connect 7 0 8 0;
83 | #X connect 8 0 32 0;
84 | #X connect 9 0 10 0;
85 | #X connect 10 0 39 0;
86 | #X connect 11 0 22 0;
87 | #X connect 21 0 7 0;
88 | #X connect 22 0 39 0;
89 | #X connect 25 0 24 0;
90 | #X connect 26 0 28 0;
91 | #X connect 27 0 26 0;
92 | #X connect 30 0 41 0;
93 | #X connect 30 1 41 1;
94 | #X connect 30 2 41 2;
95 | #X connect 30 3 41 3;
96 | #X connect 30 4 41 4;
97 | #X connect 30 5 41 5;
98 | #X connect 30 6 41 6;
99 | #X connect 30 7 41 7;
100 | #X connect 30 8 41 8;
101 | #X connect 30 9 41 9;
102 | #X connect 30 10 41 10;
103 | #X connect 30 11 41 11;
104 | #X connect 30 12 41 12;
105 | #X connect 30 13 41 13;
106 | #X connect 30 14 41 14;
107 | #X connect 30 15 41 15;
108 | #X connect 31 0 2 0;
109 | #X connect 33 0 34 1;
110 | #X connect 34 0 30 1;
111 | #X connect 35 0 33 0;
112 | #X connect 36 0 37 1;
113 | #X connect 37 0 30 2;
114 | #X connect 38 0 36 0;
115 | #X connect 42 0 30 0;
116 | #X coords 0 551 1 550 85 60 0;
117 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.3d.wider~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 479 82 582 686 10;
2 | #X msg 18 366 \; pd dsp 1;
3 | #X msg 18 410 \; pd dsp 0;
4 | #X obj 406 186 line~;
5 | #X msg 406 166 \$1 20;
6 | #X text 467 149 between 0 and 1;
7 | #X text 467 137 Widen value;
8 | #X obj 406 143 c.number @size 53 17 @fontname "Helvetica" @fontweight
9 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
10 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
11 | 0.7 0.7 0.7 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
12 | #X obj 406 120 c.loadmess 0.175;
13 | #X obj 125 154 hoa.soundrone;
14 | #X obj 12 20 c.patcherinfos;
15 | #X obj 17 3 loadbang;
16 | #X obj 2 3 hoa.help.header;
17 | #X obj 73 744 hoa.help.pub;
18 | #X obj 409 3 hoa.help.also;
19 | #X text 7 47 hoa.3d.wider~ can be used to wide the diffusion of a localised
20 | sound. The degrees depending signals are weighted and appear in a logarithmic
21 | way to have linear changes.;
22 | #X obj 125 264 hoa.3d.scope~ @size 225 225 @fontname "Helvetica" @fontweight
23 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
24 | @order 3 @view 0 0 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76
25 | 1 @bdcolor 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
26 | #X obj 44 173 hoa.connect;
27 | #X obj 44 139 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
28 | -1;
29 | #X obj 125 575 hoa.3d.meter~ @size 225 112.5 @fontname "Helvetica"
30 | @fontweight "normal" @fontslant "roman" @fontsize 11 @receive "(null)"
31 | @send "(null)" @channels 20 @angles 180 69.1 159.1 0 90 20.9 135 35.3
32 | 135 -35.3 180 -69.1 20.9 0 90 -20.9 45 35.3 45 -35.3 0 69.1 200.9 0
33 | 270 20.9 225 35.3 225 -35.3 0 -69.1 339.1 0 270 -20.9 315 35.3 315
34 | -35.3 @offset 0 0 0 @rotation "anti-clockwise" @view "top-bottom" @vectors
35 | "none" @interval 50 @bgcolor 0.76 0.76 0.76 1 @bdcolor 0.7 0.7 0.7
36 | 1 @coldcolor 0 0.6 0 0.8 @tepidcolor 0.6 0.73 0 0.8 @warmcolor 0.85
37 | 0.85 0 0.8 @hotcolor 1 0.6 0 0.8 @overcolor 1 0 0 0.8 @energycolor
38 | 0 0 1 0.8 @velocitycolor 1 0 0 0.8;
39 | #X obj 125 529 hoa.3d.decoder~ 3 ambisonic 20 ------;
40 | #X obj 125 714 hoa.dac~ 1:20 -----------------------;
41 | #X obj 125 227 hoa.3d.wider~ 3 ---------------------;
42 | #X obj 125 201 hoa.3d.encoder~ 3 ----------------;
43 | #X obj 225 153 c.number @size 53 17 @fontname "Helvetica" @fontweight
44 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
45 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
46 | @decimal 6 @bgcolor 0.7 0.7 0.7 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
47 | 0 0 0 1;
48 | #X obj 225 175 hoa.pi 0;
49 | #X obj 225 130 c.loadmess 0;
50 | #X obj 326 153 c.number @size 53 17 @fontname "Helvetica" @fontweight
51 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
52 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
53 | @decimal 6 @bgcolor 0.7 0.7 0.7 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
54 | 0 0 0 1;
55 | #X obj 326 175 hoa.pi 0;
56 | #X obj 326 130 c.loadmess 0;
57 | #X connect 2 0 21 16;
58 | #X connect 3 0 2 0;
59 | #X connect 6 0 3 0;
60 | #X connect 7 0 6 0;
61 | #X connect 8 0 22 0;
62 | #X connect 9 0 11 0;
63 | #X connect 10 0 9 0;
64 | #X connect 17 0 16 0;
65 | #X connect 19 0 18 0;
66 | #X connect 19 0 20 0;
67 | #X connect 19 1 18 1;
68 | #X connect 19 1 20 1;
69 | #X connect 19 2 18 2;
70 | #X connect 19 2 20 2;
71 | #X connect 19 3 18 3;
72 | #X connect 19 3 20 3;
73 | #X connect 19 4 18 4;
74 | #X connect 19 4 20 4;
75 | #X connect 19 5 18 5;
76 | #X connect 19 5 20 5;
77 | #X connect 19 6 18 6;
78 | #X connect 19 6 20 6;
79 | #X connect 19 7 18 7;
80 | #X connect 19 7 20 7;
81 | #X connect 19 8 18 8;
82 | #X connect 19 8 20 8;
83 | #X connect 19 9 18 9;
84 | #X connect 19 9 20 9;
85 | #X connect 19 10 18 10;
86 | #X connect 19 10 20 10;
87 | #X connect 19 11 18 11;
88 | #X connect 19 11 20 11;
89 | #X connect 19 12 18 12;
90 | #X connect 19 12 20 12;
91 | #X connect 19 13 18 13;
92 | #X connect 19 13 20 13;
93 | #X connect 19 14 18 14;
94 | #X connect 19 14 20 14;
95 | #X connect 19 15 18 15;
96 | #X connect 19 15 20 15;
97 | #X connect 19 16 18 16;
98 | #X connect 19 16 20 16;
99 | #X connect 19 17 18 17;
100 | #X connect 19 17 20 17;
101 | #X connect 19 18 18 18;
102 | #X connect 19 18 20 18;
103 | #X connect 19 19 18 19;
104 | #X connect 19 19 20 19;
105 | #X connect 21 0 15 0;
106 | #X connect 21 0 19 0;
107 | #X connect 21 1 15 1;
108 | #X connect 21 1 19 1;
109 | #X connect 21 2 15 2;
110 | #X connect 21 2 19 2;
111 | #X connect 21 3 15 3;
112 | #X connect 21 3 19 3;
113 | #X connect 21 4 15 4;
114 | #X connect 21 4 19 4;
115 | #X connect 21 5 15 5;
116 | #X connect 21 5 19 5;
117 | #X connect 21 6 15 6;
118 | #X connect 21 6 19 6;
119 | #X connect 21 7 15 7;
120 | #X connect 21 7 19 7;
121 | #X connect 21 8 15 8;
122 | #X connect 21 8 19 8;
123 | #X connect 21 9 15 9;
124 | #X connect 21 9 19 9;
125 | #X connect 21 10 15 10;
126 | #X connect 21 10 19 10;
127 | #X connect 21 11 15 11;
128 | #X connect 21 11 19 11;
129 | #X connect 21 12 15 12;
130 | #X connect 21 12 19 12;
131 | #X connect 21 13 15 13;
132 | #X connect 21 13 19 13;
133 | #X connect 21 14 15 14;
134 | #X connect 21 14 19 14;
135 | #X connect 21 15 15 15;
136 | #X connect 21 15 19 15;
137 | #X connect 22 0 21 0;
138 | #X connect 22 1 21 1;
139 | #X connect 22 2 21 2;
140 | #X connect 22 3 21 3;
141 | #X connect 22 4 21 4;
142 | #X connect 22 5 21 5;
143 | #X connect 22 6 21 6;
144 | #X connect 22 7 21 7;
145 | #X connect 22 8 21 8;
146 | #X connect 22 9 21 9;
147 | #X connect 22 10 21 10;
148 | #X connect 22 11 21 11;
149 | #X connect 22 12 21 12;
150 | #X connect 22 13 21 13;
151 | #X connect 22 14 21 14;
152 | #X connect 22 15 21 15;
153 | #X connect 23 0 24 0;
154 | #X connect 24 0 22 1;
155 | #X connect 25 0 23 0;
156 | #X connect 26 0 27 0;
157 | #X connect 27 0 22 2;
158 | #X connect 28 0 26 0;
159 | #X coords 0 686 1 685 100 60 0;
160 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.connect-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 476 114 686 323 10;
2 | #X obj 434 208 hoa.connect;
3 | #X obj 434 189 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
4 | -1 -1;
5 | #X obj 434 150 key;
6 | #X obj 434 169 sel 32;
7 | #X text 5 49 hoa.connect hepls to connect the hoa objects together.
8 | ;
9 | #X obj 31 95 hoa.2d.encoder~ 7 ---------------------------;
10 | #X obj 31 146 hoa.2d.decoder~ 7 ambisonic 16 --------------;
11 | #X obj 31 199 hoa.dac~ 1:16 -------------------------------;
12 | #X text 386 86 Select the objects you want to connect;
13 | #X text 386 96 then bang hoa.connect. In this example \,;
14 | #X text 386 106 we use the space key to generate the bang.;
15 | #X obj 13 23 c.patcherinfos;
16 | #X obj 18 6 loadbang;
17 | #X obj 3 6 hoa.help.header;
18 | #X obj 49 242 hoa.help.pub;
19 | #X obj 425 6 hoa.help.also;
20 | #X connect 1 0 0 0;
21 | #X connect 2 0 3 0;
22 | #X connect 3 0 1 0;
23 | #X connect 11 0 13 0;
24 | #X connect 12 0 11 0;
25 | #X coords 0 323 1 322 100 60 0;
26 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.dac~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 568 143 613 395 10;
2 | #X text 27 46 hoa.dac~ facilitates the routing of large array of loudspeakers.
3 | ;
4 | #X text 31 148 Channels 1 to 8 :;
5 | #X text 31 208 Channels 16 to 1 :;
6 | #X obj 30 298 hoa.dac~ 9:16 10 22 6:1 ------------------;
7 | #X text 31 268 Channels 9 to 16 \, 10 \, 22 and 6 to 1 :;
8 | #X text 31 88 Channels 1 2 :;
9 | #X obj 30 238 hoa.dac~ 16:1 ----------------------------;
10 | #X obj 30 178 hoa.dac~ 1:8 -----------------------------;
11 | #X obj 30 118 hoa.dac~ 1 2 -----------------------------;
12 | #X obj 32 21 c.patcherinfos;
13 | #X obj 37 4 loadbang;
14 | #X obj 22 4 hoa.help.header;
15 | #X obj 39 330 hoa.help.pub;
16 | #X obj 447 4 hoa.help.also;
17 | #X connect 9 0 11 0;
18 | #X connect 10 0 9 0;
19 | #X coords 0 395 1 394 100 60 0;
20 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.fx.convolve~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 109 96 797 672 10;
2 | #X msg 16 344 \; pd dsp 1;
3 | #X msg 16 379 \; pd dsp 0;
4 | #X obj 113 137 c.gain~ @size 131 10 @fontname "Helvetica" @fontweight
5 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
6 | @presetname "(null)" @mode 0 @ramp 20 @bgcolor 0.75 0.75 0.75 1 @bdcolor
7 | 0.5 0.5 0.5 1 @kncolor 0.5 0.5 0.5 1;
8 | #X obj 574 35 hoa.connect;
9 | #X obj 574 15 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
10 | -1;
11 | #X obj 2 24 c.patcherinfos;
12 | #X obj 2 7 loadbang;
13 | #X obj 2 7 hoa.help.header;
14 | #X obj 67 619 hoa.help.pub;
15 | #X obj 418 7 hoa.help.also;
16 | #X obj 113 328 hoa.2d.scope~ @size 189 189 @fontname "Helvetica" @fontweight
17 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
18 | @order 3 @view 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
19 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
20 | #X text 7 51 hoa.fx.convolve~ use the HiFi-Lofi convolution reverberation
21 | ;
22 | #X obj 113 536 hoa.2d.decoder~ 3 ambisonics 8;
23 | #X obj 113 568 hoa.dac~ 1:8 -----------------;
24 | #X obj 113 155 hoa.2d.encoder~ 3 ---------;
25 | #X obj 272 98 phasor~ 0.1;
26 | #X obj 113 98 phasor~ 1;
27 | #X obj 471 562 table \$0-ir;
28 | #X obj 471 539 soundfiler;
29 | #X obj 471 395 openpanel;
30 | #X obj 471 456 pack s s;
31 | #X obj 471 415 t s b;
32 | #X obj 472 374 c.bang @size 17 17 @fontname "Helvetica" @fontweight
33 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
34 | @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @bacolor 0 0 0 1;
35 | #X msg 471 478 read -resize \$1 \$2;
36 | #X obj 516 434 symbol \$0-ir;
37 | #X text 503 372 load an ir;
38 | #X obj 339 182 c.number @size 53 17 @fontname "Helvetica" @fontweight
39 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
40 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
41 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
42 | #X obj 338 161 c.loadmess 0;
43 | #X obj 429 182 c.number @size 53 17 @fontname "Helvetica" @fontweight
44 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
45 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
46 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
47 | #X msg 429 206 wet \$1;
48 | #X obj 428 161 c.loadmess 1;
49 | #X msg 339 206 dry \$1;
50 | #X obj 517 183 symbol \$0-ir;
51 | #X obj 272 124 hoa.pi~ 2;
52 | #X obj 517 155 c.bang @size 17 17 @fontname "Helvetica" @fontweight
53 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
54 | @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @bacolor 0 0 0 1;
55 | #X text 312 290 Attrs : wet \, dry and normalization;
56 | #X text 312 278 Arg : table name;
57 | #X obj 113 272 hoa.2d.process~ 3 hoa.fx.convolve~ harmonics \$0-ir
58 | @wet 1 @dry 0, f 31;
59 | #X text 408 75 For the moment \, the convolution is not optimized enough.
60 | ;
61 | #X text 408 85 You shouldn't use big irs or and high orders.;
62 | #X text 408 95 The process patch is very simple but you can use;
63 | #X text 408 105 a different ir for each harmonics to decorrelate them.
64 | ;
65 | #X text 408 115 You can also use it in the planewave domain.;
66 | #X msg 627 211 target \$1;
67 | #X obj 629 180 c.menu @size 40 17 @fontname "Helvetica" @fontweight
68 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
69 | @presetname "(null)" @hover 0 @items "all" "-1" "1" "-2" "2" "-3" "3"
70 | @states 0 0 0 0 0 0 0 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5
71 | 1 @textcolor 0 0 0 1;
72 | #X msg 517 210 set \$1;
73 | #X obj 450 498 c.loadmess read -resize Cistern.wav \$0-ir;
74 | #X connect 2 0 14 0;
75 | #X connect 4 0 3 0;
76 | #X connect 5 0 7 0;
77 | #X connect 6 0 5 0;
78 | #X connect 12 0 13 0;
79 | #X connect 12 1 13 1;
80 | #X connect 12 2 13 2;
81 | #X connect 12 3 13 3;
82 | #X connect 12 4 13 4;
83 | #X connect 12 5 13 5;
84 | #X connect 12 6 13 6;
85 | #X connect 12 7 13 7;
86 | #X connect 14 0 37 0;
87 | #X connect 14 1 37 1;
88 | #X connect 14 2 37 2;
89 | #X connect 14 3 37 3;
90 | #X connect 14 4 37 4;
91 | #X connect 14 5 37 5;
92 | #X connect 14 6 37 6;
93 | #X connect 15 0 33 1;
94 | #X connect 16 0 2 0;
95 | #X connect 19 0 21 0;
96 | #X connect 20 0 23 0;
97 | #X connect 21 0 20 0;
98 | #X connect 21 1 24 0;
99 | #X connect 22 0 19 0;
100 | #X connect 23 0 18 0;
101 | #X connect 24 0 20 1;
102 | #X connect 26 0 31 0;
103 | #X connect 27 0 26 0;
104 | #X connect 28 0 29 0;
105 | #X connect 29 0 37 7;
106 | #X connect 30 0 28 0;
107 | #X connect 31 0 37 7;
108 | #X connect 32 0 45 0;
109 | #X connect 33 0 14 1;
110 | #X connect 34 0 32 0;
111 | #X connect 37 0 10 0;
112 | #X connect 37 0 12 0;
113 | #X connect 37 1 10 1;
114 | #X connect 37 1 12 1;
115 | #X connect 37 2 10 2;
116 | #X connect 37 2 12 2;
117 | #X connect 37 3 10 3;
118 | #X connect 37 3 12 3;
119 | #X connect 37 4 10 4;
120 | #X connect 37 4 12 4;
121 | #X connect 37 5 10 5;
122 | #X connect 37 5 12 5;
123 | #X connect 37 6 10 6;
124 | #X connect 37 6 12 6;
125 | #X connect 43 0 37 7;
126 | #X connect 44 1 43 0;
127 | #X connect 45 0 37 7;
128 | #X connect 46 0 18 0;
129 | #X coords 0 672 1 671 100 60 0;
130 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.fx.dephaser~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 794 108 410 637 10;
2 | #X obj 24 141 hoa.3d.encoder~ 4, f 48;
3 | #X obj 25 211 hoa.3d.scope~ @size 303 303 @fontname "Helvetica" @fontweight
4 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
5 | @order 4 @view 0 0 0 @gain 1 @interval 100 @bgcolor 0.76 0.76 0.76
6 | 1 @bdcolor 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
7 | #X obj 108 87 c.dsp~ @size 30 30 @fontname "Helvetica" @fontweight
8 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
9 | @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @logocolor 0 0.6 0
10 | 0.8;
11 | #X obj 321 162 c.number @size 59 14 @fontname "Helvetica" @fontweight
12 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
13 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
14 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
15 | #X obj 25 521 hoa.3d.decoder~ 4 @channels 16, f 50;
16 | #X obj 25 548 hoa.dac~ 1:16, f 50;
17 | #X obj 24 183 hoa.3d.process~ 4 hoa.fx.dephaser~ harmonics, f 50;
18 | #X obj 24 118 osc~ 300;
19 | #X obj 166 118 hoa.pi~ 2;
20 | #X obj 216 96 phasor~ 0.5;
21 | #X obj 216 77 c.number @size 53 14 @fontname "Helvetica" @fontweight
22 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
23 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
24 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
25 | 0 0 0 1;
26 | #X obj 307 75 phasor~ 0.1;
27 | #X obj 307 56 c.number @size 53 14 @fontname "Helvetica" @fontweight
28 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
29 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
30 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
31 | 0 0 0 1;
32 | #X obj 308 119 hoa.pi~ 1;
33 | #N canvas 65 122 540 300 triangle~ 0;
34 | #X obj 229 118 outlet~;
35 | #X obj 229 54 expr~ if($v1 > 0.5 \, 1-$v1 \, $v1);
36 | #X obj 229 76 *~ 4;
37 | #X obj 229 97 -~ 1;
38 | #X obj 229 11 inlet~;
39 | #X obj 229 32 phasor~ 0.5;
40 | #X connect 1 0 2 0;
41 | #X connect 2 0 3 0;
42 | #X connect 3 0 0 0;
43 | #X connect 4 0 5 0;
44 | #X connect 5 0 1 0;
45 | #X restore 308 97 pd triangle~;
46 | #X obj 13 19 c.patcherinfos;
47 | #X obj 18 2 loadbang;
48 | #X obj 4 2 hoa.help.header;
49 | #X obj 119 582 hoa.help.also;
50 | #X text 3 46 hoa.fx.dephaser~ is a fft dephaser.;
51 | #X connect 0 0 6 0;
52 | #X connect 0 1 6 1;
53 | #X connect 0 2 6 2;
54 | #X connect 0 3 6 3;
55 | #X connect 0 4 6 4;
56 | #X connect 0 5 6 5;
57 | #X connect 0 6 6 6;
58 | #X connect 0 7 6 7;
59 | #X connect 0 8 6 8;
60 | #X connect 0 9 6 9;
61 | #X connect 0 10 6 10;
62 | #X connect 0 11 6 11;
63 | #X connect 0 12 6 12;
64 | #X connect 0 13 6 13;
65 | #X connect 0 14 6 14;
66 | #X connect 0 15 6 15;
67 | #X connect 0 16 6 16;
68 | #X connect 0 17 6 17;
69 | #X connect 0 18 6 18;
70 | #X connect 0 19 6 19;
71 | #X connect 0 20 6 20;
72 | #X connect 0 21 6 21;
73 | #X connect 0 22 6 22;
74 | #X connect 0 23 6 23;
75 | #X connect 0 24 6 24;
76 | #X connect 3 0 6 25;
77 | #X connect 4 0 5 0;
78 | #X connect 4 1 5 1;
79 | #X connect 4 2 5 2;
80 | #X connect 4 3 5 3;
81 | #X connect 4 4 5 4;
82 | #X connect 4 5 5 5;
83 | #X connect 4 6 5 6;
84 | #X connect 4 7 5 7;
85 | #X connect 4 8 5 8;
86 | #X connect 4 9 5 9;
87 | #X connect 4 10 5 10;
88 | #X connect 4 11 5 11;
89 | #X connect 4 12 5 12;
90 | #X connect 4 13 5 13;
91 | #X connect 4 14 5 14;
92 | #X connect 4 15 5 15;
93 | #X connect 6 0 1 0;
94 | #X connect 6 0 4 0;
95 | #X connect 6 1 1 1;
96 | #X connect 6 1 4 1;
97 | #X connect 6 2 1 2;
98 | #X connect 6 2 4 2;
99 | #X connect 6 3 1 3;
100 | #X connect 6 3 4 3;
101 | #X connect 6 4 1 4;
102 | #X connect 6 4 4 4;
103 | #X connect 6 5 1 5;
104 | #X connect 6 5 4 5;
105 | #X connect 6 6 1 6;
106 | #X connect 6 6 4 6;
107 | #X connect 6 7 1 7;
108 | #X connect 6 7 4 7;
109 | #X connect 6 8 1 8;
110 | #X connect 6 8 4 8;
111 | #X connect 6 9 1 9;
112 | #X connect 6 9 4 9;
113 | #X connect 6 10 1 10;
114 | #X connect 6 10 4 10;
115 | #X connect 6 11 1 11;
116 | #X connect 6 11 4 11;
117 | #X connect 6 12 1 12;
118 | #X connect 6 12 4 12;
119 | #X connect 6 13 1 13;
120 | #X connect 6 13 4 13;
121 | #X connect 6 14 1 14;
122 | #X connect 6 14 4 14;
123 | #X connect 6 15 1 15;
124 | #X connect 6 15 4 15;
125 | #X connect 6 16 1 16;
126 | #X connect 6 16 4 16;
127 | #X connect 6 17 1 17;
128 | #X connect 6 17 4 17;
129 | #X connect 6 18 1 18;
130 | #X connect 6 18 4 18;
131 | #X connect 6 19 1 19;
132 | #X connect 6 19 4 19;
133 | #X connect 6 20 1 20;
134 | #X connect 6 20 4 20;
135 | #X connect 6 21 1 21;
136 | #X connect 6 21 4 21;
137 | #X connect 6 22 1 22;
138 | #X connect 6 22 4 22;
139 | #X connect 6 23 1 23;
140 | #X connect 6 23 4 23;
141 | #X connect 6 24 1 24;
142 | #X connect 6 24 4 24;
143 | #X connect 7 0 0 0;
144 | #X connect 8 0 0 1;
145 | #X connect 9 0 8 1;
146 | #X connect 10 0 9 0;
147 | #X connect 11 0 14 0;
148 | #X connect 12 0 11 0;
149 | #X connect 13 0 0 2;
150 | #X connect 14 0 13 0;
151 | #X connect 15 0 17 0;
152 | #X connect 16 0 15 0;
153 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.fx.freeverb~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 398 35 797 672 10;
2 | #X msg 16 341 \; pd dsp 1;
3 | #X msg 16 376 \; pd dsp 0;
4 | #X obj 113 134 c.gain~ @size 131 10 @fontname "Helvetica" @fontweight
5 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
6 | @presetname "(null)" @mode 0 @ramp 20 @bgcolor 0.75 0.75 0.75 1 @bdcolor
7 | 0.5 0.5 0.5 1 @kncolor 0.5 0.5 0.5 1;
8 | #X obj 574 32 hoa.connect;
9 | #X obj 574 12 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
10 | -1;
11 | #X obj 2 21 c.patcherinfos;
12 | #X obj 2 4 loadbang;
13 | #X obj 2 4 hoa.help.header;
14 | #X obj 67 616 hoa.help.pub;
15 | #X obj 418 4 hoa.help.also;
16 | #X obj 113 325 hoa.2d.scope~ @size 189 189 @fontname "Helvetica" @fontweight
17 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
18 | @order 3 @view 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
19 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
20 | #X obj 113 533 hoa.2d.decoder~ 3 ambisonics 8;
21 | #X obj 113 565 hoa.dac~ 1:8 -----------------;
22 | #X obj 113 152 hoa.2d.encoder~ 3 ---------;
23 | #X obj 272 95 phasor~ 0.1;
24 | #X obj 113 95 phasor~ 1;
25 | #X obj 339 179 c.number @size 53 17 @fontname "Helvetica" @fontweight
26 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
27 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
28 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
29 | #X obj 338 158 c.loadmess 0;
30 | #X obj 429 179 c.number @size 53 17 @fontname "Helvetica" @fontweight
31 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
32 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
33 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
34 | #X msg 429 203 wet \$1;
35 | #X obj 428 158 c.loadmess 1;
36 | #X msg 339 203 dry \$1;
37 | #X obj 272 121 hoa.pi~ 2;
38 | #X text 368 402 You can also use it in the planewave domain.;
39 | #X obj 529 179 c.number @size 53 17 @fontname "Helvetica" @fontweight
40 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
41 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
42 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
43 | #X msg 529 203 damp \$1;
44 | #X obj 528 158 c.loadmess 0.5;
45 | #X obj 640 179 c.number @size 53 17 @fontname "Helvetica" @fontweight
46 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
47 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
48 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
49 | #X obj 639 158 c.loadmess 0.75;
50 | #X msg 640 203 roomsize \$1;
51 | #X text 368 368 With diffusion \, the roomsize and the damping value
52 | ;
53 | #X text 368 378 are mapped depending on the harmonic orders and degrees.
54 | ;
55 | #X obj 640 259 c.number @size 53 17 @fontname "Helvetica" @fontweight
56 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
57 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
58 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
59 | #X obj 639 238 c.loadmess 0.75;
60 | #X text 368 345 Attrs : wet \, dry \, roomsize \, damp \, diff;
61 | #X obj 113 259 hoa.2d.process~ 3 hoa.fx.freeverb~ harmonics @wet 1
62 | @dry 0 @roomsize 0.75 @ damp 0.5 @diff 0.75, f 31;
63 | #X msg 640 282 diff \$1;
64 | #X text 7 48 hoa.fx.freeverb~ uses the freeverb reverberation.;
65 | #X connect 2 0 13 0;
66 | #X connect 4 0 3 0;
67 | #X connect 5 0 7 0;
68 | #X connect 6 0 5 0;
69 | #X connect 11 0 12 0;
70 | #X connect 11 1 12 1;
71 | #X connect 11 2 12 2;
72 | #X connect 11 3 12 3;
73 | #X connect 11 4 12 4;
74 | #X connect 11 5 12 5;
75 | #X connect 11 6 12 6;
76 | #X connect 11 7 12 7;
77 | #X connect 13 0 35 0;
78 | #X connect 13 1 35 1;
79 | #X connect 13 2 35 2;
80 | #X connect 13 3 35 3;
81 | #X connect 13 4 35 4;
82 | #X connect 13 5 35 5;
83 | #X connect 13 6 35 6;
84 | #X connect 14 0 22 1;
85 | #X connect 15 0 2 0;
86 | #X connect 16 0 21 0;
87 | #X connect 17 0 16 0;
88 | #X connect 18 0 19 0;
89 | #X connect 19 0 35 7;
90 | #X connect 20 0 18 0;
91 | #X connect 21 0 35 7;
92 | #X connect 22 0 13 1;
93 | #X connect 24 0 25 0;
94 | #X connect 25 0 35 7;
95 | #X connect 26 0 24 0;
96 | #X connect 27 0 29 0;
97 | #X connect 28 0 27 0;
98 | #X connect 29 0 35 7;
99 | #X connect 32 0 36 0;
100 | #X connect 33 0 32 0;
101 | #X connect 35 0 10 0;
102 | #X connect 35 0 11 0;
103 | #X connect 35 1 10 1;
104 | #X connect 35 1 11 1;
105 | #X connect 35 2 10 2;
106 | #X connect 35 2 11 2;
107 | #X connect 35 3 10 3;
108 | #X connect 35 3 11 3;
109 | #X connect 35 4 10 4;
110 | #X connect 35 4 11 4;
111 | #X connect 35 5 10 5;
112 | #X connect 35 5 11 5;
113 | #X connect 35 6 10 6;
114 | #X connect 35 6 11 6;
115 | #X connect 36 0 35 7;
116 | #X coords 0 672 1 671 100 60 0;
117 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.fx.mirror~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 247 84 664 684 10;
2 | #X msg 16 341 \; pd dsp 1;
3 | #X msg 16 376 \; pd dsp 0;
4 | #X obj 113 105 hoa.soundgrain;
5 | #X obj 113 134 c.gain~ @size 131 10 @fontname "Helvetica" @fontweight
6 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
7 | @presetname "(null)" @mode 0 @ramp 20 @bgcolor 0.75 0.75 0.75 1 @bdcolor
8 | 0.5 0.5 0.5 1 @kncolor 0.5 0.5 0.5 1;
9 | #X obj 574 32 hoa.connect;
10 | #X obj 574 12 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
11 | -1;
12 | #X obj 2 21 c.patcherinfos;
13 | #X obj 2 4 loadbang;
14 | #X obj 2 4 hoa.help.header;
15 | #X obj 67 616 hoa.help.pub;
16 | #X obj 418 4 hoa.help.also;
17 | #X obj 113 533 hoa.2d.decoder~ 7 ambisonics 16;
18 | #X obj 113 565 hoa.dac~ 1:16 -----------------;
19 | #X obj 113 325 hoa.2d.scope~ @size 189 189 @fontname "Helvetica" @fontweight
20 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
21 | @order 7 @view 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
22 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
23 | #X obj 369 209 c.number @size 53 17 @fontname "Helvetica" @fontweight
24 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
25 | @presetname "(null)" @min -1 @max 1 @minmax -1 1 @decimal 6 @bgcolor
26 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
27 | #X text 7 48 hoa.fx.mirror~ reveals or hides the mirror image of the
28 | sound field.;
29 | #X obj 113 152 hoa.2d.encoder~ 7 -----------;
30 | #X obj 368 188 c.loadmess 0;
31 | #X obj 284 121 hoa.pi~ 0.25;
32 | #X text 367 242 1 : the orginal sound field;
33 | #X text 367 262 0 : the orginal and the mirror sound fields;
34 | #X text 361 282 -1 : the mirror sound field;
35 | #X obj 113 269 hoa.2d.process~ 7 hoa.fx.mirror~ harmonics, f 31;
36 | #X connect 2 0 3 0;
37 | #X connect 3 0 16 0;
38 | #X connect 5 0 4 0;
39 | #X connect 6 0 8 0;
40 | #X connect 7 0 6 0;
41 | #X connect 11 0 12 0;
42 | #X connect 11 1 12 1;
43 | #X connect 11 2 12 2;
44 | #X connect 11 3 12 3;
45 | #X connect 11 4 12 4;
46 | #X connect 11 5 12 5;
47 | #X connect 11 6 12 6;
48 | #X connect 11 7 12 7;
49 | #X connect 11 8 12 8;
50 | #X connect 11 9 12 9;
51 | #X connect 11 10 12 10;
52 | #X connect 11 11 12 11;
53 | #X connect 11 12 12 12;
54 | #X connect 11 13 12 13;
55 | #X connect 11 14 12 14;
56 | #X connect 11 15 12 15;
57 | #X connect 14 0 22 15;
58 | #X connect 16 0 22 0;
59 | #X connect 16 1 22 1;
60 | #X connect 16 2 22 2;
61 | #X connect 16 3 22 3;
62 | #X connect 16 4 22 4;
63 | #X connect 16 5 22 5;
64 | #X connect 16 6 22 6;
65 | #X connect 16 7 22 7;
66 | #X connect 16 8 22 8;
67 | #X connect 16 9 22 9;
68 | #X connect 16 10 22 10;
69 | #X connect 16 11 22 11;
70 | #X connect 16 12 22 12;
71 | #X connect 16 13 22 13;
72 | #X connect 16 14 22 14;
73 | #X connect 17 0 14 0;
74 | #X connect 18 0 16 1;
75 | #X connect 22 0 11 0;
76 | #X connect 22 0 13 0;
77 | #X connect 22 1 11 1;
78 | #X connect 22 1 13 1;
79 | #X connect 22 2 11 2;
80 | #X connect 22 2 13 2;
81 | #X connect 22 3 11 3;
82 | #X connect 22 3 13 3;
83 | #X connect 22 4 11 4;
84 | #X connect 22 4 13 4;
85 | #X connect 22 5 11 5;
86 | #X connect 22 5 13 5;
87 | #X connect 22 6 11 6;
88 | #X connect 22 6 13 6;
89 | #X connect 22 7 11 7;
90 | #X connect 22 7 13 7;
91 | #X connect 22 8 11 8;
92 | #X connect 22 8 13 8;
93 | #X connect 22 9 11 9;
94 | #X connect 22 9 13 9;
95 | #X connect 22 10 11 10;
96 | #X connect 22 10 13 10;
97 | #X connect 22 11 11 11;
98 | #X connect 22 11 13 11;
99 | #X connect 22 12 11 12;
100 | #X connect 22 12 13 12;
101 | #X connect 22 13 11 13;
102 | #X connect 22 13 13 13;
103 | #X connect 22 14 11 14;
104 | #X connect 22 14 13 14;
105 | #X coords 0 684 1 683 100 60 0;
106 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.pi-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 103 92 654 280 10;
2 | #X obj 46 143 hoa.pi 0.25;
3 | #X obj 150 142 hoa.pi 0.5;
4 | #X obj 236 143 hoa.pi 1;
5 | #X obj 150 113 c.number @size 53 17 @fontname "Helvetica" @fontweight
6 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
7 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
8 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
9 | 0 0 0 1;
10 | #X obj 150 173 c.number @size 71 17 @fontname "Helvetica" @fontweight
11 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
12 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
13 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
14 | 0 0 0 1;
15 | #X obj 46 173 c.number @size 75 17 @fontname "Helvetica" @fontweight
16 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
17 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
18 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
19 | 0 0 0 1;
20 | #X obj 236 173 c.number @size 73 17 @fontname "Helvetica" @fontweight
21 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
22 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
23 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
24 | 0 0 0 1;
25 | #X obj 236 113 c.bang @size 17 17 @fontname "Helvetica" @fontweight
26 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
27 | @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @bacolor 0 0 0 1;
28 | #X text 6 52 hoa.pi is for people that never remember more than 4 decimals
29 | or want to initialize a good Pi number.;
30 | #X obj 46 115 c.loadmess;
31 | #X obj 31 205 hoa.help.pub;
32 | #X obj 15 25 c.patcherinfos;
33 | #X obj 20 8 loadbang;
34 | #X obj 5 8 hoa.help.header;
35 | #X obj 421 8 hoa.help.also;
36 | #X connect 0 0 5 0;
37 | #X connect 1 0 4 0;
38 | #X connect 2 0 6 0;
39 | #X connect 3 0 1 0;
40 | #X connect 7 0 2 0;
41 | #X connect 9 0 0 0;
42 | #X connect 11 0 13 0;
43 | #X connect 12 0 11 0;
44 | #X coords 0 280 1 279 100 60 0;
45 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.pi~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 344 82 605 277 10;
2 | #X obj 152 112 c.number @size 53 17 @fontname "Helvetica" @fontweight
3 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
4 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
5 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
6 | 0 0 0 1;
7 | #X obj 48 142 hoa.pi~ 0.25;
8 | #X obj 48 180 c.number~ @size 53 17 @fontname "Helvetica" @fontweight
9 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
10 | @interval 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5
11 | 0.5 1 @textcolor 0 0 0 1;
12 | #X msg 463 133 \; pd dsp 1;
13 | #X msg 463 168 \; pd dsp 0;
14 | #X obj 152 141 hoa.pi~ 0.5;
15 | #X obj 152 180 c.number~ @size 53 17 @fontname "Helvetica" @fontweight
16 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
17 | @interval 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5
18 | 0.5 1 @textcolor 0 0 0 1;
19 | #X obj 238 180 c.number~ @size 53 17 @fontname "Helvetica" @fontweight
20 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
21 | @interval 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5
22 | 0.5 1 @textcolor 0 0 0 1;
23 | #X obj 238 142 hoa.pi~ 2;
24 | #X obj 289 110 phasor~ 0.1;
25 | #X text 8 51 hoa.pi~ is for people that never remember more than 4
26 | decimals or want to initialize a good Pi number.;
27 | #X text 374 110 Right inlet;
28 | #X text 374 120 control the;
29 | #X text 374 130 phase.;
30 | #X obj 14 23 c.patcherinfos;
31 | #X obj 19 6 loadbang;
32 | #X obj 4 6 hoa.help.header;
33 | #X obj 16 206 hoa.help.pub;
34 | #X obj 413 6 hoa.help.also;
35 | #X connect 0 0 5 0;
36 | #X connect 1 0 2 0;
37 | #X connect 5 0 6 0;
38 | #X connect 8 0 7 0;
39 | #X connect 9 0 8 1;
40 | #X connect 14 0 16 0;
41 | #X connect 15 0 14 0;
42 | #X coords 0 277 1 276 100 60 0;
43 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.process~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 414 82 901 661 10;
2 | #X obj 594 28 hoa.connect;
3 | #X obj 594 7 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
4 | -1;
5 | #X text 15 152 2nd argument is the name of the patcher to instantiate.
6 | ;
7 | #X text 15 102 1st argument is the order if you use hoa.process~ in
8 | the circular harmonics domain or the number of channels if you use
9 | it in the plane waves domain.;
10 | #X text 15 272 Extra arguments and attributes are sent to object hoa.this.process~
11 | if there is one inside the patcher. You should look at the help.;
12 | #X text 15 322 The number of inlets and outlets depends on the inlet
13 | and outlet configuration of the patcher. You should look at the help.
14 | ;
15 | #X text 15 372 Important: If you edit the patcher \, you have recreate
16 | hoa.process~ to reflect the changes.;
17 | #X text 12 47 hoa.process~ helps the creation of processing in the
18 | circular or spherical harmonics and plane waves domains by instantiating
19 | several instances of a patcher.;
20 | #X text 15 172 3rd argument is the domain \, harmonics (default) or
21 | planewaves. Note that if you use hoa.process~ in the harmonics domain
22 | \, it instantiates 2 * order + 1 times (the number of harmonics in
23 | 2D) or (order + 1) * (order + 1) (the number of harmonics in 3D) the
24 | partcher and if you use it in the plane waves domain \, it instanctiates
25 | the patcher as many times as the number of channels.;
26 | #X obj 18 20 c.patcherinfos;
27 | #X obj 23 3 loadbang;
28 | #X obj 8 3 hoa.help.header;
29 | #X obj 17 425 hoa.help.pub;
30 | #X obj 421 3 hoa.help.also;
31 | #X text 439 549 The hoa.process~ use of this patch is an example made
32 | to show how it works. You would prefer to look at the real uses of
33 | hoa.process~.;
34 | #X text 435 50 Open;
35 | #X text 435 70 Use open message to open a specific instance :;
36 | #X msg 436 94 open 1;
37 | #X msg 497 94 open all;
38 | #X text 433 153 Double-click open the 1st planewave intance \, or the
39 | harmonic 0 instance.;
40 | #X obj 436 123 hoa.2d.process~ 4 hoa.processexample planewaves;
41 | #X text 435 190 Target;
42 | #X text 435 210 Use target message to route the message to a specific
43 | instance :;
44 | #X obj 657 245 c.number @size 53 17 @fontname "Helvetica" @fontweight
45 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
46 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
47 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
48 | 0 0 0 1;
49 | #X msg 439 245 target 1;
50 | #X msg 510 245 target -2;
51 | #X msg 581 245 target all;
52 | #X obj 439 310 print;
53 | #X msg 591 345 target all;
54 | #X obj 439 420 print;
55 | #X msg 439 345 target 2 1;
56 | #X msg 510 345 target 3 -2;
57 | #X obj 667 345 c.number @size 53 17 @fontname "Helvetica" @fontweight
58 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
59 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
60 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
61 | 0 0 0 1;
62 | #X msg 591 455 target all;
63 | #X obj 439 530 print;
64 | #X obj 667 455 c.number @size 53 17 @fontname "Helvetica" @fontweight
65 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
66 | @presetname "(null)" @min "(null)" @max "(null)" @minmax "(null)" "(null)"
67 | @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
68 | 0 0 0 1;
69 | #X msg 439 455 target 1;
70 | #X msg 510 455 target 2;
71 | #X obj 439 501 hoa.3d.process~ 3 hoa.processexample planewaves;
72 | #X obj 439 391 hoa.3d.process~ 3 hoa.processexample harmonics;
73 | #X obj 439 281 hoa.2d.process~ 3 hoa.processexample harmonics;
74 | #X connect 1 0 0 0;
75 | #X connect 9 0 11 0;
76 | #X connect 10 0 9 0;
77 | #X connect 17 0 20 0;
78 | #X connect 18 0 20 0;
79 | #X connect 23 0 40 0;
80 | #X connect 24 0 40 0;
81 | #X connect 25 0 40 0;
82 | #X connect 26 0 40 0;
83 | #X connect 28 0 39 0;
84 | #X connect 30 0 39 0;
85 | #X connect 31 0 39 0;
86 | #X connect 32 0 39 0;
87 | #X connect 33 0 38 0;
88 | #X connect 35 0 38 0;
89 | #X connect 36 0 38 0;
90 | #X connect 37 0 38 0;
91 | #X connect 38 0 34 0;
92 | #X connect 39 0 29 0;
93 | #X connect 40 0 27 0;
94 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.syn.delay~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 120 107 677 681 10;
2 | #X msg 362 357 \; pd dsp 1;
3 | #X msg 362 392 \; pd dsp 0;
4 | #X obj 74 95 hoa.soundgrain;
5 | #X obj 74 124 c.gain~ @size 131 10 @fontname "Helvetica" @fontweight
6 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
7 | @presetname "(null)" @mode 0 @ramp 20 @bgcolor 0.75 0.75 0.75 1 @bdcolor
8 | 0.5 0.5 0.5 1 @kncolor 0.5 0.5 0.5 1;
9 | #X obj 575 32 hoa.connect;
10 | #X obj 575 12 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
11 | -1;
12 | #X obj 3 21 c.patcherinfos;
13 | #X obj 3 4 loadbang;
14 | #X obj 3 4 hoa.help.header;
15 | #X obj 33 582 hoa.help.pub;
16 | #X obj 419 4 hoa.help.also;
17 | #X obj 74 523 hoa.2d.decoder~ 7 ambisonics 16;
18 | #X obj 74 555 hoa.dac~ 1:16 -----------------;
19 | #X obj 74 248 hoa.2d.scope~ @size 189 189 @fontname "Helvetica" @fontweight
20 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
21 | @order 7 @view 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
22 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
23 | #X obj 257 141 c.number @size 53 17 @fontname "Helvetica" @fontweight
24 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
25 | @presetname "(null)" @min 0 @max 5000 @minmax 0 5000 @decimal 6 @bgcolor
26 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
27 | #X text 259 71 Control the global delay time., f 12;
28 | #X text 8 48 hoa.syn.delay~ uses delay lines without flanging effect
29 | to synthesize a diffuse a sound field.;
30 | #X obj 74 165 hoa.2d.process~ 7 hoa.syn.delay~ harmonics @delay 5000
31 | , f 31;
32 | #X text 384 188 The delay time is mapped depending on the;
33 | #X text 384 198 orders and the degrees of the harmonics.;
34 | #X text 384 208 You can also use it in the plane waves domain.;
35 | #X obj 256 120 c.loadmess 5000;
36 | #X text 298 284 attr : delay (ms);
37 | #X text 318 142 ms;
38 | #X connect 2 0 3 0;
39 | #X connect 3 0 17 0;
40 | #X connect 5 0 4 0;
41 | #X connect 6 0 8 0;
42 | #X connect 7 0 6 0;
43 | #X connect 11 0 12 0;
44 | #X connect 11 1 12 1;
45 | #X connect 11 2 12 2;
46 | #X connect 11 3 12 3;
47 | #X connect 11 4 12 4;
48 | #X connect 11 5 12 5;
49 | #X connect 11 6 12 6;
50 | #X connect 11 7 12 7;
51 | #X connect 11 8 12 8;
52 | #X connect 11 9 12 9;
53 | #X connect 11 10 12 10;
54 | #X connect 11 11 12 11;
55 | #X connect 11 12 12 12;
56 | #X connect 11 13 12 13;
57 | #X connect 11 14 12 14;
58 | #X connect 11 15 12 15;
59 | #X connect 14 0 17 1;
60 | #X connect 17 0 11 0;
61 | #X connect 17 0 13 0;
62 | #X connect 17 1 11 1;
63 | #X connect 17 1 13 1;
64 | #X connect 17 2 11 2;
65 | #X connect 17 2 13 2;
66 | #X connect 17 3 11 3;
67 | #X connect 17 3 13 3;
68 | #X connect 17 4 11 4;
69 | #X connect 17 4 13 4;
70 | #X connect 17 5 11 5;
71 | #X connect 17 5 13 5;
72 | #X connect 17 6 11 6;
73 | #X connect 17 6 13 6;
74 | #X connect 17 7 11 7;
75 | #X connect 17 7 13 7;
76 | #X connect 17 8 11 8;
77 | #X connect 17 8 13 8;
78 | #X connect 17 9 11 9;
79 | #X connect 17 9 13 9;
80 | #X connect 17 10 11 10;
81 | #X connect 17 10 13 10;
82 | #X connect 17 11 11 11;
83 | #X connect 17 11 13 11;
84 | #X connect 17 12 11 12;
85 | #X connect 17 12 13 12;
86 | #X connect 17 13 11 13;
87 | #X connect 17 13 13 13;
88 | #X connect 17 14 11 14;
89 | #X connect 17 14 13 14;
90 | #X connect 21 0 14 0;
91 | #X coords 0 681 1 680 100 60 0;
92 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.syn.grain~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 120 107 675 681 10;
2 | #X msg 290 358 \; pd dsp 1;
3 | #X msg 290 393 \; pd dsp 0;
4 | #X obj 73 95 hoa.soundgrain;
5 | #X obj 73 124 c.gain~ @size 131 10 @fontname "Helvetica" @fontweight
6 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
7 | @presetname "(null)" @mode 0 @ramp 20 @bgcolor 0.75 0.75 0.75 1 @bdcolor
8 | 0.5 0.5 0.5 1 @kncolor 0.5 0.5 0.5 1;
9 | #X obj 574 32 hoa.connect;
10 | #X obj 574 12 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
11 | -1;
12 | #X obj 2 21 c.patcherinfos;
13 | #X obj 2 4 loadbang;
14 | #X obj 2 4 hoa.help.header;
15 | #X obj 32 582 hoa.help.pub;
16 | #X obj 418 4 hoa.help.also;
17 | #X obj 73 523 hoa.2d.decoder~ 7 ambisonics 16;
18 | #X obj 73 555 hoa.dac~ 1:16 -----------------;
19 | #X obj 73 248 hoa.2d.scope~ @size 189 189 @fontname "Helvetica" @fontweight
20 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
21 | @order 7 @view 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
22 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
23 | #X text 363 188 You can also use it in the plane waves domain.;
24 | #X msg 453 318 size \$1;
25 | #X obj 453 291 c.number @size 53 17 @fontname "Helvetica" @fontweight
26 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
27 | @presetname "(null)" @min 0 @max "(null)" @minmax 0 "(null)" @decimal
28 | 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0
29 | 1;
30 | #X obj 543 291 c.number @size 53 17 @fontname "Helvetica" @fontweight
31 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
32 | @presetname "(null)" @min 0 @max 5000 @minmax 0 5000 @decimal 6 @bgcolor
33 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
34 | #X msg 543 318 delay \$1;
35 | #X obj 453 411 c.number @size 53 17 @fontname "Helvetica" @fontweight
36 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
37 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
38 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
39 | #X obj 543 411 c.number @size 53 17 @fontname "Helvetica" @fontweight
40 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
41 | @presetname "(null)" @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor
42 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
43 | #X msg 453 438 feedback \$1;
44 | #X msg 543 438 rarefaction \$1;
45 | #X obj 453 263 c.loadmess 20;
46 | #X obj 543 263 c.loadmess 5000;
47 | #X obj 543 383 c.loadmess 0.4;
48 | #X obj 453 383 c.loadmess 0.8;
49 | #N canvas 237 132 503 391 hoa_grain_env 0;
50 | #X obj 270 148 / 256;
51 | #X obj 270 193 * 1;
52 | #X obj 270 247 * 0.5;
53 | #X obj 270 219 sin;
54 | #X obj 270 271 + 0.5;
55 | #X obj 271 8 c.loadmess;
56 | #X obj 270 120 t f f;
57 | #X obj 270 299 pack;
58 | #X obj 306 166 hoa.pi 1;
59 | #X obj 270 169 - 0.5;
60 | #X obj 271 32 t b b;
61 | #X obj 270 323 tabwrite \$0-hoa_grain_array;
62 | #X obj 270 76 until;
63 | #X obj 270 97 f;
64 | #X obj 297 98 + 1;
65 | #X msg 270 55 512;
66 | #X connect 0 0 9 0;
67 | #X connect 1 0 3 0;
68 | #X connect 2 0 4 0;
69 | #X connect 3 0 2 0;
70 | #X connect 4 0 7 0;
71 | #X connect 5 0 10 0;
72 | #X connect 6 0 0 0;
73 | #X connect 6 1 7 1;
74 | #X connect 7 0 11 0;
75 | #X connect 8 0 1 1;
76 | #X connect 9 0 1 0;
77 | #X connect 10 0 15 0;
78 | #X connect 10 1 8 0;
79 | #X connect 12 0 13 0;
80 | #X connect 13 0 14 0;
81 | #X connect 13 0 6 0;
82 | #X connect 14 0 13 1;
83 | #X connect 15 0 12 0;
84 | #X restore 447 97 pd hoa_grain_env;
85 | #X obj 446 77 table \$0-hoa_grain_array 512;
86 | #X obj 256 131 r \$0-hoagrain;
87 | #X obj 453 349 s \$0-hoagrain;
88 | #X obj 453 469 s \$0-hoagrain;
89 | #X text 269 263 arg : the envelope table;
90 | #X obj 73 165 hoa.2d.process~ 7 hoa.syn.grain~ harmonics \$0-hoa_grain_array
91 | @size 100 @delay 1000 @feedback 0.5 @rarefaction 0, f 31;
92 | #X text 267 284 attr : size (ms) \, delay;
93 | #X text 301 296 feedback \, rarefaction;
94 | #X text 363 168 The grain size and delay time are mapped depending
95 | ;
96 | #X text 363 178 on the orders and the degrees of the harmonics.;
97 | #X text 7 48 hoa.syn.grain~ uses quasi-synchronous granular to synthesize
98 | a diffuse a sound field.;
99 | #X connect 2 0 3 0;
100 | #X connect 3 0 33 0;
101 | #X connect 5 0 4 0;
102 | #X connect 6 0 8 0;
103 | #X connect 7 0 6 0;
104 | #X connect 11 0 12 0;
105 | #X connect 11 1 12 1;
106 | #X connect 11 2 12 2;
107 | #X connect 11 3 12 3;
108 | #X connect 11 4 12 4;
109 | #X connect 11 5 12 5;
110 | #X connect 11 6 12 6;
111 | #X connect 11 7 12 7;
112 | #X connect 11 8 12 8;
113 | #X connect 11 9 12 9;
114 | #X connect 11 10 12 10;
115 | #X connect 11 11 12 11;
116 | #X connect 11 12 12 12;
117 | #X connect 11 13 12 13;
118 | #X connect 11 14 12 14;
119 | #X connect 11 15 12 15;
120 | #X connect 15 0 30 0;
121 | #X connect 16 0 15 0;
122 | #X connect 17 0 18 0;
123 | #X connect 18 0 30 0;
124 | #X connect 19 0 21 0;
125 | #X connect 20 0 22 0;
126 | #X connect 21 0 31 0;
127 | #X connect 22 0 31 0;
128 | #X connect 23 0 16 0;
129 | #X connect 24 0 17 0;
130 | #X connect 25 0 20 0;
131 | #X connect 26 0 19 0;
132 | #X connect 29 0 33 1;
133 | #X connect 33 0 11 0;
134 | #X connect 33 0 13 0;
135 | #X connect 33 1 11 1;
136 | #X connect 33 1 13 1;
137 | #X connect 33 2 11 2;
138 | #X connect 33 2 13 2;
139 | #X connect 33 3 11 3;
140 | #X connect 33 3 13 3;
141 | #X connect 33 4 11 4;
142 | #X connect 33 4 13 4;
143 | #X connect 33 5 11 5;
144 | #X connect 33 5 13 5;
145 | #X connect 33 6 11 6;
146 | #X connect 33 6 13 6;
147 | #X connect 33 7 11 7;
148 | #X connect 33 7 13 7;
149 | #X connect 33 8 11 8;
150 | #X connect 33 8 13 8;
151 | #X connect 33 9 11 9;
152 | #X connect 33 9 13 9;
153 | #X connect 33 10 11 10;
154 | #X connect 33 10 13 10;
155 | #X connect 33 11 11 11;
156 | #X connect 33 11 13 11;
157 | #X connect 33 12 11 12;
158 | #X connect 33 12 13 12;
159 | #X connect 33 13 11 13;
160 | #X connect 33 13 13 13;
161 | #X connect 33 14 11 14;
162 | #X connect 33 14 13 14;
163 | #X coords 0 681 1 680 100 60 0;
164 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.syn.ringmod~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 114 89 675 681 10;
2 | #X msg 363 361 \; pd dsp 1;
3 | #X msg 363 396 \; pd dsp 0;
4 | #X obj 75 99 hoa.soundgrain;
5 | #X obj 75 128 c.gain~ @size 131 10 @fontname "Helvetica" @fontweight
6 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
7 | @presetname "(null)" @mode 0 @ramp 20 @bgcolor 0.75 0.75 0.75 1 @bdcolor
8 | 0.5 0.5 0.5 1 @kncolor 0.5 0.5 0.5 1;
9 | #X obj 576 36 hoa.connect;
10 | #X obj 576 16 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
11 | -1;
12 | #X obj 4 25 c.patcherinfos;
13 | #X obj 4 8 loadbang;
14 | #X obj 4 8 hoa.help.header;
15 | #X obj 34 586 hoa.help.pub;
16 | #X obj 420 8 hoa.help.also;
17 | #X obj 75 527 hoa.2d.decoder~ 7 ambisonics 16;
18 | #X obj 75 559 hoa.dac~ 1:16 -----------------;
19 | #X obj 75 252 hoa.2d.scope~ @size 189 189 @fontname "Helvetica" @fontweight
20 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
21 | @order 7 @view 0 @gain 10 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
22 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
23 | #X obj 258 145 c.number @size 53 17 @fontname "Helvetica" @fontweight
24 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
25 | @presetname "(null)" @min 0 @max 5000 @minmax 0 5000 @decimal 6 @bgcolor
26 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
27 | #X text 345 222 orders and the degrees of the harmonics.;
28 | #X text 345 232 You can also use it in the plane waves domain.;
29 | #X text 260 75 Control the global frequency., f 12;
30 | #X text 319 148 Hz;
31 | #X text 299 288 arg : frequency (Hz);
32 | #X text 345 212 The frequency is mapped depending on the;
33 | #X obj 257 124 c.loadmess 20;
34 | #X text 9 52 hoa.syn.ringmod~ uses ring modulation to synthesize a
35 | diffuse a sound field.;
36 | #X obj 75 169 hoa.2d.process~ 7 hoa.syn.ringmod~ harmonics 20, f 31
37 | ;
38 | #X connect 2 0 3 0;
39 | #X connect 3 0 23 0;
40 | #X connect 5 0 4 0;
41 | #X connect 6 0 8 0;
42 | #X connect 7 0 6 0;
43 | #X connect 11 0 12 0;
44 | #X connect 11 1 12 1;
45 | #X connect 11 2 12 2;
46 | #X connect 11 3 12 3;
47 | #X connect 11 4 12 4;
48 | #X connect 11 5 12 5;
49 | #X connect 11 6 12 6;
50 | #X connect 11 7 12 7;
51 | #X connect 11 8 12 8;
52 | #X connect 11 9 12 9;
53 | #X connect 11 10 12 10;
54 | #X connect 11 11 12 11;
55 | #X connect 11 12 12 12;
56 | #X connect 11 13 12 13;
57 | #X connect 11 14 12 14;
58 | #X connect 11 15 12 15;
59 | #X connect 14 0 23 1;
60 | #X connect 21 0 14 0;
61 | #X connect 23 0 11 0;
62 | #X connect 23 0 13 0;
63 | #X connect 23 1 11 1;
64 | #X connect 23 1 13 1;
65 | #X connect 23 2 11 2;
66 | #X connect 23 2 13 2;
67 | #X connect 23 3 11 3;
68 | #X connect 23 3 13 3;
69 | #X connect 23 4 11 4;
70 | #X connect 23 4 13 4;
71 | #X connect 23 5 11 5;
72 | #X connect 23 5 13 5;
73 | #X connect 23 6 11 6;
74 | #X connect 23 6 13 6;
75 | #X connect 23 7 11 7;
76 | #X connect 23 7 13 7;
77 | #X connect 23 8 11 8;
78 | #X connect 23 8 13 8;
79 | #X connect 23 9 11 9;
80 | #X connect 23 9 13 9;
81 | #X connect 23 10 11 10;
82 | #X connect 23 10 13 10;
83 | #X connect 23 11 11 11;
84 | #X connect 23 11 13 11;
85 | #X connect 23 12 11 12;
86 | #X connect 23 12 13 12;
87 | #X connect 23 13 11 13;
88 | #X connect 23 13 13 13;
89 | #X connect 23 14 11 14;
90 | #X connect 23 14 13 14;
91 | #X coords 0 681 1 680 100 60 0;
92 |
--------------------------------------------------------------------------------
/Package/Hoa/helps/hoa.thisprocess~-help.pd:
--------------------------------------------------------------------------------
1 | #N canvas 119 182 927 585 10;
2 | #X text 12 140 The 2nd outlet outputs the hoa.process~ mode.;
3 | #X msg 18 182 open all;
4 | #X msg 18 252 open all;
5 | #X text 83 266 Mode : 2d - planewaves;
6 | #X text 83 196 Mode : 2d - harmonics;
7 | #X msg 18 332 open all;
8 | #X msg 18 402 open all;
9 | #X text 83 346 Mode : 3d - harmonics;
10 | #X text 83 416 Mode : 3d - planewaves;
11 | #X text 483 140 The 4th outlet outputs the patcher attributes.;
12 | #X msg 488 182 open 1;
13 | #X obj 488 222 hoa.2d.process~ 1 hoa.thisprocexample2~ planewaves This
14 | is a rock example @artist Jimi Hendrix @album Electric Ladyland @song
15 | Voodoo Chile;
16 | #X msg 488 322 open 1;
17 | #X obj 488 362 hoa.2d.process~ 1 hoa.thisprocexample2~ planewaves;
18 | #X text 543 184 After the mode \, add arguments and after arguments
19 | \, add the attributes that are defined by a key "@attr".;
20 | #X text 543 324 Without arguments or attributes typed in hoa.process~
21 | \, this.process~ use the default ones if there are defined.;
22 | #X text 473 460 The hoa.thisprocess~ uses of this patch are examples
23 | made to show how it works. You would prefer to look at the real uses
24 | of hoa.process~.;
25 | #X obj 18 442 hoa.3d.process~ 3 hoa.thisprocexample~ planewaves;
26 | #X obj 18 372 hoa.3d.process~ 1 hoa.thisprocexample~ harmonics;
27 | #X obj 15 21 c.patcherinfos;
28 | #X obj 20 4 loadbang;
29 | #X obj 5 4 hoa.help.header;
30 | #X obj 244 516 hoa.help.pub;
31 | #X obj 433 4 hoa.help.also;
32 | #X text 83 184 Args : decomposition order - harmonic degree - harmonics
33 | order, f 62;
34 | #X text 83 334 Args : decomposition order - harmonic degree - harmonic
35 | order, f 61;
36 | #X text 9 47 hoa.thisprocess~ retreives the configuration used by hoa.process~
37 | \, the arguments and the attributes of the patcher.;
38 | #X text 12 120 The 1st outlet outputs the hoa.process~ instance arguments.
39 | ;
40 | #X obj 18 222 hoa.2d.process~ 1 hoa.thisprocexample~ harmonics;
41 | #X obj 18 292 hoa.2d.process~ 3 hoa.thisprocexample~ planewaves;
42 | #X text 83 404 Args : number of channels - channel index - channel
43 | index;
44 | #X text 83 254 Args : number of channels - channel index - channel
45 | index;
46 | #X text 483 120 The 3rd outlet outputs the patcher arguments.;
47 | #X connect 1 0 28 0;
48 | #X connect 2 0 29 0;
49 | #X connect 5 0 18 0;
50 | #X connect 6 0 17 0;
51 | #X connect 10 0 11 0;
52 | #X connect 12 0 13 0;
53 | #X connect 19 0 21 0;
54 | #X connect 20 0 19 0;
55 |
--------------------------------------------------------------------------------
/Package/Hoa/media/Chapel.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CICM/HoaLibrary-PD/5eb00099eb25ab2e146dbb498b3dddc6411fc602/Package/Hoa/media/Chapel.wav
--------------------------------------------------------------------------------
/Package/Hoa/media/Cistern.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CICM/HoaLibrary-PD/5eb00099eb25ab2e146dbb498b3dddc6411fc602/Package/Hoa/media/Cistern.wav
--------------------------------------------------------------------------------
/Package/Hoa/media/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 |
3 | SUFFIXES = .pd
4 |
5 | hoa.librarymediadir=$(pkglibdir)/media
6 |
7 | dist_hoa.librarymedia_DATA = \
8 | Chapel.wav\
9 | Cistern.wav \
10 | SmallRoom.wav
11 |
--------------------------------------------------------------------------------
/Package/Hoa/media/SmallRoom.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CICM/HoaLibrary-PD/5eb00099eb25ab2e146dbb498b3dddc6411fc602/Package/Hoa/media/SmallRoom.wav
--------------------------------------------------------------------------------
/Package/Hoa/misc/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 |
3 | SUFFIXES = .pd
4 |
5 | hoa.librarymiscdir=$(pkglibdir)/misc
6 |
7 | dist_hoa.librarymisc_DATA = \
8 | hoa.pw.2d.dec~.pd \
9 | hoa.process.display.pd \
10 | hoa.processexample.pd \
11 | hoa.procexample~.pd \
12 | hoa.soundcoat.pd \
13 | hoa.2d.txt \
14 | hoa.soundgrain.pd \
15 | hoa.3d.txt \
16 | hoa.soundrone.pd \
17 | hoa.args.map.pd \
18 | hoa.thisprocexample2~.pd \
19 | hoa.common.txt \
20 | hoa.thisprocexample~.pd \
21 | hoa.help.also.pd \
22 | hoa.tri~.pd \
23 | hoa.help.header.pd \
24 | hoa.tuto.gain~.pd \
25 | hoa.help.pub.pd \
26 | hoa.tuto.header.pd \
27 | hoa.ioexample~.pd \
28 | hoa.tuto.txt \
29 | hoa.mode.sel.pd \
30 | hoa.tutos.txt \
31 | hoa.objects.txt \
32 | logo.gif \
33 | hoa.process.txt
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.2d.txt:
--------------------------------------------------------------------------------
1 | hoa.2d.decoder~-help.pd hoa.2d.decoder~ An ambisonic decoder.;
2 | hoa.2d.encoder~-help.pd hoa.2d.encoder~ An ambisonic encoder.;
3 | hoa.2d.map~-help.pd hoa.2d.map~ An ambisonic sources spatializer.;
4 | hoa.2d.meter~-help.pd hoa.2d.meter~ A circular meter with sound field descriptor.;
5 | hoa.2d.optim~-help.pd hoa.2d.optim~ An ambisonic sound field optimization.;
6 | hoa.2d.projector~-help.pd hoa.2d.projector~ A plane waves decomposer from circular harmonics domain.;
7 | hoa.2d.recomposer~-help.pd hoa.2d.recomposer~ A plane waves recomposer to circular harmonics domain.;
8 | hoa.2d.rotate~-help.pd hoa.2d.rotate~ An ambisonic sound field rotation.;
9 | hoa.2d.scope~-help.pd hoa.2d.scope~ An ambisonic harmonics visualizer.;
10 | hoa.2d.space-help.pd hoa.2d.space A GUI to design plane waves domain.;
11 | hoa.2d.wider~-help.pd hoa.2d.wider~ An ambisonic fractional orders simulator.;
12 | hoa.2d.exchanger~-help.pd hoa.2d.exchanger~ An ambisonic standards exchanger.;
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.3d.txt:
--------------------------------------------------------------------------------
1 | hoa.3d.decoder~-help.pd hoa.3d.decoder~ An ambisonic decoder.;
2 | hoa.3d.encoder~-help.pd hoa.3d.encoder~ An ambisonic encoder.;
3 | hoa.3d.map~-help.pd hoa.3d.map~ An ambisonic sources spatializer.;
4 | hoa.3d.meter~-help.pd hoa.3d.meter~ A multi spherical meter with sound field descriptor.;
5 | hoa.3d.optim~-help.pd hoa.3d.optim~ An ambisonic sound field optimization.;
6 | hoa.3d.wider~-help.pd hoa.3d.wider~ An ambisonic fractional orders simulator.;
7 | hoa.3d.scope~-help.pd hoa.3d.scope~ An ambisonic harmonics visualizer.;
8 | hoa.3d.exchanger~-help.pd hoa.3d.exchanger~ An ambisonic standards exchanger.;
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.args.map.pd:
--------------------------------------------------------------------------------
1 | #N canvas 689 223 674 323 10;
2 | #X obj 375 85 inlet;
3 | #X obj 76 85 inlet;
4 | #X text 439 4 Right inlet the process mode;
5 | #X text 77 4 Left inlet the instance arguments;
6 | #X text 440 32 Harmonics 2d : mode 0;
7 | #X text 440 52 Harmonics 3d : mode 1;
8 | #X text 440 72 Planewaves 2d : mode 2;
9 | #X text 440 93 Planewaves 3d : mode 3;
10 | #N canvas 548 249 450 300 pw2d_map 0;
11 | #X obj -32 37 spigot 0;
12 | #X obj 13 -7 inlet;
13 | #X obj -32 13 inlet;
14 | #X obj 25 130 outlet;
15 | #X obj 25 99 - 1;
16 | #X text 82 80 Planewaves 2d or 3d;
17 | #X text 82 100 Decrement the index;
18 | #X text 82 110 by 1;
19 | #X obj 13 13 == 2;
20 | #X obj -32 75 unpack 0 0;
21 | #X obj -32 130 outlet;
22 | #X connect 0 0 9 0;
23 | #X connect 1 0 8 0;
24 | #X connect 2 0 0 0;
25 | #X connect 4 0 3 0;
26 | #X connect 8 0 0 1;
27 | #X connect 9 0 10 0;
28 | #X connect 9 1 4 0;
29 | #X restore 76 188 pd pw2d_map;
30 | #N canvas 154 83 450 300 pw3d_map 0;
31 | #X obj -32 37 spigot 0;
32 | #X obj 13 -7 inlet;
33 | #X obj -32 13 inlet;
34 | #X obj 25 130 outlet;
35 | #X obj 25 99 - 1;
36 | #X text 82 80 Planewaves 2d or 3d;
37 | #X text 82 100 Decrement the index;
38 | #X text 82 110 by 1;
39 | #X obj -32 75 unpack 0 0;
40 | #X obj -32 130 outlet;
41 | #X obj 13 13 == 3;
42 | #X connect 0 0 8 0;
43 | #X connect 1 0 10 0;
44 | #X connect 2 0 0 0;
45 | #X connect 4 0 3 0;
46 | #X connect 8 0 9 0;
47 | #X connect 8 1 4 0;
48 | #X connect 10 0 0 1;
49 | #X restore 152 188 pd pw3d_map;
50 | #N canvas 283 113 450 300 ha2d_map 1;
51 | #X obj 65 67 spigot 0;
52 | #X obj 110 23 inlet;
53 | #X obj 65 23 inlet;
54 | #X obj 110 43 == 0;
55 | #X obj 134 232 outlet;
56 | #X text 198 102 need to be interleaved;
57 | #X text 199 73 Harmonics 2d;
58 | #X obj 161 150 < 0;
59 | #X obj 134 150 * 2;
60 | #X obj 134 171 abs;
61 | #X obj 134 192 - 0;
62 | #X obj 134 122 t f f;
63 | #X text 198 112 depending on their sign.;
64 | #X text 198 132 0 \, -1 \, 1 \, -2 \, 2;
65 | #X text 198 142 become;
66 | #X text 198 152 0 \, 1 \, 2 \, 3 \, 4;
67 | #X text 198 92 The index need;
68 | #X text 198 172 if index < 0;
69 | #X text 208 182 index = 2 * abs(index) - 1;
70 | #X text 198 192 else;
71 | #X text 208 202 index = 2 * abs(index);
72 | #X obj 65 232 outlet;
73 | #X obj 65 150 * 2;
74 | #X obj 65 170 + 1;
75 | #X obj 65 96 unpack 0 0 0;
76 | #X connect 0 0 24 0;
77 | #X connect 1 0 3 0;
78 | #X connect 2 0 0 0;
79 | #X connect 3 0 0 1;
80 | #X connect 7 0 10 1;
81 | #X connect 8 0 9 0;
82 | #X connect 9 0 10 0;
83 | #X connect 10 0 4 0;
84 | #X connect 11 0 8 0;
85 | #X connect 11 1 7 0;
86 | #X connect 22 0 23 0;
87 | #X connect 23 0 21 0;
88 | #X connect 24 0 22 0;
89 | #X connect 24 2 11 0;
90 | #X restore 232 188 pd ha2d_map;
91 | #X text 25 17 Arguments are mapped from 0 to max following the Hoa
92 | inlet and outlet organization.;
93 | #N canvas 0 50 485 297 ha3d_map 0;
94 | #X obj 65 67 spigot 0;
95 | #X obj 110 23 inlet;
96 | #X obj 65 23 inlet;
97 | #X obj 99 212 outlet;
98 | #X text 248 102 need to be interleaved;
99 | #X text 249 73 Harmonics 2d;
100 | #X text 248 92 The arguments need;
101 | #X text 248 112 depending on their sign.;
102 | #X text 248 142 become;
103 | #X obj 65 96 unpack 0 0 0;
104 | #X text 248 132 0 0 \, 1 0 \, 1 -1 \, 1 1 \, 2 0 \, 2 -1...;
105 | #X text 248 152 0 \, 1 \, 2 \, 3 \, 4 \, 5 \, 6...;
106 | #N canvas 283 113 450 300 ha2d_map 0;
107 | #X obj 122 73 inlet;
108 | #X obj 122 232 outlet;
109 | #X obj 149 150 < 0;
110 | #X obj 122 150 * 2;
111 | #X obj 122 171 abs;
112 | #X obj 122 192 - 0;
113 | #X obj 122 122 t f f;
114 | #X text 198 102 need to be interleaved;
115 | #X text 199 73 Harmonics 2d;
116 | #X text 198 112 depending on their sign.;
117 | #X text 198 132 0 \, -1 \, 1 \, -2 \, 2;
118 | #X text 198 142 become;
119 | #X text 198 152 0 \, 1 \, 2 \, 3 \, 4;
120 | #X text 198 92 The index need;
121 | #X text 198 172 if index < 0;
122 | #X text 208 182 index = 2 * abs(index) - 1;
123 | #X text 198 192 else;
124 | #X text 208 202 index = 2 * abs(index);
125 | #X connect 0 0 6 0;
126 | #X connect 2 0 5 1;
127 | #X connect 3 0 4 0;
128 | #X connect 4 0 5 0;
129 | #X connect 5 0 1 0;
130 | #X connect 6 0 3 0;
131 | #X connect 6 1 2 0;
132 | #X restore 134 122 pd ha2d_map;
133 | #X obj 99 189 +;
134 | #X text 248 172 index is mapped like in 2d;
135 | #X text 248 182 index is increment by (band - 1)^2;
136 | #X obj 99 164 *;
137 | #X obj 99 142 t f f;
138 | #X obj 65 141 + 1;
139 | #X obj 65 184 *;
140 | #X obj 65 162 t f f;
141 | #X obj 65 212 outlet;
142 | #X obj 110 43 == 1;
143 | #X connect 0 0 9 0;
144 | #X connect 1 0 22 0;
145 | #X connect 2 0 0 0;
146 | #X connect 9 0 18 0;
147 | #X connect 9 1 17 0;
148 | #X connect 9 2 12 0;
149 | #X connect 12 0 13 1;
150 | #X connect 13 0 3 0;
151 | #X connect 16 0 13 0;
152 | #X connect 17 0 16 0;
153 | #X connect 17 1 16 1;
154 | #X connect 18 0 20 0;
155 | #X connect 19 0 21 0;
156 | #X connect 20 0 19 0;
157 | #X connect 20 1 19 1;
158 | #X connect 22 0 0 1;
159 | #X restore 312 188 pd ha3d_map;
160 | #X obj 234 293 outlet;
161 | #X obj 234 263 f 0;
162 | #X obj 136 288 outlet;
163 | #X obj 134 263 t b f;
164 | #X connect 0 0 8 1;
165 | #X connect 0 0 10 1;
166 | #X connect 0 0 12 1;
167 | #X connect 0 0 9 1;
168 | #X connect 1 0 8 0;
169 | #X connect 1 0 10 0;
170 | #X connect 1 0 12 0;
171 | #X connect 1 0 9 0;
172 | #X connect 8 0 16 0;
173 | #X connect 8 1 14 0;
174 | #X connect 9 0 16 0;
175 | #X connect 9 1 14 0;
176 | #X connect 10 0 16 0;
177 | #X connect 10 1 14 0;
178 | #X connect 12 0 16 0;
179 | #X connect 12 1 14 0;
180 | #X connect 14 0 13 0;
181 | #X connect 16 0 14 0;
182 | #X connect 16 1 15 0;
183 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.common.txt:
--------------------------------------------------------------------------------
1 | hoa.connect-help.pd hoa.connect A connector for hoa objects.;
2 | hoa.dac~-help.pd hoa.dac~ A custom dac~ with matlab syntax.;
3 | hoa.io-help.pd hoa.io A set of inlet and outlet for hoa.process.;
4 | hoa.pi-help.pd hoa.pi A good pi number.;
5 | hoa.pi~-help.pd hoa.pi~ A good pi number for signal.;
6 | hoa.map-help.pd hoa.map A GUI to spatialize sources on a map.;
7 | hoa.process~-help.pd hoa.process~ A multi-patcher for harmonics and plane waves domains.;
8 | hoa.thisprocess~-help.pd hoa.thisprocess~ A patcher informer for hoa.process.;
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.help.also.pd:
--------------------------------------------------------------------------------
1 | #N canvas 170 395 415 271 10;
2 | #X obj 152 74 c.patcherinfos;
3 | #X msg 125 174 \; pd open \$1 \$2;
4 | #X obj 47 13 s \$0-zeze;
5 | #X obj 16 13 c.tab @size 100 18 @fontname Monaco @fontweight normal
6 | @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
7 | (null) @orientation 0 @toggle 0 @items hoa.overview @bgcolor 0.75 0.75
8 | 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1 @hocolor 0.5 0.5 0.5
9 | 1 @secolor 0.35 0.35 0.35 1;
10 | #X obj 152 30 r \$0-zeze;
11 | #X obj 1 1 cnv 15 130 40 empty \$0-hoa.header empty 3 12 0 18 -212212
12 | -1 0;
13 | #X obj 152 50 bang;
14 | #X obj 118 94 t b s;
15 | #X obj 192 115 makefilename %s/..;
16 | #X obj 231 182 print;
17 | #X obj 125 147 pack s s;
18 | #X msg 82 124 hoa-help.pd;
19 | #X connect 0 1 7 0;
20 | #X connect 3 0 2 0;
21 | #X connect 4 0 6 0;
22 | #X connect 6 0 0 0;
23 | #X connect 7 0 11 0;
24 | #X connect 7 1 8 0;
25 | #X connect 8 0 10 1;
26 | #X connect 10 0 1 0;
27 | #X connect 11 0 10 0;
28 | #X coords 0 -1 1 1 132 42 2 0 0;
29 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.help.header.pd:
--------------------------------------------------------------------------------
1 | #N canvas 524 257 832 494 10;
2 | #X obj 45 1 cnv 15 354 40 empty \$0-hoa.header empty 3 12 0 18 -212212
3 | -1 0;
4 | #X obj 444 437 s \$0-hoa.header;
5 | #X obj 443 7 inlet;
6 | #X obj 284 80 namecanvas \$0-r;
7 | #X msg 490 60 read hoa.objects.txt;
8 | #X obj 478 388 s \$0-r;
9 | #X msg 444 407 label \$1;
10 | #X obj 410 310 list split 1;
11 | #X obj 444 330 list split 1;
12 | #X obj 3 3 c.blackboard @size 40 37 @fontname Helvetica @fontweight
13 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @chalkmode
14 | 0 @bgcolor 0.802322 0.802322 0.802322 1 @bdcolor 0.802322 0.802322
15 | 0.802322 1;
16 | #X msg 13 133 clear \, image 2 1 logo.gif;
17 | #X obj 478 360 c.prepend text 46 23;
18 | #X obj 490 120 textfile;
19 | #X obj 458 90 until;
20 | #X obj 473 253 f 1;
21 | #X obj 506 252 f 0;
22 | #X obj 410 275 spigot 0;
23 | #X obj 473 199 sel sa;
24 | #X msg 511 90 rewind;
25 | #X obj 410 149 list;
26 | #X obj 506 227 bang;
27 | #X obj 410 173 t list symbol;
28 | #X obj 443 37 t b b b b s;
29 | #X msg 217 79 1;
30 | #X obj 208 151 f 0;
31 | #X obj 240 154 + 1;
32 | #X obj 208 115 metro 100;
33 | #X obj 200 188 <= 1000;
34 | #X obj 203 224 sel 1;
35 | #X msg 216 258 0;
36 | #X connect 2 0 22 0;
37 | #X connect 4 0 12 0;
38 | #X connect 6 0 1 0;
39 | #X connect 7 1 8 0;
40 | #X connect 7 1 6 0;
41 | #X connect 8 1 11 0;
42 | #X connect 10 0 9 0;
43 | #X connect 11 0 5 0;
44 | #X connect 12 0 19 0;
45 | #X connect 12 1 13 1;
46 | #X connect 13 0 12 0;
47 | #X connect 14 0 16 1;
48 | #X connect 15 0 16 1;
49 | #X connect 16 0 7 0;
50 | #X connect 17 0 14 0;
51 | #X connect 17 1 20 0;
52 | #X connect 18 0 12 0;
53 | #X connect 19 0 21 0;
54 | #X connect 20 0 15 0;
55 | #X connect 21 0 16 0;
56 | #X connect 21 1 17 0;
57 | #X connect 22 0 23 0;
58 | #X connect 22 1 13 0;
59 | #X connect 22 2 18 0;
60 | #X connect 22 3 4 0;
61 | #X connect 22 4 17 1;
62 | #X connect 23 0 26 0;
63 | #X connect 24 0 25 0;
64 | #X connect 24 0 27 0;
65 | #X connect 25 0 24 1;
66 | #X connect 26 0 24 0;
67 | #X connect 26 0 10 0;
68 | #X connect 27 0 28 0;
69 | #X connect 28 0 29 0;
70 | #X connect 29 0 26 0;
71 | #X coords 0 -1 1 1 400 42 2 0 0;
72 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.help.pub.pd:
--------------------------------------------------------------------------------
1 | #N canvas 65 223 442 110 10;
2 | #X obj 1 1 cnv 15 359 40 empty \$0-hoa.header empty 3 12 0 18 -212212
3 | -1 0;
4 | #X text 144 0 HOA Library;
5 | #X text 87 27 2012-2015 CICM | Universite Paris 8;
6 | #X text 84 13 by P. Guillot \, E. Paris & T. Le Meur;
7 | #X coords 0 -1 1 1 361 42 2 0 0;
8 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.ioexample~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 176 82 864 247 10;
2 | #X obj 22 57 hoa.in;
3 | #X obj 169 57 hoa.in~;
4 | #X obj 92 57 hoa.in;
5 | #X obj 92 156 hoa.out;
6 | #X obj 22 156 hoa.out;
7 | #X obj 169 157 hoa.out~;
8 | #X obj 203 101 c.number~ @size 53 14 @fontname Helvetica @fontweight
9 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @interval
10 | 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
11 | 0 0 0 1;
12 | #X obj 269 57 hoa.in~;
13 | #X obj 269 157 hoa.out~;
14 | #X obj 303 101 c.number~ @size 53 14 @fontname Helvetica @fontweight
15 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @interval
16 | 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
17 | 0 0 0 1;
18 | #X obj 663 101 c.number~ @size 53 14 @fontname Helvetica @fontweight
19 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @interval
20 | 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
21 | 0 0 0 1;
22 | #X obj 783 101 c.number~ @size 53 14 @fontname Helvetica @fontweight
23 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @interval
24 | 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor
25 | 0 0 0 1;
26 | #X obj 412 57 hoa.in extra 1;
27 | #X obj 412 157 hoa.out extra 1;
28 | #X obj 629 57 hoa.in~ extra 1;
29 | #X obj 522 57 hoa.in extra 3;
30 | #X obj 522 157 hoa.out extra 4;
31 | #X obj 629 157 hoa.out~ extra 1;
32 | #X obj 749 57 hoa.in~ extra 2;
33 | #X obj 749 157 hoa.out~ extra 2;
34 | #X obj 444 101 c.number @size 53 14 @fontname Helvetica @fontweight
35 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
36 | (null) @min (null) @max (null) @minmax (null) (null) @decimal 6 @bgcolor
37 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
38 | #X obj 34 101 c.number @size 53 14 @fontname Helvetica @fontweight
39 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
40 | (null) @min (null) @max (null) @minmax (null) (null) @decimal 6 @bgcolor
41 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
42 | #X obj 104 101 c.number @size 53 14 @fontname Helvetica @fontweight
43 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
44 | (null) @min (null) @max (null) @minmax (null) (null) @decimal 6 @bgcolor
45 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
46 | #X msg 581 106;
47 | #X connect 0 0 4 0;
48 | #X connect 0 0 21 0;
49 | #X connect 1 0 6 0;
50 | #X connect 1 0 5 0;
51 | #X connect 2 0 3 0;
52 | #X connect 2 0 22 0;
53 | #X connect 7 0 9 0;
54 | #X connect 7 0 8 0;
55 | #X connect 12 0 20 0;
56 | #X connect 12 0 13 0;
57 | #X connect 14 0 10 0;
58 | #X connect 14 0 17 0;
59 | #X connect 15 0 16 0;
60 | #X connect 15 0 23 0;
61 | #X connect 18 0 11 0;
62 | #X connect 18 0 19 0;
63 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.mode.sel.pd:
--------------------------------------------------------------------------------
1 | #N canvas 558 169 450 300 10;
2 | #X obj 85 62 unpack s s;
3 | #X obj 185 90 sel harmonics planewaves;
4 | #X obj 85 90 sel 2d 3d, f 14;
5 | #X obj 125 142 f 1;
6 | #X obj 85 178 +;
7 | #X obj 85 21 inlet;
8 | #X obj 85 248 outlet;
9 | #X text 217 182 Harmonics 2d : mode 0;
10 | #X text 217 202 Harmonics 3d : mode 1;
11 | #X obj 185 142 f 0;
12 | #X obj 255 142 f 2;
13 | #X obj 85 142 f 0;
14 | #X text 217 222 Planewaves 2d : mode 2;
15 | #X text 217 243 Planewaves 3d : mode 3;
16 | #X connect 0 0 2 0;
17 | #X connect 0 1 1 0;
18 | #X connect 1 0 9 0;
19 | #X connect 1 1 10 0;
20 | #X connect 2 0 11 0;
21 | #X connect 2 1 3 0;
22 | #X connect 3 0 4 0;
23 | #X connect 4 0 6 0;
24 | #X connect 5 0 0 0;
25 | #X connect 9 0 4 1;
26 | #X connect 10 0 4 1;
27 | #X connect 11 0 4 0;
28 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.objects.txt:
--------------------------------------------------------------------------------
1 | hoa-help.pd HOA\ Library High Order Ambisonics Library.;
2 | hoa.2d.decoder~-help.pd hoa.2d.decoder~ An ambisonic decoder.;
3 | hoa.2d.encoder~-help.pd hoa.2d.encoder~ An ambisonic encoder.;
4 | hoa.map-help.pd hoa.map A GUI to spatialize sources on a map.;
5 | hoa.2d.map~-help.pd hoa.2d.map~ An ambisonic sources spatializer.;
6 | hoa.2d.meter~-help.pd hoa.2d.meter~ A circular meter with sound field descriptor.;
7 | hoa.2d.optim~-help.pd hoa.2d.optim~ An ambisonic sound field optimization.;
8 | hoa.2d.projector~-help.pd hoa.2d.projector~ A plane waves decomposer from circular harmonics domain.;
9 | hoa.2d.recomposer~-help.pd hoa.2d.recomposer~ A plane waves recomposer to circular harmonics domain.;
10 | hoa.2d.rotate~-help.pd hoa.2d.rotate~ An ambisonic sound field rotation.;
11 | hoa.2d.scope~-help.pd hoa.2d.scope~ An ambisonic harmonics visualizer.;
12 | hoa.2d.space-help.pd hoa.2d.space A GUI to design plane waves domain.;
13 | hoa.2d.wider~-help.pd hoa.2d.wider~ An ambisonic fractional orders simulator.;
14 | hoa.2d.exchanger~-help.pd hoa.2d.exchanger~ An ambisonic standards exchanger.;
15 | hoa.3d.decoder~-help.pd hoa.3d.decoder~ An ambisonic decoder.;
16 | hoa.3d.encoder~-help.pd hoa.3d.encoder~ An ambisonic encoder.;
17 | hoa.3d.map-help.pd hoa.3d.map A GUI to spatialize sources on a map.;
18 | hoa.3d.map~-help.pd hoa.3d.map~ An ambisonic sources spatializer.;
19 | hoa.3d.meter~-help.pd hoa.3d.meter~ A multi spherical meter with sound field descriptor.;
20 | hoa.3d.optim~-help.pd hoa.3d.optim~ An ambisonic sound field optimization.;
21 | hoa.3d.wider~-help.pd hoa.3d.wider~ An ambisonic fractional orders simulator.;
22 | hoa.3d.scope~-help.pd hoa.3d.scope~ An ambisonic harmonics visualizer.;
23 | hoa.3d.exchanger~-help.pd hoa.3d.exchanger~ An ambisonic standards exchanger.;
24 | hoa.connect-help.pd hoa.connect A connector for hoa objects.;
25 | hoa.dac~-help.pd hoa.dac~ A custom dac~ with matlab syntax.;
26 | hoa.io-help.pd hoa.io A set of inlet and outlet for hoa.process.;
27 | hoa.pi-help.pd hoa.pi A good pi number.;
28 | hoa.pi~-help.pd hoa.pi~ A good pi number for signal.;
29 | hoa.process~-help.pd hoa.process~ A multi-patcher for harmonics and plane waves domains.;
30 | hoa.thisprocess~-help.pd hoa.thisprocess~ A patcher informer for hoa.process.;
31 | hoa.fx.delay~-help.pd hoa.fx.delay~ A delay sound field diffuser.;
32 | hoa.fx.dephaser~-help.pd hoa.fx.dephaser~ A fft dephaser processing.;
33 | hoa.fx.convolve~-help.pd hoa.fx.convolve~ A zero latency convolution reverb' for sound fields.;
34 | hoa.fx.freeverb~-help.pd hoa.fx.freeverb~ A freeverb reverb' for sound fields.;
35 | hoa.fx.gain~-help.pd hoa.fx.gain~ A multigain for sound fields.;
36 | hoa.fx.ringmod~-help.pd hoa.fx.ringmod~ A ring modulation sound field diffuser.;
37 | hoa.fx.mirror~-help.pd hoa.fx.mirror~ A mirror for sound field.;
38 | hoa.syn.delay~-help.pd hoa.syn.delay~ A delay sound field synthesizer.;
39 | hoa.syn.grain~-help.pd hoa.syn.grain~ A granular sound field synthesizer.;
40 | hoa.syn.ringmod~-help.pd hoa.syn.ringmod~ A ring modulation sound field synthesizer.;
41 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.process.display.pd:
--------------------------------------------------------------------------------
1 | #N canvas 80 195 644 454 10;
2 | #X obj 128 353 c.blackboard @size 295 57 @fontname "Helvetica" @fontweight
3 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
4 | @chalkmode 1 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1;
5 | #X obj 26 60 hoa.thisprocess~, f 86;
6 | #N canvas 778 159 450 300 hoa.mode.sel 0;
7 | #X obj 85 62 unpack s s;
8 | #X obj 139 90 sel harmonics planewaves;
9 | #X obj 39 90 sel 2d 3d, f 14;
10 | #X obj 79 142 f 1;
11 | #X obj 39 142 f 0;
12 | #X obj 103 178 +;
13 | #X obj 87 21 inlet;
14 | #X obj 103 248 outlet;
15 | #X text 217 192 Planewaves 2d or 3d : mode 0;
16 | #X text 217 212 Harmonics 2d : mode 1;
17 | #X text 217 232 Harmonics 3d : mode 2;
18 | #X obj 209 142 f 2;
19 | #X obj 139 142 f 0;
20 | #X connect 0 0 2 0;
21 | #X connect 0 1 1 0;
22 | #X connect 1 0 12 0;
23 | #X connect 1 1 11 0;
24 | #X connect 2 0 4 0;
25 | #X connect 2 1 3 0;
26 | #X connect 3 0 5 0;
27 | #X connect 4 0 5 0;
28 | #X connect 5 0 7 0;
29 | #X connect 6 0 0 0;
30 | #X connect 11 0 5 1;
31 | #X connect 12 0 5 1;
32 | #X restore 197 82 pd hoa.mode.sel;
33 | #X obj 197 105 sel 0 1 2 3;
34 | #X msg 197 128 clear \, text 10 10 This patcher is used in the circular
35 | harmonics domain., f 73;
36 | #X msg 196 148 clear \, text 10 10 This patcher is used in the spherical
37 | harmonics domain., f 73;
38 | #X msg 197 168 clear \, text 10 10 This patcher is used in the 2d planewaves
39 | domain., f 69;
40 | #X msg 197 189 clear \, text 10 10 This patcher in the 3d planewaves
41 | domain.;
42 | #X obj 26 145 spigot 0;
43 | #X obj 71 121 < 2;
44 | #X obj 105 145 spigot 0;
45 | #X obj 150 121 > 1;
46 | #X msg 104 272 text 10 20 The number of planewaves is \$1 and the index
47 | of the \, text 10 30 planewave is \$2;
48 | #X msg 26 222 text 10 20 The order of decomposition is \$1 the degree
49 | of the \, text 10 30 harmonics is \$2 and the order of the harmonics
50 | is \$3., f 64;
51 | #X obj 26 9 loadbang;
52 | #X connect 1 0 8 0;
53 | #X connect 1 0 10 0;
54 | #X connect 1 1 2 0;
55 | #X connect 2 0 3 0;
56 | #X connect 2 0 9 0;
57 | #X connect 2 0 11 0;
58 | #X connect 3 0 4 0;
59 | #X connect 3 1 5 0;
60 | #X connect 3 2 6 0;
61 | #X connect 3 3 7 0;
62 | #X connect 4 0 0 0;
63 | #X connect 5 0 0 0;
64 | #X connect 6 0 0 0;
65 | #X connect 7 0 0 0;
66 | #X connect 8 0 13 0;
67 | #X connect 9 0 8 1;
68 | #X connect 10 0 12 0;
69 | #X connect 11 0 10 1;
70 | #X connect 12 0 0 0;
71 | #X connect 13 0 0 0;
72 | #X connect 14 0 1 0;
73 | #X coords 0 -1 1 1 300 62 2 125 350;
74 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.process.txt:
--------------------------------------------------------------------------------
1 | hoa.fx.convolve~-help.pd hoa.fx.convolve~ A zero latency convolution reverb' for sound fields.;
2 | hoa.fx.delay~-help.pd hoa.fx.delay~ A delay sound field diffuser.;
3 | hoa.fx.freeverb~-help.pd hoa.fx.freeverb~ A freeverb reverb' for sound fields.;
4 | hoa.fx.gain~-help.pd hoa.fx.gain~ A multigain for sound fields.;
5 | hoa.fx.ringmod~-help.pd hoa.fx.ringmod~ A ring modulation sound field diffuser.;
6 | hoa.fx.mirror~-help.pd hoa.fx.mirror~ A mirror for sound fields.;
7 | hoa.syn.delay~-help.pd hoa.syn.delay~ A delay sound field synthesizer.;
8 | hoa.syn.grain~-help.pd hoa.syn.grain~ A granular sound field synthesizer.;
9 | hoa.syn.ringmod~-help.pd hoa.syn.ringmod~ A ring modulation sound field synthesizer.;
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.processexample.pd:
--------------------------------------------------------------------------------
1 | #N canvas 386 267 499 330 10;
2 | #X obj 89 47 hoa.in extra 1;
3 | #X obj 248 58 hoa.thisprocess~;
4 | #X obj 291 197 spigot 0;
5 | #X obj 89 197 spigot 0;
6 | #X obj 279 83 unpack s s;
7 | #X obj 89 278 hoa.out extra 1;
8 | #X obj 134 175 f 1;
9 | #X obj 134 143 sel harmonics;
10 | #X obj 336 143 sel planewaves;
11 | #X obj 336 175 f 1;
12 | #X obj 89 241 c.prepend list harmonic \$1 \$2 \$3;
13 | #X obj 291 241 c.prepend list planewaves \$1 \$2;
14 | #X obj 248 33 loadbang;
15 | #X connect 0 0 2 0;
16 | #X connect 0 0 3 0;
17 | #X connect 1 1 4 0;
18 | #X connect 2 0 11 0;
19 | #X connect 3 0 10 0;
20 | #X connect 4 1 8 0;
21 | #X connect 4 1 7 0;
22 | #X connect 6 0 3 1;
23 | #X connect 7 0 6 0;
24 | #X connect 8 0 9 0;
25 | #X connect 9 0 2 1;
26 | #X connect 10 0 5 0;
27 | #X connect 11 0 5 0;
28 | #X connect 12 0 1 0;
29 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.procexample~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 349 177 746 467 10;
2 | #X obj 204 327 hoa.in~;
3 | #X obj 204 393 hoa.out~;
4 | #X obj 254 114 hoa.in extra 1;
5 | #X obj 219 304 line~;
6 | #X obj 219 240 pack 1 20;
7 | #X obj 204 357 *~;
8 | #N canvas 0 50 450 300 hoa.mode.sel 0;
9 | #X obj 85 62 unpack s s;
10 | #X obj 139 90 sel harmonics planewaves;
11 | #X obj 209 142 f 0;
12 | #X obj 139 142 f 1;
13 | #X obj 39 90 sel 2d 3d, f 14;
14 | #X obj 79 142 f 1;
15 | #X obj 39 142 f 0;
16 | #X obj 103 178 +;
17 | #X obj 87 21 inlet;
18 | #X obj 103 248 outlet;
19 | #X text 217 192 Planewaves 2d or 3d : mode 0;
20 | #X text 217 212 Harmonics 2d : mode 1;
21 | #X text 217 232 Harmonics 3d : mode 2;
22 | #X connect 0 0 4 0;
23 | #X connect 0 1 1 0;
24 | #X connect 1 0 3 0;
25 | #X connect 1 1 2 0;
26 | #X connect 2 0 7 1;
27 | #X connect 3 0 7 1;
28 | #X connect 4 0 6 0;
29 | #X connect 4 1 5 0;
30 | #X connect 5 0 7 0;
31 | #X connect 6 0 7 0;
32 | #X connect 7 0 9 0;
33 | #X connect 8 0 0 0;
34 | #X restore 93 67 pd hoa.mode.sel;
35 | #X text 250 90 Extra 1 retreive the right inlet messages.;
36 | #X text 244 45 Default values;
37 | #X obj 254 158 route float list db ramp;
38 | #X text 257 327 Receive the signal;
39 | #X text 257 395 Output the signal;
40 | #X obj 6 34 hoa.thisprocess~ @ramp 20 @default 1;
41 | #X text 359 293 - ramp set the ramp time in ms.;
42 | #X text 359 263 - db have the same behavior as float or list except
43 | that the variable are convert to rms.;
44 | #X text 359 199 - float set all the instances ampltiudes (except if
45 | the target is used).;
46 | #X obj 219 67 route default ramp;
47 | #X text 311 132 Input messages selector;
48 | #N canvas 578 150 705 502 hoa.arg.map 0;
49 | #X obj 333 90 inlet;
50 | #X obj 80 231 spigot 0;
51 | #X obj 305 230 spigot 0;
52 | #X obj 503 230 spigot 0;
53 | #X obj 80 90 inlet;
54 | #X obj 333 118 sel 0 1 2;
55 | #X obj 125 210 f 1;
56 | #X obj 350 209 f 1;
57 | #X obj 547 209 f 1;
58 | #X obj 305 418 outlet;
59 | #X text 331 32 Planewaves 2d or 3d : mode 0;
60 | #X text 331 42 Harmonics 2d : mode 1;
61 | #X text 331 52 Harmonics 3d : mode 2;
62 | #X text 330 9 Right inlet the process mode;
63 | #X text 80 9 Left inlet the instance arguments;
64 | #X text 81 52 in the incoming list of amplitudes.;
65 | #X text 81 42 the mode to select to right variable;
66 | #X obj 332 277 < 0;
67 | #X obj 305 258 t f f;
68 | #X obj 305 277 * 2;
69 | #X obj 305 298 abs;
70 | #X obj 305 319 - 0;
71 | #X obj 80 118 unpack 0 0 0;
72 | #X obj 574 230 spigot 0;
73 | #X obj 618 209 f 1;
74 | #X obj 530 277 < 0;
75 | #X obj 503 258 t f f;
76 | #X obj 503 277 * 2;
77 | #X obj 503 298 abs;
78 | #X obj 503 319 - 0;
79 | #X obj 503 365 + 0;
80 | #X obj 574 259 * 2;
81 | #X obj 574 287 + 1;
82 | #X text 15 320 channels.;
83 | #X text 15 280 Planewaves mode \,;
84 | #X text 15 290 the arguments are;
85 | #X text 15 300 already sorted;
86 | #X text 15 310 from 0 to number of;
87 | #X text 158 243 the arguments need;
88 | #X text 158 233 Harmonics 2d mode \,;
89 | #X text 359 303 the arguments need;
90 | #X text 359 313 need to be interleaved.;
91 | #X text 359 293 Harmonics 3d mode \,;
92 | #X text 81 32 The arguments are mapped depending on;
93 | #X text 158 263 depending on the;
94 | #X text 158 273 the harmonic argument.;
95 | #X text 158 253 need to be interleaved;
96 | #X text 358 323 depending on the;
97 | #X text 358 344 and the harmonic band.;
98 | #X text 358 333 the harmonic argument;
99 | #X connect 0 0 5 0;
100 | #X connect 1 0 9 0;
101 | #X connect 2 0 18 0;
102 | #X connect 3 0 26 0;
103 | #X connect 4 0 22 0;
104 | #X connect 5 0 6 0;
105 | #X connect 5 1 7 0;
106 | #X connect 5 2 8 0;
107 | #X connect 5 2 24 0;
108 | #X connect 6 0 1 1;
109 | #X connect 7 0 2 1;
110 | #X connect 8 0 3 1;
111 | #X connect 17 0 21 1;
112 | #X connect 18 0 19 0;
113 | #X connect 18 1 17 0;
114 | #X connect 19 0 20 0;
115 | #X connect 20 0 21 0;
116 | #X connect 21 0 9 0;
117 | #X connect 22 0 17 1;
118 | #X connect 22 0 23 0;
119 | #X connect 22 1 1 0;
120 | #X connect 22 1 2 0;
121 | #X connect 22 1 25 1;
122 | #X connect 22 2 3 0;
123 | #X connect 23 0 31 0;
124 | #X connect 24 0 23 1;
125 | #X connect 25 0 29 1;
126 | #X connect 26 0 27 0;
127 | #X connect 26 1 25 0;
128 | #X connect 27 0 28 0;
129 | #X connect 28 0 29 0;
130 | #X connect 29 0 30 0;
131 | #X connect 30 0 9 0;
132 | #X connect 31 0 32 0;
133 | #X connect 32 0 30 1;
134 | #X restore 6 103 pd hoa.arg.map;
135 | #X text 12 159 In the subcanvas \, the mode;
136 | #X text 12 179 are used to split the list;
137 | #X text 12 189 at the right index.;
138 | #X text 12 169 anf the arguments;
139 | #X text 359 231 - list is plit and only the right variable set the
140 | amplitude of this instance (look at the subcanvas).;
141 | #N canvas 0 50 626 405 hoa.route.mess- 0;
142 | #X obj 231 80 list split;
143 | #X obj 259 104 unpack;
144 | #X obj 332 134 dbtorms;
145 | #X obj 395 134 list split;
146 | #X obj 423 158 unpack;
147 | #X obj 131 28 inlet;
148 | #X obj 131 234 outlet;
149 | #X obj 231 28 inlet;
150 | #X text 103 4 float is direct;
151 | #X text 213 4 list is split;
152 | #X text 343 4 db is routed;
153 | #X obj 332 28 inlet;
154 | #X text 392 43 db float is direct;
155 | #X text 395 72 db list is split;
156 | #X obj 332 103 route float list;
157 | #X obj 61 28 inlet;
158 | #X connect 0 1 1 0;
159 | #X connect 1 0 6 0;
160 | #X connect 2 0 6 0;
161 | #X connect 3 1 4 0;
162 | #X connect 4 0 6 0;
163 | #X connect 5 0 6 0;
164 | #X connect 7 0 0 0;
165 | #X connect 11 0 14 0;
166 | #X connect 14 0 2 0;
167 | #X connect 14 1 3 0;
168 | #X connect 15 0 0 1;
169 | #X connect 15 0 3 1;
170 | #X restore 219 180 pd hoa.route.mess-;
171 | #X obj 6 7 loadbang;
172 | #X connect 0 0 5 0;
173 | #X connect 2 0 9 0;
174 | #X connect 3 0 5 1;
175 | #X connect 4 0 3 0;
176 | #X connect 5 0 1 0;
177 | #X connect 6 0 18 1;
178 | #X connect 9 0 24 1;
179 | #X connect 9 1 24 2;
180 | #X connect 9 2 24 3;
181 | #X connect 9 3 4 1;
182 | #X connect 12 0 18 0;
183 | #X connect 12 1 6 0;
184 | #X connect 12 3 16 0;
185 | #X connect 16 0 3 0;
186 | #X connect 16 0 4 0;
187 | #X connect 16 1 4 1;
188 | #X connect 18 0 24 0;
189 | #X connect 24 0 4 0;
190 | #X connect 25 0 12 0;
191 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.pw.2d.dec~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 475 65 340 470 10;
2 | #X obj 20 15 hoa.in~;
3 | #X obj 20 429 hoa.out~ extra \$1;
4 | #X obj 20 397 *~;
5 | #X obj 35 374 sig~;
6 | #X obj 35 173 *, f 5;
7 | #X obj 62 142 abs;
8 | #X obj 140 200 < 0;
9 | #X obj 35 220 spigot 0;
10 | #X obj 95 220 spigot 0;
11 | #X obj 35 266 cos;
12 | #X obj 80 200 >= 0;
13 | #X obj 95 266 sin;
14 | #X obj 35 71 t f b;
15 | #X obj 62 98 f \$2;
16 | #X obj 35 48 r \$3;
17 | #X obj 121 244 sel 0;
18 | #X obj 35 300 * 1;
19 | #X obj 121 266 f 0.5;
20 | #X obj 35 338 * \$4;
21 | #X connect 0 0 2 0;
22 | #X connect 2 0 1 0;
23 | #X connect 3 0 2 1;
24 | #X connect 4 0 7 0;
25 | #X connect 4 0 8 0;
26 | #X connect 5 0 4 1;
27 | #X connect 6 0 8 1;
28 | #X connect 7 0 9 0;
29 | #X connect 8 0 11 0;
30 | #X connect 9 0 16 0;
31 | #X connect 10 0 7 1;
32 | #X connect 11 0 16 0;
33 | #X connect 12 0 4 0;
34 | #X connect 12 1 13 0;
35 | #X connect 13 0 5 0;
36 | #X connect 13 0 10 0;
37 | #X connect 13 0 6 0;
38 | #X connect 13 0 15 0;
39 | #X connect 14 0 12 0;
40 | #X connect 15 0 17 0;
41 | #X connect 16 0 18 0;
42 | #X connect 17 0 16 1;
43 | #X connect 18 0 3 0;
44 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.pw.3d.dec~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 475 65 340 470 10;
2 | #X obj 20 15 hoa.in~;
3 | #X obj 20 429 hoa.out~ extra \$1;
4 | #X obj 20 397 *~;
5 | #X obj 35 374 sig~;
6 | #X obj 35 173 *, f 5;
7 | #X obj 62 142 abs;
8 | #X obj 140 200 < 0;
9 | #X obj 35 220 spigot 0;
10 | #X obj 95 220 spigot 0;
11 | #X obj 35 266 cos;
12 | #X obj 80 200 >= 0;
13 | #X obj 95 266 sin;
14 | #X obj 35 71 t f b;
15 | #X obj 62 98 f \$2;
16 | #X obj 35 48 r \$3;
17 | #X obj 121 244 sel 0;
18 | #X obj 35 300 * 1;
19 | #X obj 121 266 f 0.5;
20 | #X obj 35 338 * \$4;
21 | #X connect 0 0 2 0;
22 | #X connect 2 0 1 0;
23 | #X connect 3 0 2 1;
24 | #X connect 4 0 7 0;
25 | #X connect 4 0 8 0;
26 | #X connect 5 0 4 1;
27 | #X connect 6 0 8 1;
28 | #X connect 7 0 9 0;
29 | #X connect 8 0 11 0;
30 | #X connect 9 0 16 0;
31 | #X connect 10 0 7 1;
32 | #X connect 11 0 16 0;
33 | #X connect 12 0 4 0;
34 | #X connect 12 1 13 0;
35 | #X connect 13 0 5 0;
36 | #X connect 13 0 10 0;
37 | #X connect 13 0 6 0;
38 | #X connect 13 0 15 0;
39 | #X connect 14 0 12 0;
40 | #X connect 15 0 17 0;
41 | #X connect 16 0 18 0;
42 | #X connect 17 0 16 1;
43 | #X connect 18 0 3 0;
44 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.thisprocexample2~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 314 100 755 575 10;
2 | #X obj 286 15 hoa.in extra 1;
3 | #X obj 15 91 hoa.thisprocess~ This is a jazz example @artist Albert
4 | Ayler @album My name is Albert Ayler @song Summertime;
5 | #X obj 253 155 c.prepend set;
6 | #X msg 253 296 This is a rock example;
7 | #X obj 372 155 route artist album song;
8 | #X obj 372 236 c.prepend set;
9 | #X msg 372 276 Jimi Hendrix;
10 | #X msg 417 256 Electric Ladyland;
11 | #X msg 462 236 Voodoo Chile;
12 | #X obj 417 216 c.prepend set;
13 | #X obj 462 196 c.prepend set;
14 | #X obj 507 176 c.prepend set;
15 | #X text 548 216 done when complete.;
16 | #X text 386 130 Attrs output;
17 | #X text 266 130 Args output;
18 | #X text 35 62 hoa.thisprocess~ with defaut arguments and attributes
19 | ;
20 | #X obj 106 405 c.prepend set;
21 | #X obj 229 431 c.prepend set;
22 | #X msg 229 496;
23 | #X obj 324 431 c.prepend set;
24 | #X text 363 466 done when complete.;
25 | #X text 243 380 Attrs output;
26 | #X text 119 380 Args output;
27 | #X obj 229 405 route song;
28 | #X obj 20 341 hoa.thisprocess~ @song;
29 | #X text 35 322 hoa.thisprocess~ without defaut arguments and attributes
30 | ;
31 | #X text 393 359 Note that you should add the key of the attribute to
32 | retreive it.;
33 | #X msg 106 526;
34 | #X msg 324 466 done;
35 | #X msg 507 216 done;
36 | #X text 9 270 Send a bang to output.;
37 | #X obj 20 297 c.bang @size 17 17 @fontname "Helvetica" @fontweight
38 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
39 | @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @bacolor 0 0 0 1;
40 | #X obj 15 10 loadbang;
41 | #X connect 1 2 2 0;
42 | #X connect 1 3 4 0;
43 | #X connect 2 0 3 0;
44 | #X connect 4 0 5 0;
45 | #X connect 4 1 9 0;
46 | #X connect 4 2 10 0;
47 | #X connect 4 3 11 0;
48 | #X connect 5 0 6 0;
49 | #X connect 9 0 7 0;
50 | #X connect 10 0 8 0;
51 | #X connect 11 0 29 0;
52 | #X connect 16 0 27 0;
53 | #X connect 17 0 18 0;
54 | #X connect 19 0 28 0;
55 | #X connect 23 0 17 0;
56 | #X connect 23 1 19 0;
57 | #X connect 24 2 16 0;
58 | #X connect 24 3 23 0;
59 | #X connect 31 0 24 0;
60 | #X connect 32 0 1 0;
61 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.thisprocexample~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 97 252 420 291 10;
2 | #X obj 26 97 c.prepend set;
3 | #X obj 137 97 c.prepend set;
4 | #X msg 26 124 1 0 0;
5 | #X obj 297 14 hoa.in extra 1;
6 | #X text 154 75 Hoa mode output;
7 | #X text 31 75 Hoa args output;
8 | #X msg 137 124 2d harmonics;
9 | #X obj 24 181 hoa.process.display;
10 | #X obj 26 50 hoa.thisprocess~, f 56;
11 | #X obj 26 9 loadbang;
12 | #X connect 0 0 2 0;
13 | #X connect 1 0 6 0;
14 | #X connect 8 0 0 0;
15 | #X connect 8 1 1 0;
16 | #X connect 9 0 8 0;
17 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.tri~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 511 271 839 493 10;
2 | #X obj 140 101 *~ 2;
3 | #X obj 140 169 clip~ 0 1;
4 | #X obj 231 224 sig~ 1;
5 | #X obj 139 140 -~ 1;
6 | #X obj 210 169 clip~ 0 1;
7 | #X obj 276 196 *~ -1;
8 | #X obj 237 260 +~;
9 | #X obj 139 28 inlet;
10 | #X obj 199 28 inlet;
11 | #X obj 262 394 outlet~;
12 | #X obj 138 62 phasor~;
13 | #X obj 300 302 *~ 1;
14 | #X obj 348 190 -;
15 | #X obj 364 142 t b f;
16 | #X obj 257 329 +~ 0;
17 | #X obj 378 55 loadbang;
18 | #X obj 377 86 route lo hi;
19 | #X obj 300 101 unpack s f;
20 | #X obj 254 38 c.canvasargs 0 @lo -1 @hi 1;
21 | #X connect 0 0 3 0;
22 | #X connect 0 0 4 0;
23 | #X connect 1 0 11 0;
24 | #X connect 2 0 6 0;
25 | #X connect 3 0 1 0;
26 | #X connect 4 0 5 0;
27 | #X connect 5 0 6 1;
28 | #X connect 6 0 11 0;
29 | #X connect 7 0 10 0;
30 | #X connect 7 0 16 0;
31 | #X connect 8 0 10 1;
32 | #X connect 10 0 0 0;
33 | #X connect 11 0 14 0;
34 | #X connect 12 0 11 1;
35 | #X connect 13 0 12 0;
36 | #X connect 13 1 12 1;
37 | #X connect 14 0 9 0;
38 | #X connect 15 0 18 0;
39 | #X connect 16 0 13 0;
40 | #X connect 16 0 14 1;
41 | #X connect 16 1 12 0;
42 | #X connect 17 1 10 0;
43 | #X connect 18 0 17 0;
44 | #X connect 18 1 16 0;
45 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.tuto.gain~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 0 22 450 300 10;
2 | #X obj 155 89 hoa.in~ extra 1;
3 | #X obj 167 233 hoa.out~;
4 | #X obj 273 96 hoa.in extra 2;
5 | #X obj 179 169 *~ 0;
6 | #X connect 0 0 3 0;
7 | #X connect 2 0 3 1;
8 | #X connect 3 0 1 0;
9 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.tuto.header.pd:
--------------------------------------------------------------------------------
1 | #N canvas 65 82 738 485 10;
2 | #X obj 45 1 cnv 15 315 40 empty \$0-hoa.header Tutorial_1 3 12 0 18
3 | -212212 -1 0;
4 | #X obj 438 444 s \$0-hoa.header;
5 | #X obj 437 14 inlet;
6 | #X obj 278 87 namecanvas \$0-r;
7 | #X obj 472 395 s \$0-r;
8 | #X msg 438 414 label \$1;
9 | #X obj 404 317 list split 1;
10 | #X obj 438 337 list split 1;
11 | #X obj 3 3 c.blackboard @size 40 37 @fontname Helvetica @fontweight
12 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @chalkmode
13 | 0 @bgcolor 0.802322 0.802322 0.802322 1 @bdcolor 0.802322 0.802322
14 | 0.802322 1;
15 | #X msg 7 140 clear \, image 2 1 logo.gif;
16 | #X obj 472 367 c.prepend text 46 23;
17 | #X obj 484 127 textfile;
18 | #X obj 452 97 until;
19 | #X obj 467 260 f 1;
20 | #X obj 500 259 f 0;
21 | #X obj 404 282 spigot 0;
22 | #X obj 467 206 sel sa;
23 | #X msg 505 97 rewind;
24 | #X obj 404 156 list;
25 | #X obj 500 234 bang;
26 | #X obj 404 180 t list symbol;
27 | #X obj 437 44 t b b b b s;
28 | #X msg 211 86 1;
29 | #X obj 202 158 f 0;
30 | #X obj 234 161 + 1;
31 | #X obj 202 122 metro 100;
32 | #X obj 194 195 <= 1000;
33 | #X obj 197 231 sel 1;
34 | #X msg 210 265 0;
35 | #X msg 484 67 read hoa.tuto.txt;
36 | #X connect 2 0 21 0;
37 | #X connect 5 0 1 0;
38 | #X connect 6 1 7 0;
39 | #X connect 6 1 5 0;
40 | #X connect 7 1 10 0;
41 | #X connect 9 0 8 0;
42 | #X connect 10 0 4 0;
43 | #X connect 11 0 18 0;
44 | #X connect 11 1 12 1;
45 | #X connect 12 0 11 0;
46 | #X connect 13 0 15 1;
47 | #X connect 14 0 15 1;
48 | #X connect 15 0 6 0;
49 | #X connect 16 0 13 0;
50 | #X connect 16 1 19 0;
51 | #X connect 17 0 11 0;
52 | #X connect 18 0 20 0;
53 | #X connect 19 0 14 0;
54 | #X connect 20 0 15 0;
55 | #X connect 20 1 16 0;
56 | #X connect 21 0 22 0;
57 | #X connect 21 1 12 0;
58 | #X connect 21 2 17 0;
59 | #X connect 21 3 29 0;
60 | #X connect 21 4 16 1;
61 | #X connect 22 0 25 0;
62 | #X connect 23 0 24 0;
63 | #X connect 23 0 26 0;
64 | #X connect 24 0 23 1;
65 | #X connect 25 0 23 0;
66 | #X connect 25 0 9 0;
67 | #X connect 26 0 27 0;
68 | #X connect 27 0 28 0;
69 | #X connect 28 0 25 0;
70 | #X connect 29 0 11 0;
71 | #X coords 0 -1 1 1 361 42 2 0 0;
72 |
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.tuto.txt:
--------------------------------------------------------------------------------
1 | Tutorial_1.pd Tutorial\ 1 Introduction;
2 | Tutorial_2.pd Tutorial\ 2 Space Representation;
3 | Tutorial_3.pd Tutorial\ 3 Harmonics;
4 | Tutorial_4.pd Tutorial\ 4 Planewaves;
5 | Tutorial_5.pd Tutorial\ 5 Spatial Resolution;
6 | Tutorial_6.pd Tutorial\ 6 Encoding;
7 | Tutorial_7.pd Tutorial\ 7 Decoding;
8 | Tutorial_8.pd Tutorial\ 8 Optimization;
9 | Tutorial_9.pd Tutorial\ 9 Rotation;
10 | Tutorial_10.pd Tutorial\ 10 Wider;
11 | hoa.tools.2d.pd Tools\ 2D Order degree and channels numbering for 2D.;
12 | hoa.tools.3d.pd Tools\ 3D Order degree and channels numbering for 3D.;
--------------------------------------------------------------------------------
/Package/Hoa/misc/hoa.tutos.txt:
--------------------------------------------------------------------------------
1 | Tutorial_1.pd Tutorial\ 1 Introduction;
2 | Tutorial_2.pd Tutorial\ 2 Space Representation;
3 | Tutorial_3.pd Tutorial\ 3 Harmonics;
4 | Tutorial_4.pd Tutorial\ 4 Planewaves;
5 | Tutorial_5.pd Tutorial\ 5 Spatial Resolution;
6 | Tutorial_6.pd Tutorial\ 6 Encoding;
7 | Tutorial_7.pd Tutorial\ 7 Decoding;
8 | Tutorial_8.pd Tutorial\ 8 Optimization;
9 | Tutorial_9.pd Tutorial\ 9 Rotation;
10 | Tutorial_10.pd Tutorial\ 10 Wider;
11 | hoa.tools.2d.pd Tools\ 2D Order degree and channels numbering for 2D.;
12 | hoa.tools.3d.pd Tools\ 3D Order degree and channels numbering for 3D.;
--------------------------------------------------------------------------------
/Package/Hoa/misc/logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CICM/HoaLibrary-PD/5eb00099eb25ab2e146dbb498b3dddc6411fc602/Package/Hoa/misc/logo.gif
--------------------------------------------------------------------------------
/Package/Hoa/patchers/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 |
3 | SUFFIXES = .pd
4 |
5 | hoa.librarypatchersdir=$(pkglibdir)/patchers
6 |
7 | dist_hoa.librarypatchers_DATA = \
8 | hoa.fx.2d.decoder~.pd \
9 | hoa.fx.2d.rotate~.pd \
10 | hoa.fx.convolve~.pd \
11 | hoa.fx.delay~.pd \
12 | hoa.fx.delay2~.pd \
13 | hoa.fx.freeverb~.pd \
14 | hoa.fx.gain~.pd \
15 | hoa.fx.mirror~.pd \
16 | hoa.fx.optim~.pd \
17 | hoa.fx.ringmod~.pd \
18 | hoa.fx.sum~.pd \
19 | hoa.fx.wider~.pd \
20 | hoa.syn.2d.encoder~.pd \
21 | hoa.syn.3d.encoder~.pd \
22 | hoa.syn.delay~.pd \
23 | hoa.syn.grain~.pd \
24 | hoa.syn.ringmod~.pd
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.2d.decoder~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 302 187 833 474 10;
2 | #X obj 218 426 c.canvasmess;
3 | #X obj 218 210 until;
4 | #X obj 218 287 * 20;
5 | #X obj 249 238 + 1;
6 | #X obj 218 238 f 0;
7 | #X obj 257 288 + 1;
8 | #X obj 218 20 c.loadmess;
9 | #X obj 218 65 unpack f f f, f 13;
10 | #X obj 337 322 makefilename \$0-%d;
11 | #X obj 218 189 f;
12 | #X obj 544 382 send, f 5;
13 | #X obj 544 291 /;
14 | #X obj 631 339 makefilename \$0-%d;
15 | #X obj 544 214 t f f, f 15;
16 | #X obj 571 338 hoa.pi 2;
17 | #X obj 544 359 *, f 5;
18 | #X obj 544 314 t f b;
19 | #X obj 544 160 until;
20 | #X obj 575 188 + 1;
21 | #X obj 544 188 f 0;
22 | #X obj 544 132 f;
23 | #X obj 218 262 t f f, f 6;
24 | #X obj 631 318 + 1;
25 | #X obj 218 350 pack f f f s f, f 27;
26 | #X obj 377 214 + 1;
27 | #X obj 377 242 t b f;
28 | #X obj 377 264 f 1;
29 | #X obj 377 286 /, f 5;
30 | #X obj 412 35 hoa.in;
31 | #X msg 218 396 obj 0 \$1 hoa.pw.2d.dec~ \$2 \$3 \$4 \$5;
32 | #X obj 233 167 r \$0-nls;
33 | #X obj 559 109 r \$0-nls;
34 | #X obj 559 268 r \$0-nls;
35 | #X obj 218 97 t b f f;
36 | #N canvas 0 22 450 300 nls 0;
37 | #X obj 95 142 f;
38 | #X obj 95 175 s \$0-nls;
39 | #X obj 77 49 == -1;
40 | #X obj 110 14 inlet;
41 | #X obj 28 14 inlet;
42 | #X obj 28 42 t b f;
43 | #X obj 55 93 * 2;
44 | #X obj 55 116 + 2;
45 | #X obj 55 72 spigot;
46 | #X connect 0 0 1 0;
47 | #X connect 2 0 8 1;
48 | #X connect 3 0 0 1;
49 | #X connect 3 0 2 0;
50 | #X connect 4 0 5 0;
51 | #X connect 5 0 0 0;
52 | #X connect 5 1 8 0;
53 | #X connect 6 0 7 0;
54 | #X connect 7 0 0 1;
55 | #X connect 8 0 6 0;
56 | #X restore 257 125 pd nls;
57 | #X obj 218 40 hoa.thisprocess~ -1;
58 | #X obj 412 67 sel done;
59 | #X connect 1 0 4 0;
60 | #X connect 2 0 23 0;
61 | #X connect 3 0 4 1;
62 | #X connect 4 0 3 0;
63 | #X connect 4 0 21 0;
64 | #X connect 5 0 8 0;
65 | #X connect 5 0 23 1;
66 | #X connect 6 0 35 0;
67 | #X connect 7 0 33 0;
68 | #X connect 7 2 23 2;
69 | #X connect 8 0 23 3;
70 | #X connect 9 0 1 0;
71 | #X connect 11 0 16 0;
72 | #X connect 12 0 10 1;
73 | #X connect 13 0 11 0;
74 | #X connect 13 1 22 0;
75 | #X connect 14 0 15 1;
76 | #X connect 15 0 10 0;
77 | #X connect 16 0 15 0;
78 | #X connect 16 1 14 0;
79 | #X connect 17 0 19 0;
80 | #X connect 18 0 19 1;
81 | #X connect 19 0 18 0;
82 | #X connect 19 0 13 0;
83 | #X connect 20 0 17 0;
84 | #X connect 21 0 2 0;
85 | #X connect 21 1 5 0;
86 | #X connect 22 0 12 0;
87 | #X connect 23 0 29 0;
88 | #X connect 24 0 25 0;
89 | #X connect 25 0 26 0;
90 | #X connect 25 1 27 1;
91 | #X connect 26 0 27 0;
92 | #X connect 27 0 23 4;
93 | #X connect 28 0 36 0;
94 | #X connect 29 0 0 0;
95 | #X connect 30 0 9 1;
96 | #X connect 31 0 20 1;
97 | #X connect 32 0 11 1;
98 | #X connect 33 0 9 0;
99 | #X connect 33 1 24 0;
100 | #X connect 33 2 34 0;
101 | #X connect 35 0 7 0;
102 | #X connect 35 2 34 1;
103 | #X connect 35 3 36 0;
104 | #X connect 36 0 20 0;
105 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.2d.rotate~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 383 103 812 640 10;
2 | #X obj 453 226 hoa.in~ extra 1;
3 | #X obj 271 569 hoa.out~;
4 | #X obj 441 35 hoa.thisprocess~;
5 | #X obj 441 59 unpack, f 13;
6 | #X obj 261 107 s~ h\$0;
7 | #X obj 453 368 cos~;
8 | #X obj 453 336 *~, f 11;
9 | #X obj 336 114 < 0;
10 | #X obj 376 232 f;
11 | #X obj 336 232 f;
12 | #X obj 336 281 makefilename h%d;
13 | #X obj 336 135 sel 1, f 6;
14 | #X obj 376 114 > 0;
15 | #X obj 376 135 sel 1, f 6;
16 | #X obj 271 399 *~;
17 | #X obj 336 400 *~;
18 | #X obj 271 451 +~;
19 | #X obj 321 451 -~;
20 | #X obj 271 534 *~;
21 | #X obj 321 534 *~;
22 | #X obj 261 62 hoa.in~;
23 | #X obj 271 358 r~ h\$0;
24 | #X obj 336 255 + 1;
25 | #X obj 376 255 - 1;
26 | #X obj 336 358 r~ dummy\$0;
27 | #X obj 179 62 s~ dummy\$0;
28 | #X obj 441 116 ==;
29 | #X obj 441 135 sel 1;
30 | #X obj 336 90 f;
31 | #X obj 441 159 s hrloaded;
32 | #X obj 336 64 r hrloaded;
33 | #X obj 361 438 hoa.thisprocess~;
34 | #X obj 361 462 unpack;
35 | #X obj 286 506 >= 0;
36 | #X obj 336 506 < 0;
37 | #X obj 468 280 hoa.pi 2;
38 | #X obj 453 307 /~;
39 | #X obj 468 252 loadbang;
40 | #X obj 361 412 loadbang;
41 | #X obj 441 10 loadbang;
42 | #X obj 351 193 f \$0;
43 | #X obj 351 165 loadbang;
44 | #X obj 336 330 list trim;
45 | #X obj 336 308 list prepend set;
46 | #X obj 537 420 cos~;
47 | #X obj 537 400 +~;
48 | #X obj 552 325 loadbang;
49 | #X obj 552 347 f 0.25;
50 | #X connect 0 0 36 0;
51 | #X connect 2 0 3 0;
52 | #X connect 3 0 26 0;
53 | #X connect 3 1 26 1;
54 | #X connect 3 1 28 1;
55 | #X connect 3 1 6 1;
56 | #X connect 5 0 14 1;
57 | #X connect 6 0 5 0;
58 | #X connect 6 0 45 0;
59 | #X connect 7 0 11 0;
60 | #X connect 8 0 23 0;
61 | #X connect 9 0 22 0;
62 | #X connect 10 0 43 0;
63 | #X connect 11 0 9 0;
64 | #X connect 12 0 13 0;
65 | #X connect 13 0 8 0;
66 | #X connect 14 0 16 0;
67 | #X connect 14 0 17 0;
68 | #X connect 15 0 16 1;
69 | #X connect 15 0 17 1;
70 | #X connect 16 0 18 0;
71 | #X connect 17 0 19 0;
72 | #X connect 18 0 1 0;
73 | #X connect 19 0 1 0;
74 | #X connect 20 0 4 0;
75 | #X connect 21 0 14 0;
76 | #X connect 22 0 10 0;
77 | #X connect 23 0 10 0;
78 | #X connect 24 0 15 0;
79 | #X connect 26 0 27 0;
80 | #X connect 27 0 29 0;
81 | #X connect 28 0 7 0;
82 | #X connect 28 0 12 0;
83 | #X connect 30 0 28 0;
84 | #X connect 31 0 32 0;
85 | #X connect 32 1 33 0;
86 | #X connect 32 1 34 0;
87 | #X connect 33 0 18 1;
88 | #X connect 34 0 19 1;
89 | #X connect 35 0 36 1;
90 | #X connect 36 0 6 0;
91 | #X connect 37 0 35 0;
92 | #X connect 38 0 31 0;
93 | #X connect 39 0 2 0;
94 | #X connect 40 0 8 1;
95 | #X connect 40 0 9 1;
96 | #X connect 41 0 40 0;
97 | #X connect 42 0 24 0;
98 | #X connect 43 0 42 0;
99 | #X connect 44 0 15 1;
100 | #X connect 45 0 44 0;
101 | #X connect 46 0 47 0;
102 | #X connect 47 0 45 1;
103 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.convolve~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 534 167 711 478 10;
2 | #X obj 401 265 hoa.in~;
3 | #X obj 401 448 hoa.out~;
4 | #X obj 10 7 c.loadmess;
5 | #X obj 454 265 hoa.in;
6 | #X obj 401 357 c.convolve~ buffer 1;
7 | #X obj 527 285 c.prepend set;
8 | #X obj 117 97 hoa.mode.sel;
9 | #X obj 10 127 hoa.args.map;
10 | #X obj 17 159 + 1;
11 | #X obj 18 183 / 1;
12 | #X obj 18 227 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
13 | -262144 -1 -1 0 256;
14 | #X obj 79 174 / 1;
15 | #X obj 79 197 t b f;
16 | #X obj 79 238 -;
17 | #X msg 79 216 1;
18 | #X obj 79 267 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
19 | -262144 -1 -1 0 256;
20 | #X obj 292 336 line~;
21 | #X obj 292 309 pack 0 20;
22 | #X obj 331 286 line~;
23 | #X obj 331 259 pack 0 20;
24 | #X obj 403 397 *~;
25 | #X obj 352 397 *~;
26 | #X obj 302 65 hoa.in extra 1;
27 | #X obj 10 41 hoa.thisprocess~ @wet 1 @dry 0 @normalize 1;
28 | #X obj 527 245 c.prepend normalize;
29 | #X obj 303 108 route dry wet set nomalize;
30 | #X connect 0 0 4 0;
31 | #X connect 0 0 21 0;
32 | #X connect 2 0 23 0;
33 | #X connect 3 0 4 0;
34 | #X connect 4 0 20 0;
35 | #X connect 5 0 4 0;
36 | #X connect 6 0 7 1;
37 | #X connect 7 0 9 1;
38 | #X connect 7 0 11 1;
39 | #X connect 7 1 8 0;
40 | #X connect 7 1 11 0;
41 | #X connect 8 0 9 0;
42 | #X connect 9 0 10 0;
43 | #X connect 11 0 12 0;
44 | #X connect 12 0 14 0;
45 | #X connect 12 1 13 1;
46 | #X connect 13 0 15 0;
47 | #X connect 14 0 13 0;
48 | #X connect 16 0 21 1;
49 | #X connect 17 0 16 0;
50 | #X connect 18 0 20 1;
51 | #X connect 19 0 18 0;
52 | #X connect 20 0 1 0;
53 | #X connect 21 0 1 0;
54 | #X connect 22 0 25 0;
55 | #X connect 23 0 7 0;
56 | #X connect 23 1 6 0;
57 | #X connect 23 2 5 0;
58 | #X connect 23 3 25 0;
59 | #X connect 24 0 4 0;
60 | #X connect 25 0 17 0;
61 | #X connect 25 1 19 0;
62 | #X connect 25 2 5 0;
63 | #X connect 25 3 24 0;
64 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.delay2~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 156 130 946 548 10;
2 | #X obj 488 84 hoa.in~;
3 | #X obj 172 512 hoa.out~;
4 | #X obj 7 9 c.loadmess;
5 | #X obj 324 145 hoa.in extra 1;
6 | #X obj 734 361 table \$0-hoa_hann1 512;
7 | #X obj 403 334 unpack;
8 | #X obj 735 160 / 256;
9 | #X obj 735 205 * 1;
10 | #X obj 735 259 * 0.5;
11 | #X obj 735 231 sin;
12 | #X obj 735 283 + 0.5;
13 | #X obj 736 20 c.loadmess;
14 | #X obj 735 132 t f f;
15 | #X obj 735 311 pack;
16 | #X obj 771 178 hoa.pi 1;
17 | #X obj 735 181 - 0.5;
18 | #X obj 736 44 t b b;
19 | #X obj 735 88 until;
20 | #X obj 735 109 f;
21 | #X obj 762 110 + 1;
22 | #X msg 735 67 512;
23 | #X obj 735 335 tabwrite \$0-hoa_hann1;
24 | #X text 348 4 This hoa.processing diffuses a sound field with delay
25 | lines.;
26 | #X obj 74 59 hoa.mode.sel;
27 | #X obj 7 85 hoa.args.map;
28 | #X obj 76 109 + 1;
29 | #X obj 76 144 / 1;
30 | #X text 79 194 factor;
31 | #X text 75 184 instance;
32 | #X obj 76 164 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
33 | -262144 -1 -1 0 256;
34 | #X obj 7 164 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
35 | -262144 -1 -1 0 256;
36 | #X text 6 184 number of;
37 | #X text 3 194 instances;
38 | #X obj 488 127 delwrite~ \$0-hoa.delay 5000;
39 | #X obj 375 301 list split;
40 | #X obj 324 343 * 1;
41 | #X obj 324 300 t b f;
42 | #X text 529 428 list : The item is selected depending on the instance
43 | and directly set the delay time of the instance (mostly used in the
44 | plane waves domain).;
45 | #X text 529 488 float : The delay time are mapped depending on the
46 | intance and increase while the index and the band of the harmonics
47 | increase.;
48 | #N canvas 671 289 471 383 delay_noflange 0;
49 | #X obj 307 81 f;
50 | #X obj 125 146 *~ 513;
51 | #X obj 125 174 tabread4~ \$0-hoa_hann1;
52 | #X obj 110 225 *~;
53 | #X obj 306 225 *~;
54 | #X obj 110 81 f;
55 | #X obj 321 174 tabread4~ \$0-hoa_hann1;
56 | #X obj 321 125 wrap~;
57 | #X obj 321 104 +~ 0.5;
58 | #X obj 321 146 *~ 513;
59 | #X obj 307 205 delread~ \$0-hoa.delay 1;
60 | #X obj 110 205 delread~ \$0-hoa.delay 1;
61 | #X obj 152 59 phasor~ 0.5;
62 | #N canvas 970 176 450 300 sel~ 0;
63 | #X obj 73 20 c.loadmess 1;
64 | #X obj 92 141 samphold~;
65 | #X obj 92 165 snapshot~;
66 | #X obj 92 187 change;
67 | #X obj 92 209 < 126;
68 | #X obj 92 233 sel 0 1;
69 | #X obj 38 59 inlet~;
70 | #X obj 108 49 inlet~;
71 | #X obj 92 261 outlet;
72 | #X obj 153 261 outlet;
73 | #X obj 155 232 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
74 | -262144 -1 -1 0 256;
75 | #X obj 73 109 metro 5;
76 | #X connect 0 0 11 0;
77 | #X connect 1 0 2 0;
78 | #X connect 2 0 3 0;
79 | #X connect 3 0 4 0;
80 | #X connect 3 0 10 0;
81 | #X connect 4 0 5 0;
82 | #X connect 5 0 9 0;
83 | #X connect 5 1 8 0;
84 | #X connect 6 0 1 0;
85 | #X connect 6 0 1 1;
86 | #X connect 7 0 1 1;
87 | #X connect 11 0 2 0;
88 | #X restore 253 228 pd sel~;
89 | #X obj 192 293 outlet~;
90 | #X obj 125 19 inlet;
91 | #X obj 85 19 inlet;
92 | #X connect 0 0 10 0;
93 | #X connect 1 0 2 0;
94 | #X connect 1 0 13 0;
95 | #X connect 2 0 3 1;
96 | #X connect 3 0 14 0;
97 | #X connect 4 0 14 0;
98 | #X connect 5 0 11 0;
99 | #X connect 6 0 4 1;
100 | #X connect 7 0 9 0;
101 | #X connect 8 0 7 0;
102 | #X connect 9 0 6 0;
103 | #X connect 9 0 13 1;
104 | #X connect 10 0 4 0;
105 | #X connect 11 0 3 0;
106 | #X connect 12 0 1 0;
107 | #X connect 12 0 8 0;
108 | #X connect 13 0 5 0;
109 | #X connect 13 1 0 0;
110 | #X connect 15 0 5 1;
111 | #X connect 15 0 0 1;
112 | #X connect 16 0 5 0;
113 | #X connect 16 0 0 0;
114 | #X restore 172 489 pd delay_noflange;
115 | #X obj 324 175 route float list diffusion;
116 | #X obj 7 36 hoa.thisprocess~ @delay 1000 @diffusion 0;
117 | #X obj 172 146 route delay diffusion;
118 | #X obj 324 441 spigot 1;
119 | #X obj 271 443 sel 0;
120 | #X obj 271 464 f 0;
121 | #X obj 233 263 f 1;
122 | #X obj 233 235 t b f;
123 | #X obj 233 290 -, f 5;
124 | #X obj 233 214 clip 0 1;
125 | #X obj 233 369 <, f 5;
126 | #X obj 260 343 f 1;
127 | #X obj 233 316 t f b;
128 | #X obj 324 415 f;
129 | #X obj 233 392 t f b f;
130 | #X connect 0 0 33 0;
131 | #X connect 2 0 41 0;
132 | #X connect 3 0 40 0;
133 | #X connect 5 0 53 0;
134 | #X connect 6 0 15 0;
135 | #X connect 7 0 9 0;
136 | #X connect 8 0 10 0;
137 | #X connect 9 0 8 0;
138 | #X connect 10 0 13 0;
139 | #X connect 11 0 16 0;
140 | #X connect 12 0 6 0;
141 | #X connect 12 1 13 1;
142 | #X connect 13 0 21 0;
143 | #X connect 14 0 7 1;
144 | #X connect 15 0 7 0;
145 | #X connect 16 0 20 0;
146 | #X connect 16 1 14 0;
147 | #X connect 17 0 18 0;
148 | #X connect 18 0 19 0;
149 | #X connect 18 0 12 0;
150 | #X connect 19 0 18 1;
151 | #X connect 20 0 17 0;
152 | #X connect 23 0 24 1;
153 | #X connect 24 0 30 0;
154 | #X connect 24 0 26 1;
155 | #X connect 24 1 25 0;
156 | #X connect 24 1 34 1;
157 | #X connect 25 0 26 0;
158 | #X connect 26 0 29 0;
159 | #X connect 29 0 36 0;
160 | #X connect 29 0 51 1;
161 | #X connect 34 1 5 0;
162 | #X connect 35 0 53 0;
163 | #X connect 36 0 35 0;
164 | #X connect 36 1 35 1;
165 | #X connect 39 0 1 0;
166 | #X connect 40 0 35 0;
167 | #X connect 40 1 34 0;
168 | #X connect 40 2 49 0;
169 | #X connect 41 0 24 0;
170 | #X connect 41 1 23 0;
171 | #X connect 41 3 42 0;
172 | #X connect 42 0 39 0;
173 | #X connect 42 1 49 0;
174 | #X connect 43 0 39 1;
175 | #X connect 44 0 45 0;
176 | #X connect 45 0 39 1;
177 | #X connect 46 0 48 0;
178 | #X connect 47 0 46 0;
179 | #X connect 47 1 48 1;
180 | #X connect 48 0 52 0;
181 | #X connect 49 0 47 0;
182 | #X connect 50 0 54 0;
183 | #X connect 51 0 50 1;
184 | #X connect 52 0 50 0;
185 | #X connect 52 1 51 0;
186 | #X connect 53 0 43 0;
187 | #X connect 54 0 44 0;
188 | #X connect 54 1 53 0;
189 | #X connect 54 2 43 1;
190 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.delay~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 226 217 946 548 10;
2 | #X obj 486 87 hoa.in~;
3 | #X obj 351 483 hoa.out~;
4 | #X obj 5 12 c.loadmess;
5 | #X obj 308 66 hoa.in extra 1;
6 | #X obj 467 268 f;
7 | #X obj 285 333 *~ 513;
8 | #X obj 732 364 table \$0-hoa_hann1 512;
9 | #X obj 285 361 tabread4~ \$0-hoa_hann1;
10 | #X obj 270 412 *~;
11 | #X obj 466 412 *~;
12 | #X obj 270 268 f;
13 | #X obj 481 361 tabread4~ \$0-hoa_hann1;
14 | #X obj 481 312 wrap~;
15 | #X obj 481 291 +~ 0.5;
16 | #X obj 481 333 *~ 513;
17 | #X obj 467 392 delread~ \$0-hoa.delay 1;
18 | #X obj 270 392 delread~ \$0-hoa.delay 1;
19 | #X obj 312 246 phasor~ 0.5;
20 | #N canvas 970 176 450 300 sel~ 0;
21 | #X obj 73 20 c.loadmess 1;
22 | #X obj 92 141 samphold~;
23 | #X obj 92 165 snapshot~;
24 | #X obj 92 187 change;
25 | #X obj 92 209 < 126;
26 | #X obj 92 233 sel 0 1;
27 | #X obj 38 59 inlet~;
28 | #X obj 108 49 inlet~;
29 | #X obj 92 261 outlet;
30 | #X obj 153 261 outlet;
31 | #X obj 155 232 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
32 | -262144 -1 -1 256.504 256;
33 | #X obj 73 109 metro 5;
34 | #X connect 0 0 11 0;
35 | #X connect 1 0 2 0;
36 | #X connect 2 0 3 0;
37 | #X connect 3 0 4 0;
38 | #X connect 3 0 10 0;
39 | #X connect 4 0 5 0;
40 | #X connect 5 0 9 0;
41 | #X connect 5 1 8 0;
42 | #X connect 6 0 1 0;
43 | #X connect 6 0 1 1;
44 | #X connect 7 0 1 1;
45 | #X connect 11 0 2 0;
46 | #X restore 413 415 pd sel~;
47 | #X obj 382 200 unpack;
48 | #X obj 733 163 / 256;
49 | #X obj 733 208 * 1;
50 | #X obj 733 262 * 0.5;
51 | #X obj 733 234 sin;
52 | #X obj 733 286 + 0.5;
53 | #X obj 734 23 c.loadmess;
54 | #X obj 733 135 t f f;
55 | #X obj 733 314 pack;
56 | #X obj 769 181 hoa.pi 1;
57 | #X obj 733 184 - 0.5;
58 | #X obj 734 47 t b b;
59 | #X obj 733 91 until;
60 | #X obj 733 112 f;
61 | #X obj 760 113 + 1;
62 | #X msg 733 70 512;
63 | #X obj 733 338 tabwrite \$0-hoa_hann1;
64 | #X text 346 7 This hoa.processing diffuses a sound field with delay
65 | lines.;
66 | #X obj 72 62 hoa.mode.sel;
67 | #X obj 5 88 hoa.args.map;
68 | #X obj 74 112 + 1;
69 | #X obj 74 147 / 1;
70 | #X text 77 197 factor;
71 | #X text 73 187 instance;
72 | #X obj 74 167 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
73 | -262144 -1 -1 0 256;
74 | #X obj 5 167 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
75 | -262144 -1 -1 0 256;
76 | #X text 4 187 number of;
77 | #X text 1 197 instances;
78 | #X obj 486 130 delwrite~ \$0-hoa.delay 5000;
79 | #X obj 5 39 hoa.thisprocess~ @delay 1000, f 34;
80 | #X obj 170 149 route delay;
81 | #X obj 354 167 list split;
82 | #X obj 308 96 route float list;
83 | #X obj 304 179 * 1;
84 | #X obj 305 149 t b f;
85 | #X text 527 431 list : The item is selected depending on the instance
86 | and directly set the delay time of the instance (mostly used in the
87 | plane waves domain).;
88 | #X text 527 491 float : The delay time are mapped depending on the
89 | intance and increase while the index and the band of the harmonics
90 | increase.;
91 | #X connect 0 0 47 0;
92 | #X connect 2 0 48 0;
93 | #X connect 3 0 51 0;
94 | #X connect 4 0 15 0;
95 | #X connect 5 0 7 0;
96 | #X connect 5 0 18 0;
97 | #X connect 7 0 8 1;
98 | #X connect 8 0 1 0;
99 | #X connect 9 0 1 0;
100 | #X connect 10 0 16 0;
101 | #X connect 11 0 9 1;
102 | #X connect 12 0 14 0;
103 | #X connect 13 0 12 0;
104 | #X connect 14 0 11 0;
105 | #X connect 14 0 18 1;
106 | #X connect 15 0 9 0;
107 | #X connect 16 0 8 0;
108 | #X connect 17 0 5 0;
109 | #X connect 17 0 13 0;
110 | #X connect 18 0 10 0;
111 | #X connect 18 1 4 0;
112 | #X connect 19 0 4 1;
113 | #X connect 19 0 10 1;
114 | #X connect 20 0 29 0;
115 | #X connect 21 0 23 0;
116 | #X connect 22 0 24 0;
117 | #X connect 23 0 22 0;
118 | #X connect 24 0 27 0;
119 | #X connect 25 0 30 0;
120 | #X connect 26 0 20 0;
121 | #X connect 26 1 27 1;
122 | #X connect 27 0 35 0;
123 | #X connect 28 0 21 1;
124 | #X connect 29 0 21 0;
125 | #X connect 30 0 34 0;
126 | #X connect 30 1 28 0;
127 | #X connect 31 0 32 0;
128 | #X connect 32 0 33 0;
129 | #X connect 32 0 26 0;
130 | #X connect 33 0 32 1;
131 | #X connect 34 0 31 0;
132 | #X connect 37 0 38 1;
133 | #X connect 38 0 44 0;
134 | #X connect 38 0 40 1;
135 | #X connect 38 1 39 0;
136 | #X connect 38 1 50 1;
137 | #X connect 39 0 40 0;
138 | #X connect 40 0 43 0;
139 | #X connect 43 0 53 0;
140 | #X connect 48 0 38 0;
141 | #X connect 48 1 37 0;
142 | #X connect 48 3 49 0;
143 | #X connect 49 0 4 0;
144 | #X connect 49 0 10 0;
145 | #X connect 50 1 19 0;
146 | #X connect 51 0 52 0;
147 | #X connect 51 1 50 0;
148 | #X connect 52 0 10 1;
149 | #X connect 52 0 4 1;
150 | #X connect 53 0 52 0;
151 | #X connect 53 1 52 1;
152 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.freeverb~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 392 108 741 618 10;
2 | #X obj 280 383 hoa.in~;
3 | #X obj 280 526 hoa.out~;
4 | #X obj 13 24 c.loadmess;
5 | #X obj 319 469 *~;
6 | #X obj 368 435 c.freeverb~ left;
7 | #X obj 132 96 hoa.mode.sel;
8 | #X obj 13 116 hoa.args.map;
9 | #X obj 20 148 + 1;
10 | #X obj 21 172 / 1;
11 | #X obj 21 216 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
12 | -262144 -1 -1 0.142857 256;
13 | #X obj 82 163 / 1;
14 | #X obj 82 186 t b f;
15 | #X obj 82 227 -;
16 | #X msg 82 205 1;
17 | #X obj 82 256 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
18 | -262144 -1 -1 1 256;
19 | #X obj 280 470 *~;
20 | #X obj 295 355 line~;
21 | #X obj 295 328 pack 0 20;
22 | #X obj 334 305 line~;
23 | #X obj 334 278 pack 0 20;
24 | #X obj 428 81 hoa.in extra 1;
25 | #N canvas 0 50 450 300 sel_router 0;
26 | #X obj 199 107 route list float;
27 | #X obj 199 57 inlet;
28 | #X obj 199 141 list split;
29 | #X obj 227 165 unpack;
30 | #X obj 227 252 outlet;
31 | #X obj 129 57 inlet;
32 | #X connect 0 0 2 0;
33 | #X connect 0 1 4 0;
34 | #X connect 1 0 0 0;
35 | #X connect 2 1 3 0;
36 | #X connect 3 0 4 0;
37 | #X connect 5 0 2 1;
38 | #X restore 295 163 pd sel_router;
39 | #N canvas 0 50 450 300 sel_router 0;
40 | #X obj 199 107 route list float;
41 | #X obj 199 57 inlet;
42 | #X obj 199 141 list split;
43 | #X obj 227 165 unpack;
44 | #X obj 227 252 outlet;
45 | #X obj 129 57 inlet;
46 | #X connect 0 0 2 0;
47 | #X connect 0 1 4 0;
48 | #X connect 1 0 0 0;
49 | #X connect 2 1 3 0;
50 | #X connect 3 0 4 0;
51 | #X connect 5 0 2 1;
52 | #X restore 332 193 pd sel_router;
53 | #N canvas 0 50 465 440 sel_router 0;
54 | #X obj 199 57 route list float, f 28;
55 | #X obj 199 7 inlet;
56 | #X obj 199 211 list split;
57 | #X obj 227 235 unpack;
58 | #X obj 227 322 outlet;
59 | #X obj 9 7 inlet;
60 | #X obj 291 277 * 1;
61 | #X obj 49 7 inlet;
62 | #X obj 291 252 t b f;
63 | #X obj 131 7 inlet;
64 | #X obj 356 109 t b f;
65 | #X obj 356 138 f 1;
66 | #X obj 356 164 -;
67 | #X obj 356 83 clip 0 1;
68 | #X obj 281 211 clip 0 1;
69 | #X obj 393 167 * 1;
70 | #X obj 393 142 t b f;
71 | #X obj 356 223 +;
72 | #X obj 372 197 t b f;
73 | #X connect 0 0 2 0;
74 | #X connect 0 1 14 0;
75 | #X connect 1 0 0 0;
76 | #X connect 2 1 3 0;
77 | #X connect 3 0 4 0;
78 | #X connect 5 0 2 1;
79 | #X connect 6 0 4 0;
80 | #X connect 7 0 15 0;
81 | #X connect 8 0 6 0;
82 | #X connect 8 1 6 1;
83 | #X connect 9 0 13 0;
84 | #X connect 10 0 11 0;
85 | #X connect 10 1 12 1;
86 | #X connect 10 1 16 0;
87 | #X connect 11 0 12 0;
88 | #X connect 12 0 17 0;
89 | #X connect 13 0 10 0;
90 | #X connect 14 0 6 0;
91 | #X connect 15 0 18 0;
92 | #X connect 16 0 15 0;
93 | #X connect 16 1 15 1;
94 | #X connect 17 0 8 0;
95 | #X connect 18 0 17 0;
96 | #X connect 18 1 17 1;
97 | #X restore 370 223 pd sel_router;
98 | #N canvas 340 330 499 431 sel_router 0;
99 | #X obj 199 107 route list float, f 28;
100 | #X obj 199 57 inlet;
101 | #X obj 199 141 list split;
102 | #X obj 227 165 unpack;
103 | #X obj 227 312 outlet;
104 | #X obj 9 57 inlet;
105 | #X obj 312 267 * 1;
106 | #X obj 49 57 inlet;
107 | #X obj 312 242 t b f;
108 | #X obj 386 109 t b f;
109 | #X obj 386 138 f 1;
110 | #X obj 386 164 -;
111 | #X obj 386 83 clip 0 1;
112 | #X obj 281 150 clip 0 1;
113 | #X obj 423 167 * 1;
114 | #X obj 423 142 t b f;
115 | #X obj 386 223 +;
116 | #X obj 402 197 t b f;
117 | #X obj 119 57 inlet;
118 | #X connect 0 0 2 0;
119 | #X connect 0 1 13 0;
120 | #X connect 1 0 0 0;
121 | #X connect 2 1 3 0;
122 | #X connect 3 0 4 0;
123 | #X connect 5 0 2 1;
124 | #X connect 6 0 4 0;
125 | #X connect 7 0 14 0;
126 | #X connect 8 0 6 0;
127 | #X connect 8 1 6 1;
128 | #X connect 9 0 10 0;
129 | #X connect 9 1 11 1;
130 | #X connect 9 1 15 0;
131 | #X connect 10 0 11 0;
132 | #X connect 11 0 16 0;
133 | #X connect 12 0 9 0;
134 | #X connect 13 0 6 0;
135 | #X connect 14 0 17 0;
136 | #X connect 15 0 14 0;
137 | #X connect 15 1 14 1;
138 | #X connect 16 0 8 0;
139 | #X connect 17 0 16 0;
140 | #X connect 17 1 16 1;
141 | #X connect 18 0 12 0;
142 | #X restore 408 253 pd sel_router;
143 | #X text 273 8 This hoa.processing applies reveberation on a sound field
144 | with the freeverb.;
145 | #X obj 370 132 route wet dry roomsize damp diff;
146 | #X obj 13 58 hoa.thisprocess~ @wet 1 @dry 0 @roomsize 0.5 @damp 0.5
147 | @diff 0;
148 | #X msg 370 320 roomsize \$1;
149 | #X msg 409 350 damp \$1;
150 | #X connect 0 0 4 0;
151 | #X connect 0 0 3 0;
152 | #X connect 2 0 27 0;
153 | #X connect 3 0 1 0;
154 | #X connect 4 0 15 0;
155 | #X connect 5 0 6 1;
156 | #X connect 6 0 8 1;
157 | #X connect 6 0 10 1;
158 | #X connect 6 1 7 0;
159 | #X connect 6 1 10 0;
160 | #X connect 6 1 21 0;
161 | #X connect 6 1 22 0;
162 | #X connect 6 1 23 0;
163 | #X connect 6 1 24 0;
164 | #X connect 7 0 8 0;
165 | #X connect 8 0 9 0;
166 | #X connect 8 0 24 1;
167 | #X connect 10 0 11 0;
168 | #X connect 11 0 13 0;
169 | #X connect 11 1 12 1;
170 | #X connect 12 0 14 0;
171 | #X connect 12 0 23 1;
172 | #X connect 13 0 12 0;
173 | #X connect 15 0 1 0;
174 | #X connect 16 0 15 1;
175 | #X connect 17 0 16 0;
176 | #X connect 18 0 3 1;
177 | #X connect 19 0 18 0;
178 | #X connect 20 0 26 0;
179 | #X connect 21 0 17 0;
180 | #X connect 22 0 19 0;
181 | #X connect 23 0 28 0;
182 | #X connect 24 0 29 0;
183 | #X connect 26 0 21 1;
184 | #X connect 26 1 22 1;
185 | #X connect 26 2 23 3;
186 | #X connect 26 3 24 3;
187 | #X connect 26 4 23 2;
188 | #X connect 26 4 24 2;
189 | #X connect 27 0 6 0;
190 | #X connect 27 1 5 0;
191 | #X connect 27 3 26 0;
192 | #X connect 28 0 4 0;
193 | #X connect 29 0 4 0;
194 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.gain~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 152 94 765 613 10;
2 | #X obj 97 377 hoa.in~;
3 | #X obj 97 443 hoa.out~;
4 | #X obj 9 17 c.loadmess;
5 | #X obj 257 124 hoa.in extra 1;
6 | #X obj 112 354 line~;
7 | #X obj 162 310 pack 1 20;
8 | #X obj 97 407 *~;
9 | #X text 253 100 Extra 1 retreive the right inlet messages.;
10 | #X text 247 55 Default values;
11 | #X text 150 377 Receive the signal;
12 | #X text 150 445 Output the signal;
13 | #X obj 9 44 hoa.thisprocess~ @ramp 20 @default 1;
14 | #X obj 222 77 route default ramp;
15 | #X text 314 142 Input messages selector;
16 | #X obj 80 77 hoa.mode.sel;
17 | #X obj 9 113 hoa.args.map;
18 | #X text 275 14 This hoa.processing control the gains of a sound field.
19 | ;
20 | #X obj 292 243 list split;
21 | #X obj 320 267 unpack;
22 | #X obj 390 218 list split;
23 | #X obj 418 239 unpack;
24 | #X obj 327 194 route float list;
25 | #N canvas 0 50 450 300 dbtoamp 0;
26 | #X obj 121 87 * 0.05;
27 | #X obj 121 106 t b f;
28 | #X obj 121 148 pow;
29 | #X obj 121 127 f 20;
30 | #X obj 121 43 inlet;
31 | #X obj 121 194 outlet;
32 | #X connect 0 0 1 0;
33 | #X connect 1 0 3 0;
34 | #X connect 1 1 2 1;
35 | #X connect 2 0 5 0;
36 | #X connect 3 0 2 0;
37 | #X connect 4 0 0 0;
38 | #X restore 327 218 pd dbtoamp;
39 | #N canvas 0 50 450 300 dbtoamp 0;
40 | #X obj 121 87 * 0.05;
41 | #X obj 121 106 t b f;
42 | #X obj 121 148 pow;
43 | #X obj 121 127 f 20;
44 | #X obj 121 43 inlet;
45 | #X obj 121 194 outlet;
46 | #X connect 0 0 1 0;
47 | #X connect 1 0 3 0;
48 | #X connect 1 1 2 1;
49 | #X connect 2 0 5 0;
50 | #X connect 3 0 2 0;
51 | #X connect 4 0 0 0;
52 | #X restore 418 260 pd dbtoamp;
53 | #X text 342 431 list : The item corresponding to the instance is selected
54 | and set the amplitude of this instance.;
55 | #X text 342 349 float : set the amplitudes of all the instances (except
56 | if the target is used).;
57 | #X text 342 379 db/float : set the amplitudes of all the instances
58 | with a logarithmic scale (except if the target is used).;
59 | #X text 343 463 db/list : The item corresponding to the instance is
60 | selected and set the amplitude of this instance with a logarithmic
61 | scale.;
62 | #X text 345 518 ramp : set the ramp time in ms.;
63 | #X obj 257 168 route float list dB ramp;
64 | #X connect 0 0 6 0;
65 | #X connect 2 0 11 0;
66 | #X connect 3 0 29 0;
67 | #X connect 4 0 6 1;
68 | #X connect 5 0 4 0;
69 | #X connect 6 0 1 0;
70 | #X connect 11 0 15 0;
71 | #X connect 11 1 14 0;
72 | #X connect 11 3 12 0;
73 | #X connect 12 0 4 0;
74 | #X connect 12 0 5 0;
75 | #X connect 12 1 5 1;
76 | #X connect 14 0 15 1;
77 | #X connect 15 1 17 1;
78 | #X connect 15 1 19 1;
79 | #X connect 17 1 18 0;
80 | #X connect 18 0 5 0;
81 | #X connect 19 1 20 0;
82 | #X connect 20 0 23 0;
83 | #X connect 21 0 22 0;
84 | #X connect 21 1 19 0;
85 | #X connect 22 0 5 0;
86 | #X connect 23 0 5 0;
87 | #X connect 29 0 5 0;
88 | #X connect 29 1 17 0;
89 | #X connect 29 2 21 0;
90 | #X connect 29 3 5 1;
91 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.mirror~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 228 112 746 455 10;
2 | #X obj 145 235 hoa.in~;
3 | #X obj 145 361 hoa.out~;
4 | #X obj 33 15 c.loadmess;
5 | #X text 25 235 Receive the signal;
6 | #X text 32 362 Output the signal;
7 | #X obj 145 319 *~;
8 | #X obj 251 71 hoa.in extra 1;
9 | #X text 344 71 Extra 1 Receive the inlet messages.;
10 | #X text 260 25 This hoa.processing applies a mirror effect on the sound
11 | field.;
12 | #X obj 138 87 route done;
13 | #X obj 251 146 clip -1 1;
14 | #X obj 33 62 hoa.thisprocess~ 0;
15 | #X obj 103 86 f 0;
16 | #X msg 251 259 \$1 20;
17 | #N canvas 0 50 450 300 print.domain.error 0;
18 | #X obj 6 54 hoa.mode.sel;
19 | #X obj 7 214 print hoa.syn.encoder~;
20 | #X msg 7 163 only valid in the circular harmonics domain.;
21 | #X obj 6 24 inlet;
22 | #X obj 6 133 sel 0 1;
23 | #X connect 0 0 4 0;
24 | #X connect 2 0 1 0;
25 | #X connect 3 0 0 0;
26 | #X connect 4 2 2 0;
27 | #X restore 68 118 pd print.domain.error;
28 | #X obj 101 166 < 0;
29 | #X obj 251 280 line~ 1;
30 | #X obj 251 205 spigot;
31 | #X text 334 214 To hide the original sound field and reveal only the
32 | "mirror" sound field \, the polarity of the negative harmonics is inverted.
33 | ;
34 | #X text 334 184 To reveal the "mirror" of the sound field \, the negative
35 | harmonics are disabled.;
36 | #X text 334 254 Thus \, multiply the negative harmonics allows to hide
37 | and reveal the original sound field and its mirror image.;
38 | #X obj 191 174 sel 1;
39 | #X msg 191 207 0;
40 | #X msg 222 207 1;
41 | #X obj 33 143 unpack f f f;
42 | #X connect 0 0 5 0;
43 | #X connect 2 0 11 0;
44 | #X connect 5 0 1 0;
45 | #X connect 6 0 10 0;
46 | #X connect 9 0 12 0;
47 | #X connect 10 0 17 0;
48 | #X connect 11 0 24 0;
49 | #X connect 11 1 14 0;
50 | #X connect 11 2 12 0;
51 | #X connect 11 3 9 0;
52 | #X connect 12 0 10 0;
53 | #X connect 13 0 16 0;
54 | #X connect 15 0 17 1;
55 | #X connect 15 0 21 0;
56 | #X connect 16 0 5 1;
57 | #X connect 17 0 13 0;
58 | #X connect 21 0 22 0;
59 | #X connect 21 1 23 0;
60 | #X connect 22 0 13 0;
61 | #X connect 23 0 13 0;
62 | #X connect 24 2 15 0;
63 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.optim~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 599 186 737 482 10;
2 | #X obj 109 44 c.loadmess;
3 | #X obj 182 247 *~ 1;
4 | #X obj 181 221 hoa.in~;
5 | #X obj 181 271 hoa.out~;
6 | #X obj 237 90 hoa.in extra 1;
7 | #X text 326 90 Optimization type.;
8 | #X text 45 221 signal of the harmonic;
9 | #X text 21 271 new signal of the harmonic;
10 | #X text 384 174 Algorithms of optimization.;
11 | #N canvas 877 270 452 414 maxRe 0;
12 | #X obj 48 285 outlet;
13 | #X obj 63 53 unpack 0 0;
14 | #X obj 48 263 f;
15 | #X obj 48 242 inlet;
16 | #X obj 63 9 c.loadmess;
17 | #X obj 63 31 hoa.thisprocess~;
18 | #X obj 63 167 /, f 5;
19 | #X obj 63 199 *, f 4;
20 | #X obj 120 150 abs;
21 | #X obj 90 124 * 2;
22 | #X obj 90 145 + 2;
23 | #X obj 120 171 t b f;
24 | #X obj 63 81 t b f;
25 | #X obj 63 103 hoa.pi 1;
26 | #X obj 63 221 cos;
27 | #X connect 1 0 12 0;
28 | #X connect 1 1 8 0;
29 | #X connect 2 0 0 0;
30 | #X connect 3 0 2 0;
31 | #X connect 4 0 5 0;
32 | #X connect 5 0 1 0;
33 | #X connect 6 0 7 0;
34 | #X connect 7 0 14 0;
35 | #X connect 8 0 11 0;
36 | #X connect 9 0 10 0;
37 | #X connect 10 0 6 1;
38 | #X connect 11 0 7 0;
39 | #X connect 11 1 7 1;
40 | #X connect 12 0 13 0;
41 | #X connect 12 1 9 0;
42 | #X connect 13 0 6 0;
43 | #X connect 14 0 2 1;
44 | #X restore 260 173 pd maxRe;
45 | #N canvas 393 312 441 394 inPhase 0;
46 | #X obj 82 346 outlet;
47 | #X obj 128 48 unpack 0 0;
48 | #X obj 82 223 inlet;
49 | #X obj 82 325 f;
50 | #X obj 128 5 c.loadmess;
51 | #X obj 128 27 hoa.thisprocess~ inPhase;
52 | #N canvas 0 22 450 300 factorial 0;
53 | #X obj 163 81 until;
54 | #X obj 163 103 f 1;
55 | #X obj 188 103 + 1;
56 | #X obj 188 123 f 1;
57 | #X obj 163 123 * 1;
58 | #X obj 163 19 inlet, f 11;
59 | #X obj 163 61 t f b, f 9;
60 | #X obj 214 81 f 1;
61 | #X obj 163 40 max 1;
62 | #X obj 163 145 outlet;
63 | #X connect 0 0 1 0;
64 | #X connect 1 0 2 0;
65 | #X connect 1 0 4 0;
66 | #X connect 2 0 1 1;
67 | #X connect 3 0 4 1;
68 | #X connect 4 0 3 0;
69 | #X connect 4 0 9 0;
70 | #X connect 5 0 8 0;
71 | #X connect 6 0 0 0;
72 | #X connect 6 1 7 0;
73 | #X connect 7 0 1 1;
74 | #X connect 7 0 4 1;
75 | #X connect 8 0 6 0;
76 | #X restore 128 122 pd factorial;
77 | #N canvas 0 22 450 300 factorial 0;
78 | #X obj 163 81 until;
79 | #X obj 163 103 f 1;
80 | #X obj 188 103 + 1;
81 | #X obj 188 123 f 1;
82 | #X obj 163 123 * 1;
83 | #X obj 163 19 inlet, f 11;
84 | #X obj 163 61 t f b, f 9;
85 | #X obj 214 81 f 1;
86 | #X obj 163 40 max 1;
87 | #X obj 163 145 outlet;
88 | #X connect 0 0 1 0;
89 | #X connect 1 0 2 0;
90 | #X connect 1 0 4 0;
91 | #X connect 2 0 1 1;
92 | #X connect 3 0 4 1;
93 | #X connect 4 0 3 0;
94 | #X connect 4 0 9 0;
95 | #X connect 5 0 8 0;
96 | #X connect 6 0 0 0;
97 | #X connect 6 1 7 0;
98 | #X connect 7 0 1 1;
99 | #X connect 7 0 4 1;
100 | #X connect 8 0 6 0;
101 | #X restore 208 122 pd factorial;
102 | #X obj 208 100 +, f 5;
103 | #X obj 208 80 t b f;
104 | #N canvas 0 22 450 300 factorial 0;
105 | #X obj 163 81 until;
106 | #X obj 163 103 f 1;
107 | #X obj 188 103 + 1;
108 | #X obj 188 123 f 1;
109 | #X obj 163 123 * 1;
110 | #X obj 163 19 inlet, f 11;
111 | #X obj 163 61 t f b, f 9;
112 | #X obj 214 81 f 1;
113 | #X obj 163 40 max 1;
114 | #X obj 163 145 outlet;
115 | #X connect 0 0 1 0;
116 | #X connect 1 0 2 0;
117 | #X connect 1 0 4 0;
118 | #X connect 2 0 1 1;
119 | #X connect 3 0 4 1;
120 | #X connect 4 0 3 0;
121 | #X connect 4 0 9 0;
122 | #X connect 5 0 8 0;
123 | #X connect 6 0 0 0;
124 | #X connect 6 1 7 0;
125 | #X connect 7 0 1 1;
126 | #X connect 7 0 4 1;
127 | #X connect 8 0 6 0;
128 | #X restore 288 122 pd factorial;
129 | #X obj 288 80 t b f;
130 | #X obj 288 100 -, f 5;
131 | #X obj 128 171 /, f 5;
132 | #X obj 208 142 t b f;
133 | #X obj 238 171 /, f 5;
134 | #X obj 288 142 t b f;
135 | #X obj 128 224 *, f 5;
136 | #X obj 238 191 t b f;
137 | #X connect 1 0 6 0;
138 | #X connect 1 0 8 0;
139 | #X connect 1 0 12 0;
140 | #X connect 1 1 9 0;
141 | #X connect 1 1 11 0;
142 | #X connect 2 0 3 0;
143 | #X connect 3 0 0 0;
144 | #X connect 4 0 5 0;
145 | #X connect 5 0 1 0;
146 | #X connect 6 0 13 0;
147 | #X connect 6 0 15 0;
148 | #X connect 7 0 14 0;
149 | #X connect 8 0 7 0;
150 | #X connect 9 0 8 0;
151 | #X connect 9 1 8 1;
152 | #X connect 10 0 16 0;
153 | #X connect 11 0 12 0;
154 | #X connect 11 1 12 1;
155 | #X connect 12 0 10 0;
156 | #X connect 13 0 17 0;
157 | #X connect 14 0 13 0;
158 | #X connect 14 1 13 1;
159 | #X connect 15 0 18 0;
160 | #X connect 16 0 15 0;
161 | #X connect 16 1 15 1;
162 | #X connect 17 0 3 1;
163 | #X connect 18 0 17 0;
164 | #X connect 18 1 17 1;
165 | #X restore 317 173 pd inPhase;
166 | #N canvas 65 82 450 300 basic 0;
167 | #X obj 166 130 inlet;
168 | #X obj 166 174 outlet;
169 | #X obj 166 152 f 1;
170 | #X connect 0 0 2 0;
171 | #X connect 2 0 1 0;
172 | #X restore 203 173 pd basic;
173 | #X obj 109 66 hoa.thisprocess~ inPhase;
174 | #X msg 203 90 \$1;
175 | #X obj 203 151 route basic maxRe inPhase, f 29;
176 | #X obj 237 113 route symbol;
177 | #X connect 0 0 12 0;
178 | #X connect 1 0 3 0;
179 | #X connect 2 0 1 0;
180 | #X connect 4 0 15 0;
181 | #X connect 9 0 1 1;
182 | #X connect 10 0 1 1;
183 | #X connect 11 0 1 1;
184 | #X connect 12 2 13 0;
185 | #X connect 13 0 14 0;
186 | #X connect 14 0 11 0;
187 | #X connect 14 1 9 0;
188 | #X connect 14 2 10 0;
189 | #X connect 15 0 13 0;
190 | #X connect 15 1 14 0;
191 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.ringmod~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 552 82 814 650 10;
2 | #X obj 125 497 hoa.in~;
3 | #X obj 125 623 hoa.out~;
4 | #X obj 13 7 c.loadmess;
5 | #X text 5 497 Receive the signal;
6 | #X text 12 624 Output the signal;
7 | #X text 362 108 Input messages selector;
8 | #X obj 80 77 hoa.mode.sel;
9 | #X obj 13 103 hoa.args.map;
10 | #X obj 125 581 *~;
11 | #X obj 185 500 line~;
12 | #X obj 326 534 *~;
13 | #X obj 326 473 osc~ 1;
14 | #X obj 326 451 line~;
15 | #X msg 326 429 \$1 20;
16 | #X obj 82 127 + 1;
17 | #X obj 82 162 / 1;
18 | #X obj 231 63 hoa.in extra 1;
19 | #X text 324 63 Extra 1 Receive the inlet messages.;
20 | #X text 24 33 Default arguments and attributes;
21 | #X text 377 473 Simple ring modulation;
22 | #X obj 298 153 list split;
23 | #X obj 326 177 unpack;
24 | #X obj 247 228 *;
25 | #X text 85 212 factor;
26 | #X text 81 202 instance;
27 | #X obj 82 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
28 | -262144 -1 -1 0 256;
29 | #X obj 13 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
30 | -262144 -1 -1 0 256;
31 | #X obj 196 296 clip 0 1;
32 | #X text 371 215 float : The value \, that control the frequency of
33 | the ring modulation \, is multiplied by a factor depending on the intance.
34 | The factor is 1 for the highest harmonic and decreases toward 0 for
35 | the lower harmonics.;
36 | #X obj 326 407 f 1;
37 | #X msg 185 479 \$1 20;
38 | #X obj 223 402 sel 0 1;
39 | #X obj 196 359 t b f;
40 | #X text 12 202 number of;
41 | #X text 9 212 instances;
42 | #X text 375 297 diffusion : The value is clip between 0 and 1 and reversed.
43 | If the value is 1 \, the ring modulation is applied to all the intances.
44 | If the value is 0 \, the ring modulation is applied to no harmonics.
45 | Between the boudnaries \, the ring modulation appears first in the
46 | high harmonics then in the low harmonics.;
47 | #X obj 196 332 >= 0;
48 | #X obj 185 431 f 1;
49 | #X obj 266 500 line~;
50 | #X msg 266 479 \$1 20;
51 | #X obj 296 431 f 1;
52 | #X obj 223 431 f 0;
53 | #X obj 256 431 f 0;
54 | #X obj 193 393 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
55 | 1;
56 | #X text 34 385 1 if the ring modulation;
57 | #X text 34 395 is active and 0 if not;
58 | #X obj 172 78 f 10;
59 | #X obj 196 109 route diffusion float list;
60 | #X obj 347 82 sel done;
61 | #X obj 13 54 hoa.thisprocess~ 5 @diffusion 1;
62 | #X text 374 156 list : The item corresponding to the instance is selected
63 | and control the frequency of the ring modulation (mostly used in the
64 | plane waves domain).;
65 | #X text 240 17 This hoa.processing diffuses the sound field with ring
66 | modulation.;
67 | #X connect 0 0 8 0;
68 | #X connect 2 0 49 0;
69 | #X connect 6 0 7 1;
70 | #X connect 7 0 26 0;
71 | #X connect 7 0 15 1;
72 | #X connect 7 1 14 0;
73 | #X connect 7 1 20 1;
74 | #X connect 8 0 1 0;
75 | #X connect 9 0 8 1;
76 | #X connect 10 0 8 1;
77 | #X connect 11 0 10 0;
78 | #X connect 12 0 11 0;
79 | #X connect 13 0 12 0;
80 | #X connect 14 0 15 0;
81 | #X connect 15 0 22 1;
82 | #X connect 15 0 25 0;
83 | #X connect 15 0 36 1;
84 | #X connect 16 0 47 0;
85 | #X connect 20 1 21 0;
86 | #X connect 21 0 29 0;
87 | #X connect 22 0 29 0;
88 | #X connect 27 0 36 0;
89 | #X connect 29 0 13 0;
90 | #X connect 30 0 9 0;
91 | #X connect 31 0 37 0;
92 | #X connect 31 0 41 0;
93 | #X connect 31 1 40 0;
94 | #X connect 31 1 42 0;
95 | #X connect 32 0 29 0;
96 | #X connect 32 1 31 0;
97 | #X connect 32 1 43 0;
98 | #X connect 36 0 32 0;
99 | #X connect 37 0 30 0;
100 | #X connect 38 0 10 1;
101 | #X connect 39 0 38 0;
102 | #X connect 40 0 39 0;
103 | #X connect 41 0 39 0;
104 | #X connect 42 0 30 0;
105 | #X connect 46 0 47 0;
106 | #X connect 47 0 27 0;
107 | #X connect 47 1 22 0;
108 | #X connect 47 2 20 0;
109 | #X connect 47 3 48 0;
110 | #X connect 48 0 46 0;
111 | #X connect 49 0 7 0;
112 | #X connect 49 1 6 0;
113 | #X connect 49 2 46 0;
114 | #X connect 49 3 47 0;
115 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.sum~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 271 97 476 386 10;
2 | #X obj 224 106 hoa.in~;
3 | #X text 104 106 Receive the signal;
4 | #X text 111 233 Output the signal;
5 | #X obj 224 232 hoa.out~ extra 1;
6 | #X connect 0 0 3 0;
7 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.fx.wider~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 65 198 552 433 10;
2 | #X obj 9 4 c.loadmess;
3 | #X obj 39 306 hoa.out~;
4 | #X obj 39 162 hoa.in~;
5 | #X obj 9 49 unpack 0 0;
6 | #X obj 9 26 hoa.thisprocess~;
7 | #X obj 66 70 abs;
8 | #X obj 208 14 hoa.in extra 1;
9 | #X obj 39 284 *~ 1;
10 | #X obj 235 146 t f f;
11 | #X obj 208 96 t f f;
12 | #X text 285 39 Clip the widen value;
13 | #X text 285 49 between 0 and 1;
14 | #X text 252 70 Compute a(x) :;
15 | #N canvas 65 107 450 300 widening 0;
16 | #X obj 131 127 clip 0 1;
17 | #X obj 131 84 t f b b;
18 | #X msg 176 105 1, f 2;
19 | #X msg 153 106 0, f 2;
20 | #X obj 131 62 inlet;
21 | #X obj 131 148 outlet;
22 | #X connect 0 0 5 0;
23 | #X connect 1 0 0 0;
24 | #X connect 1 1 3 0;
25 | #X connect 1 2 2 0;
26 | #X connect 2 0 0 2;
27 | #X connect 3 0 0 1;
28 | #X connect 4 0 1 0;
29 | #X restore 208 43 pd widening;
30 | #N canvas 65 107 450 300 a_x 0;
31 | #X obj 166 61 inlet;
32 | #X obj 166 194 outlet;
33 | #X msg 166 107 1;
34 | #X obj 166 83 t b f b;
35 | #X obj 181 151 hoa.pi 1;
36 | #X obj 166 173 *;
37 | #X obj 166 130 -;
38 | #X connect 0 0 3 0;
39 | #X connect 2 0 6 0;
40 | #X connect 3 0 2 0;
41 | #X connect 3 1 6 1;
42 | #X connect 3 2 4 0;
43 | #X connect 4 0 5 1;
44 | #X connect 5 0 1 0;
45 | #X connect 6 0 5 0;
46 | #X restore 208 75 pd a_x;
47 | #N canvas 65 102 450 300 b_x 0;
48 | #X obj 149 73 inlet;
49 | #X obj 149 226 outlet;
50 | #X obj 149 140 -;
51 | #X obj 149 95 t f b;
52 | #X obj 164 118 hoa.pi 0.5;
53 | #X obj 149 162 sin;
54 | #X obj 149 184 + 1;
55 | #X obj 149 205 * 0.5;
56 | #X connect 0 0 3 0;
57 | #X connect 2 0 5 0;
58 | #X connect 3 0 2 0;
59 | #X connect 3 1 4 0;
60 | #X connect 4 0 2 1;
61 | #X connect 5 0 6 0;
62 | #X connect 6 0 7 0;
63 | #X connect 7 0 1 0;
64 | #X restore 235 125 pd b_x;
65 | #X text 277 120 Compute b(x) :;
66 | #X text 252 80 (1 - x) * π;
67 | #X text 277 130 (sin(a(x) - π / 2) + 1) * 0.5;
68 | #X obj 60 263 *;
69 | #N canvas 151 185 450 300 g_1 0;
70 | #X obj 74 34 inlet;
71 | #X text 126 56 decomposition order;
72 | #X obj 89 55 inlet;
73 | #X obj 104 77 inlet;
74 | #X text 140 78 harmonic degree;
75 | #X obj 89 124 -;
76 | #X obj 74 146 *;
77 | #X obj 74 167 + 1;
78 | #X obj 74 218 outlet;
79 | #X msg 158 167 1;
80 | #X obj 203 167 == 1;
81 | #X obj 158 144 t b f;
82 | #X obj 158 189 spigot 0;
83 | #X obj 74 188 spigot 0;
84 | #X obj 119 167 != 1;
85 | #X obj 104 98 t f f;
86 | #X text 71 16 b(x);
87 | #X connect 0 0 6 0;
88 | #X connect 2 0 5 0;
89 | #X connect 3 0 15 0;
90 | #X connect 5 0 6 1;
91 | #X connect 6 0 7 0;
92 | #X connect 7 0 13 0;
93 | #X connect 9 0 12 0;
94 | #X connect 10 0 12 1;
95 | #X connect 11 0 9 0;
96 | #X connect 11 1 10 0;
97 | #X connect 12 0 8 0;
98 | #X connect 13 0 8 0;
99 | #X connect 14 0 13 1;
100 | #X connect 15 0 5 1;
101 | #X connect 15 1 11 0;
102 | #X connect 15 1 14 0;
103 | #X restore 75 241 pd g_1;
104 | #N canvas 163 191 456 397 g_2 0;
105 | #X obj 50 26 inlet;
106 | #X obj 50 157 clip 0 1;
107 | #X msg 72 135 0, f 2;
108 | #X obj 50 111 t f b b;
109 | #X obj 95 135 hoa.pi 1;
110 | #X obj 50 90 *;
111 | #X obj 65 46 inlet;
112 | #X text 100 48 harmonic degree;
113 | #X obj 50 179 cos;
114 | #X obj 50 201 + 1;
115 | #X obj 50 222 * 0.5;
116 | #X obj 50 275 spigot 0;
117 | #X obj 138 277 spigot 0;
118 | #X obj 50 310 outlet;
119 | #X obj 183 255 == 1;
120 | #X obj 138 255 *;
121 | #X obj 153 234 -;
122 | #X obj 153 124 inlet;
123 | #X obj 65 68 t f f;
124 | #X obj 93 254 != 1;
125 | #X obj 153 191 *;
126 | #X obj 168 168 inlet;
127 | #X text 203 169 decomposition order;
128 | #X obj 153 212 + 1;
129 | #X obj 153 146 t f f;
130 | #X text 87 28 a(x);
131 | #X text 189 124 b(x);
132 | #X connect 0 0 5 0;
133 | #X connect 1 0 8 0;
134 | #X connect 2 0 1 1;
135 | #X connect 3 0 1 0;
136 | #X connect 3 1 2 0;
137 | #X connect 3 2 4 0;
138 | #X connect 4 0 1 2;
139 | #X connect 5 0 3 0;
140 | #X connect 6 0 18 0;
141 | #X connect 8 0 9 0;
142 | #X connect 9 0 10 0;
143 | #X connect 10 0 11 0;
144 | #X connect 10 0 15 0;
145 | #X connect 11 0 13 0;
146 | #X connect 12 0 13 0;
147 | #X connect 14 0 12 1;
148 | #X connect 15 0 12 0;
149 | #X connect 16 0 15 1;
150 | #X connect 17 0 24 0;
151 | #X connect 18 0 5 1;
152 | #X connect 18 1 14 0;
153 | #X connect 18 1 19 0;
154 | #X connect 19 0 11 1;
155 | #X connect 20 0 23 0;
156 | #X connect 21 0 20 1;
157 | #X connect 23 0 16 0;
158 | #X connect 24 0 20 0;
159 | #X connect 24 1 16 1;
160 | #X restore 60 216 pd g_2;
161 | #X text 116 242 Compute the first part of g(x);
162 | #X text 101 217 Compute the second part of g(x);
163 | #X connect 0 0 4 0;
164 | #X connect 2 0 7 0;
165 | #X connect 3 0 20 1;
166 | #X connect 3 0 21 3;
167 | #X connect 3 1 5 0;
168 | #X connect 4 0 3 0;
169 | #X connect 5 0 20 2;
170 | #X connect 5 0 21 1;
171 | #X connect 6 0 13 0;
172 | #X connect 7 0 1 0;
173 | #X connect 8 0 20 0;
174 | #X connect 8 1 21 2;
175 | #X connect 9 0 21 0;
176 | #X connect 9 1 15 0;
177 | #X connect 13 0 14 0;
178 | #X connect 14 0 9 0;
179 | #X connect 15 0 8 0;
180 | #X connect 19 0 7 1;
181 | #X connect 20 0 19 1;
182 | #X connect 21 0 19 0;
183 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.syn.2d.encoder~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 65 219 612 383 10;
2 | #X obj 94 321 hoa.out~;
3 | #X obj 12 5 c.loadmess;
4 | #X text 68 213 Receive the signal;
5 | #X text 70 343 Output the signal;
6 | #X obj 94 279 *~;
7 | #X obj 205 239 line~;
8 | #X msg 205 217 \$1 20;
9 | #X obj 94 235 hoa.in~ extra 1;
10 | #X obj 12 52 hoa.thisprocess~;
11 | #N canvas 0 50 450 300 print.domain.error 0;
12 | #X obj 6 54 hoa.mode.sel;
13 | #X obj 6 133 sel 0;
14 | #X obj 7 214 print hoa.syn.encoder~;
15 | #X msg 7 163 only valid in the circular harmonics domain.;
16 | #X obj 6 24 inlet;
17 | #X connect 0 0 1 0;
18 | #X connect 1 1 3 0;
19 | #X connect 3 0 2 0;
20 | #X connect 4 0 0 0;
21 | #X restore 43 88 pd print.domain.error;
22 | #X text 239 15 This hoa.processing shows what performs the encoding
23 | of a signal in the circular harmonics domain.;
24 | #X obj 205 111 hoa.in extra 2;
25 | #X obj 12 110 unpack 0 0 0;
26 | #N canvas 821 80 450 300 exp_img 0;
27 | #X obj 139 109 spigot;
28 | #X obj 216 109 spigot;
29 | #X obj 172 82 >= 0;
30 | #X obj 139 181 *;
31 | #X obj 179 245 outlet;
32 | #X obj 154 161 abs;
33 | #X obj 139 203 cos;
34 | #X obj 249 82 < 0;
35 | #X obj 216 181 *;
36 | #X obj 231 161 abs;
37 | #X obj 216 203 sin;
38 | #X obj 186 9 inlet;
39 | #X text 12 196 e^i|m|θ = cos(|m|θ);
40 | #X text 252 186 else if m < 0;
41 | #X text 262 196 e^i|m|θ = sin(|m|θ);
42 | #X text 2 186 if m >= 0, f 10;
43 | #X obj 249 61 r \$0-order;
44 | #X obj 231 141 r \$0-order;
45 | #X obj 154 141 r \$0-order;
46 | #X obj 172 61 r \$0-order;
47 | #X connect 0 0 3 0;
48 | #X connect 1 0 8 0;
49 | #X connect 2 0 0 1;
50 | #X connect 3 0 6 0;
51 | #X connect 5 0 3 1;
52 | #X connect 6 0 4 0;
53 | #X connect 7 0 1 1;
54 | #X connect 8 0 10 0;
55 | #X connect 9 0 8 1;
56 | #X connect 10 0 4 0;
57 | #X connect 11 0 1 0;
58 | #X connect 11 0 0 0;
59 | #X connect 16 0 7 0;
60 | #X connect 17 0 9 0;
61 | #X connect 18 0 5 0;
62 | #X connect 19 0 2 0;
63 | #X restore 205 186 pd exp_img;
64 | #X text 210 169 e^i|m|θ;
65 | #X obj 46 162 s \$0-degree;
66 | #X obj 81 139 s \$0-order;
67 | #X text 118 163 l;
68 | #X text 148 140 m;
69 | #X text 193 81 Extra 2 Receive the azimuth (in radian).;
70 | #X obj 167 136 f 0;
71 | #X obj 167 113 bang;
72 | #X connect 1 0 8 0;
73 | #X connect 4 0 0 0;
74 | #X connect 5 0 4 1;
75 | #X connect 6 0 5 0;
76 | #X connect 7 0 4 0;
77 | #X connect 8 0 12 0;
78 | #X connect 8 1 9 0;
79 | #X connect 8 3 21 0;
80 | #X connect 11 0 13 0;
81 | #X connect 12 1 15 0;
82 | #X connect 12 2 16 0;
83 | #X connect 13 0 6 0;
84 | #X connect 20 0 13 0;
85 | #X connect 21 0 20 0;
86 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.syn.delay~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 119 122 946 548 10;
2 | #X obj 355 482 hoa.out~;
3 | #X obj 9 11 c.loadmess;
4 | #X obj 312 65 hoa.in extra 1;
5 | #X obj 471 267 f;
6 | #X obj 289 332 *~ 513;
7 | #X obj 736 363 table \$0-hoa_hann1 512;
8 | #X obj 289 360 tabread4~ \$0-hoa_hann1;
9 | #X obj 274 411 *~;
10 | #X obj 470 411 *~;
11 | #X obj 274 267 f;
12 | #X obj 485 360 tabread4~ \$0-hoa_hann1;
13 | #X obj 485 311 wrap~;
14 | #X obj 485 290 +~ 0.5;
15 | #X obj 485 332 *~ 513;
16 | #X obj 471 391 delread~ \$0-hoa.delay 1;
17 | #X obj 274 391 delread~ \$0-hoa.delay 1;
18 | #X obj 289 232 phasor~ 0.5;
19 | #N canvas 970 176 450 300 sel~ 0;
20 | #X obj 73 20 c.loadmess 1;
21 | #X obj 92 141 samphold~;
22 | #X obj 92 165 snapshot~;
23 | #X obj 92 187 change;
24 | #X obj 92 209 < 126;
25 | #X obj 92 233 sel 0 1;
26 | #X obj 38 59 inlet~;
27 | #X obj 108 49 inlet~;
28 | #X obj 92 261 outlet;
29 | #X obj 153 261 outlet;
30 | #X obj 155 232 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
31 | -262144 -1 -1 0 256;
32 | #X obj 73 109 metro 5;
33 | #X connect 0 0 11 0;
34 | #X connect 1 0 2 0;
35 | #X connect 2 0 3 0;
36 | #X connect 3 0 4 0;
37 | #X connect 3 0 10 0;
38 | #X connect 4 0 5 0;
39 | #X connect 5 0 9 0;
40 | #X connect 5 1 8 0;
41 | #X connect 6 0 1 0;
42 | #X connect 6 0 1 1;
43 | #X connect 7 0 1 1;
44 | #X connect 11 0 2 0;
45 | #X restore 417 414 pd sel~;
46 | #X obj 386 199 unpack;
47 | #X obj 737 162 / 256;
48 | #X obj 737 207 * 1;
49 | #X obj 737 261 * 0.5;
50 | #X obj 737 233 sin;
51 | #X obj 737 285 + 0.5;
52 | #X obj 738 22 c.loadmess;
53 | #X obj 737 134 t f f;
54 | #X obj 737 313 pack;
55 | #X obj 773 180 hoa.pi 1;
56 | #X obj 737 183 - 0.5;
57 | #X obj 738 46 t b b;
58 | #X obj 737 90 until;
59 | #X obj 737 111 f;
60 | #X obj 764 112 + 1;
61 | #X msg 737 69 512;
62 | #X obj 737 337 tabwrite \$0-hoa_hann1;
63 | #X obj 76 61 hoa.mode.sel;
64 | #X obj 9 87 hoa.args.map;
65 | #X obj 78 111 + 1;
66 | #X obj 78 146 / 1;
67 | #X text 81 196 factor;
68 | #X text 77 186 instance;
69 | #X obj 78 166 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
70 | -262144 -1 -1 0 256;
71 | #X obj 9 166 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
72 | -262144 -1 -1 0 256;
73 | #X text 8 186 number of;
74 | #X text 5 196 instances;
75 | #X obj 490 129 delwrite~ \$0-hoa.delay 5000;
76 | #X obj 9 38 hoa.thisprocess~ @delay 1000;
77 | #X obj 174 148 route delay;
78 | #X obj 358 166 list split;
79 | #X obj 312 95 route float list;
80 | #X obj 312 178 * 1;
81 | #X obj 311 141 t b f;
82 | #X text 531 430 list : The item is selected depending on the instance
83 | and directly set the delay time of the instance (mostly used in the
84 | plane waves domain).;
85 | #X text 531 490 float : The delay time are mapped depending on the
86 | intance and increase while the index and the band of the harmonics
87 | increase.;
88 | #X obj 412 65 hoa.in extra 2;
89 | #X text 350 6 This hoa.processing synthesizes a sound field with delay
90 | lines.;
91 | #X obj 490 86 hoa.in~ extra 1;
92 | #X connect 1 0 46 0;
93 | #X connect 2 0 49 0;
94 | #X connect 3 0 14 0;
95 | #X connect 4 0 6 0;
96 | #X connect 4 0 17 0;
97 | #X connect 6 0 7 1;
98 | #X connect 7 0 0 0;
99 | #X connect 8 0 0 0;
100 | #X connect 9 0 15 0;
101 | #X connect 10 0 8 1;
102 | #X connect 11 0 13 0;
103 | #X connect 12 0 11 0;
104 | #X connect 13 0 10 0;
105 | #X connect 13 0 17 1;
106 | #X connect 14 0 8 0;
107 | #X connect 15 0 7 0;
108 | #X connect 16 0 4 0;
109 | #X connect 16 0 12 0;
110 | #X connect 17 0 9 0;
111 | #X connect 17 1 3 0;
112 | #X connect 18 0 3 1;
113 | #X connect 18 0 9 1;
114 | #X connect 19 0 28 0;
115 | #X connect 20 0 22 0;
116 | #X connect 21 0 23 0;
117 | #X connect 22 0 21 0;
118 | #X connect 23 0 26 0;
119 | #X connect 24 0 29 0;
120 | #X connect 25 0 19 0;
121 | #X connect 25 1 26 1;
122 | #X connect 26 0 34 0;
123 | #X connect 27 0 20 1;
124 | #X connect 28 0 20 0;
125 | #X connect 29 0 33 0;
126 | #X connect 29 1 27 0;
127 | #X connect 30 0 31 0;
128 | #X connect 31 0 32 0;
129 | #X connect 31 0 25 0;
130 | #X connect 32 0 31 1;
131 | #X connect 33 0 30 0;
132 | #X connect 35 0 36 1;
133 | #X connect 36 0 42 0;
134 | #X connect 36 0 38 1;
135 | #X connect 36 1 37 0;
136 | #X connect 36 1 48 1;
137 | #X connect 37 0 38 0;
138 | #X connect 38 0 41 0;
139 | #X connect 41 0 51 0;
140 | #X connect 46 0 36 0;
141 | #X connect 46 1 35 0;
142 | #X connect 46 3 47 0;
143 | #X connect 47 0 50 0;
144 | #X connect 48 1 18 0;
145 | #X connect 49 0 50 0;
146 | #X connect 49 1 48 0;
147 | #X connect 50 0 9 1;
148 | #X connect 50 0 3 1;
149 | #X connect 51 0 50 0;
150 | #X connect 51 1 50 1;
151 | #X connect 54 0 49 0;
152 | #X connect 56 0 45 0;
153 |
--------------------------------------------------------------------------------
/Package/Hoa/patchers/hoa.syn.ringmod~.pd:
--------------------------------------------------------------------------------
1 | #N canvas 314 82 771 461 10;
2 | #X obj 88 414 hoa.out~;
3 | #X obj 6 8 c.loadmess;
4 | #X text 62 306 Receive the signal;
5 | #X text 64 436 Output the signal;
6 | #X text 318 109 Input messages selector;
7 | #X obj 43 78 hoa.mode.sel;
8 | #X obj 6 104 hoa.args.map;
9 | #X obj 88 372 *~;
10 | #X obj 189 354 osc~ 1;
11 | #X obj 189 332 line~;
12 | #X msg 189 310 \$1 20;
13 | #X obj 75 128 + 1;
14 | #X obj 75 163 / 1;
15 | #X text 317 64 Extra 1 Receive the inlet messages.;
16 | #X text 240 354 Simple ring modulation;
17 | #X obj 235 214 list split;
18 | #X obj 263 238 unpack;
19 | #X obj 189 229 *;
20 | #X text 78 213 factor;
21 | #X text 74 203 instance;
22 | #X obj 75 183 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
23 | -262144 -1 -1 0 256;
24 | #X text 324 226 float : The value \, that control the frequency of
25 | the ring modulation \, is multiplied by a factor depending on the intance.
26 | The factor is 1 for the highest harmonic and decreases toward 0 for
27 | the lower harmonics.;
28 | #X obj 282 137 sel done;
29 | #X obj 88 328 hoa.in~ extra 1;
30 | #X obj 6 55 hoa.thisprocess~ 20;
31 | #X obj 189 110 route float list;
32 | #X obj 188 79 f 20;
33 | #X text 17 34 Default arguments;
34 | #X text 327 167 list : The item corresponding to the instance is selected
35 | and control the frequency of the ring modulation (mostly used in the
36 | plane waves domain).;
37 | #X text 233 18 This hoa.processing synthesizes a sound field with ring
38 | modulation.;
39 | #X obj 256 310 random 1000;
40 | #X obj 256 286 c.loadmess;
41 | #X obj 256 333 / 1000;
42 | #X obj 224 64 hoa.in extra 2;
43 | #X connect 1 0 24 0;
44 | #X connect 5 0 6 1;
45 | #X connect 6 0 12 1;
46 | #X connect 6 1 11 0;
47 | #X connect 6 1 15 1;
48 | #X connect 7 0 0 0;
49 | #X connect 8 0 7 1;
50 | #X connect 9 0 8 0;
51 | #X connect 10 0 9 0;
52 | #X connect 11 0 12 0;
53 | #X connect 12 0 17 1;
54 | #X connect 12 0 20 0;
55 | #X connect 15 1 16 0;
56 | #X connect 16 0 10 0;
57 | #X connect 17 0 10 0;
58 | #X connect 22 0 26 0;
59 | #X connect 23 0 7 0;
60 | #X connect 24 0 6 0;
61 | #X connect 24 1 5 0;
62 | #X connect 24 2 26 0;
63 | #X connect 24 3 25 0;
64 | #X connect 25 0 17 0;
65 | #X connect 25 1 15 0;
66 | #X connect 25 2 22 0;
67 | #X connect 26 0 25 0;
68 | #X connect 30 0 32 0;
69 | #X connect 31 0 30 0;
70 | #X connect 32 0 8 1;
71 | #X connect 33 0 25 0;
72 |
--------------------------------------------------------------------------------
/Package/Hoa/tutorials/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 |
3 | SUFFIXES = .pd
4 |
5 | hoa.librarytutorialsdir=$(pkglibdir)/tutorials
6 |
7 | dist_hoa.librarytutorials_DATA = \
8 | hoa.tools.2d.pd \
9 | hoa.tools.3d.pd \
10 | Tutorial_1.pd \
11 | Tutorial_2.pd \
12 | Tutorial_3.pd \
13 | Tutorial_4.pd \
14 | Tutorial_5.pd \
15 | Tutorial_6.pd \
16 | Tutorial_7.pd \
17 | Tutorial_8.pd \
18 | Tutorial_9.pd \
19 | Tutorial_10.pd
20 |
--------------------------------------------------------------------------------
/Package/Hoa/tutorials/Tutorial_10.pd:
--------------------------------------------------------------------------------
1 | #N canvas 394 82 722 655 10;
2 | #X obj 223 129 c.number @size 53 17 @fontname Helvetica @fontweight
3 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @presetname
4 | (null) @min 0 @max 1 @minmax 0 1 @decimal 6 @bgcolor 0.7 0.7 0.7 1
5 | @bdcolor 0.5 0.5 0.5 1 @textcolor 0 0 0 1;
6 | #X obj 16 185 hoa.2d.scope~ @size 213 213 @fontname Helvetica @fontweight
7 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @order
8 | 7 @view 0 @gain 5 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
9 | 0.7 0.7 0.7 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
10 | #X obj 23 10 c.canvasinfos;
11 | #X obj 22 6 loadbang;
12 | #X obj 3 3 hoa.tuto.header;
13 | #X obj 305 595 hoa.help.pub;
14 | #X obj 223 103 c.loadmess 1;
15 | #X obj 17 425 hoa.2d.meter~ @size 213 213 @fontname Helvetica @fontweight
16 | normal @fontslant roman @fontsize 11 @receive (null) @send (null) @channels
17 | 16 @angles 0 22.5 45 67.5 90 112.5 135 157.5 180 202.5 225 247.5 270
18 | 292.5 315 337.5 @offset 0 @rotation anti-clockwise @vectors none @interval
19 | 50 @bgcolor 0.76 0.76 0.76 1 @bdcolor 0.7 0.7 0.7 1 @coldcolor 0 0.6
20 | 0 0.8 @tepidcolor 0.6 0.73 0 0.8 @warmcolor 0.85 0.85 0 0.8 @hotcolor
21 | 1 0.6 0 0.8 @overcolor 1 0 0 0.8 @energycolor 0 0 1 0.8 @velocitycolor
22 | 1 0 0 0.8;
23 | #X obj 16 136 hoa.2d.encoder~ 7 --------------;
24 | #X text 489 534 Dsp on/off;
25 | #X obj 452 527 c.dsp~ @size 30 30 @fontname Helvetica @fontweight normal
26 | @fontslant roman @fontsize 11 @receive (null) @send (null) @bgcolor
27 | 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @logocolor 0 0.6 0 0.8;
28 | #X obj 17 402 hoa.2d.decoder~ 7 ambisonic 16 ----;
29 | #X text 247 397 with;
30 | #X text 265 412 a(x) = (1 - x) * π;
31 | #X text 247 326 if l == 0 \,;
32 | #X text 265 341 g(x) = b(x) * N + 1;
33 | #X text 247 359 else \,;
34 | #X text 265 376 g(x) = (b(x) * N - 1) + 1) * (cos(min(0 \, max(a(x)
35 | * l \, π))) + 1) * 0.5, f 70;
36 | #X text 247 429 with;
37 | #X text 265 447 b(x) = (sin(a(x) - π / 2) + 1) * 0.5;
38 | #X obj 16 161 hoa.2d.process~ 7 hoa.fx.wider~ ---;
39 | #X text 236 162 Click to open;
40 | #X text 247 274 This operation consists to multiply each harmonic by
41 | a gain g which depends on the decomposition order N \, the harmonic
42 | degree l and the widening value x :, f 73;
43 | #X text 281 122 Widening value between 0 (omnidirectional);
44 | #X text 282 134 and 1 (the most directional).;
45 | #X text 4 51 During the harmonic treatments \, we can change the directivity
46 | of the sound field. This is one of the underlying operations of the
47 | distance compensation algorithm \, while the sound enters in the ambisonic
48 | sphere or circle., f 73;
49 | #X obj 16 115 sig~ 1;
50 | #X connect 0 0 20 15;
51 | #X connect 2 0 4 0;
52 | #X connect 3 0 2 0;
53 | #X connect 6 0 0 0;
54 | #X connect 8 0 20 0;
55 | #X connect 8 1 20 1;
56 | #X connect 8 2 20 2;
57 | #X connect 8 3 20 3;
58 | #X connect 8 4 20 4;
59 | #X connect 8 5 20 5;
60 | #X connect 8 6 20 6;
61 | #X connect 8 7 20 7;
62 | #X connect 8 8 20 8;
63 | #X connect 8 9 20 9;
64 | #X connect 8 10 20 10;
65 | #X connect 8 11 20 11;
66 | #X connect 8 12 20 12;
67 | #X connect 8 13 20 13;
68 | #X connect 8 14 20 14;
69 | #X connect 11 0 7 0;
70 | #X connect 11 1 7 1;
71 | #X connect 11 2 7 2;
72 | #X connect 11 3 7 3;
73 | #X connect 11 4 7 4;
74 | #X connect 11 5 7 5;
75 | #X connect 11 6 7 6;
76 | #X connect 11 7 7 7;
77 | #X connect 11 8 7 8;
78 | #X connect 11 9 7 9;
79 | #X connect 11 10 7 10;
80 | #X connect 11 11 7 11;
81 | #X connect 11 12 7 12;
82 | #X connect 11 13 7 13;
83 | #X connect 11 14 7 14;
84 | #X connect 11 15 7 15;
85 | #X connect 20 0 1 0;
86 | #X connect 20 0 11 0;
87 | #X connect 20 1 1 1;
88 | #X connect 20 1 11 1;
89 | #X connect 20 2 1 2;
90 | #X connect 20 2 11 2;
91 | #X connect 20 3 1 3;
92 | #X connect 20 3 11 3;
93 | #X connect 20 4 1 4;
94 | #X connect 20 4 11 4;
95 | #X connect 20 5 1 5;
96 | #X connect 20 5 11 5;
97 | #X connect 20 6 1 6;
98 | #X connect 20 6 11 6;
99 | #X connect 20 7 1 7;
100 | #X connect 20 7 11 7;
101 | #X connect 20 8 1 8;
102 | #X connect 20 8 11 8;
103 | #X connect 20 9 1 9;
104 | #X connect 20 9 11 9;
105 | #X connect 20 10 1 10;
106 | #X connect 20 10 11 10;
107 | #X connect 20 11 1 11;
108 | #X connect 20 11 11 11;
109 | #X connect 20 12 1 12;
110 | #X connect 20 12 11 12;
111 | #X connect 20 13 1 13;
112 | #X connect 20 13 11 13;
113 | #X connect 20 14 1 14;
114 | #X connect 20 14 11 14;
115 | #X connect 26 0 8 0;
116 |
--------------------------------------------------------------------------------
/Package/Hoa/tutorials/Tutorial_2.pd:
--------------------------------------------------------------------------------
1 | #N canvas 163 23 799 740 10;
2 | #X obj 22 7 c.canvasinfos;
3 | #X obj 21 3 loadbang;
4 | #X obj 4 2 hoa.tuto.header;
5 | #X obj 417 2 hoa.help.pub;
6 | #X obj 439 59 c.blackboard @size 320 320 @fontname "Helvetica" @fontweight
7 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
8 | @chalkmode 0 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1;
9 | #N canvas 0 50 635 265 subscript 0;
10 | #X obj 142 243 outlet;
11 | #X obj 154 46 loadbang;
12 | #X msg 143 85 clear \, fill 0 \, width 3 \, color rgb 0 0 0 \, oval
13 | 7 7 315 315 \, width 1 \, line 161 161 52 52 \, line 161 161 52 271
14 | \, line 161 161 271 52 \, line 161 161 271 271 \, color rgb 0 1 0 \,
15 | fill 1 \, oval 157 157 166 166 \, line 161 161 161 120 \, line 161
16 | 120 156 130 \, line 161 120 166 130 \, color rgb 0 0 1 \, fill 0 \,
17 | arc 20 20 303 303 90 40 \, line 161 15 161 25 \, line 70 54 74 43 \,
18 | line 70 54 81 53 \, color rgb 0 0 0 \, text 140 61 FRONT \, text 144
19 | 242 BACK \, text 61 159 LEFT \, text 232 159 RIGHT;
20 | #X connect 1 0 2 0;
21 | #X connect 2 0 0 0;
22 | #X restore 502 126 pd subscript;
23 | #X obj 439 396 c.blackboard @size 320 320 @fontname "Helvetica" @fontweight
24 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
25 | @chalkmode 0 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1;
26 | #N canvas 729 414 635 265 subscript 0;
27 | #X obj 142 243 outlet;
28 | #X obj 154 46 loadbang;
29 | #X msg 149 85 clear \, fill 0 \, width 3 \, color rgb 0 0 0 \, oval
30 | 7 7 315 315 \, width 1 \, line 7 161 315 161 \, color rgb 0 1 0 \,
31 | fill 1 \, oval 157 157 166 166 \, line 161 161 120 161 \, line 120
32 | 161 130 156 \, line 120 161 130 166 \, color rgb 0 0 1 \, fill 0 \,
33 | arc 20 20 303 303 140 40 \, line 15 161 25 161 \, line 54 70 43 74
34 | \, line 54 70 53 81 \, color rgb 0 0 0 \, text 146 61 TOP \, text 136
35 | 242 BOTTOM;
36 | #X connect 1 0 2 0;
37 | #X connect 2 0 0 0;
38 | #X restore 502 456 pd subscript;
39 | #X text 3 436 The "front" of the sound field at 0° or 0 rad azimuth
40 | , f 65;
41 | #X text 3 451 The "left" of the sound field at 90 ° or π/2 rad azimuth
42 | , f 65;
43 | #X text 3 465 The "back" of the sound field at 180° or π rad azimuth
44 | , f 65;
45 | #X text 3 479 The "right" of the sound field at 270° or 3/2π rad
46 | azimuth, f 65;
47 | #X text 3 493 The "horizon" of the sound field at 0° or 0 rad elevation
48 | , f 65;
49 | #X text 3 507 The "top" of the sound field at 90° or π/2 rad elevation
50 | , f 65;
51 | #X text 3 521 The "bottom" of the sound field at -90° or -π/2 rad
52 | elevation, f 65;
53 | #X text 3 261 The angles are usually defined in radians for a representation
54 | of space in the circular or spherical harmonics domain (between 0 and
55 | 2π rad for the azimuth and between -π/2 and π/2 for the elevation).
56 | For a representation of space in the planewaves domain (or for a set
57 | of loudspeakers) the angles are usually defined in degrees (between
58 | 0° and 360° for the azimuth and between -90° and 90° for the elevation).
59 | , f 65;
60 | #X text 3 51 The ambisonic model is based on a polar or spherical representation
61 | of space in adequacy with a listener placed at the center of a circle
62 | or a sphere of loudspeakers., f 65;
63 | #X text 3 581 In the representations \, the listener and its point
64 | of view are represented by the green arrrows \, the 0° azimuth and
65 | elevation and their rotation direction are represented by the blue
66 | arrows., f 65;
67 | #X text 3 131 The coordinate system used within the library is similar
68 | to the geographic coordinates. We arbitrarily define the direction
69 | of rotation as counterclockwise for the azimuth and from the bottom
70 | to the top for the elevation. The 0° of the azimuth is 90° phase
71 | shifted relative to a mathematical representation of a circle. The
72 | 0° of elevation matches with the equatorial plan, f 65;
73 | #X text 3 409 Assuming that the listener is directed to 0° \, it is
74 | customary to define:, f 65;
75 | #X connect 0 0 2 0;
76 | #X connect 1 0 0 0;
77 | #X connect 5 0 4 0;
78 | #X connect 7 0 6 0;
79 |
--------------------------------------------------------------------------------
/Package/Hoa/tutorials/Tutorial_9.pd:
--------------------------------------------------------------------------------
1 | #N canvas 170 90 904 593 10;
2 | #X obj 513 41 sig~ 1;
3 | #X obj 513 358 hoa.2d.scope~ @size 219 219 @fontname "Helvetica" @fontweight
4 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
5 | @order 3 @view 0 @gain 5 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
6 | 0.5 0.5 0.5 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
7 | #X obj 20 16 c.canvasinfos;
8 | #X obj 19 12 loadbang;
9 | #X obj 2 4 hoa.tuto.header;
10 | #X obj 44 515 hoa.help.pub;
11 | #X text 1 114 For further informations about the use of the rotate
12 | object \, please refer to the help :, f 81;
13 | #X obj 44 132 hoa.2d.rotate~ 2;
14 | #X text 1 184 In this tutorial \, we present the underlying operations
15 | of the rotation., f 81;
16 | #X obj 197 455 c.dsp~ @size 30 30 @fontname "Helvetica" @fontweight
17 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
18 | @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5 0.5 1 @logocolor 0 0.6 0
19 | 0.8;
20 | #X text 235 463 Dsp on/off;
21 | #X text 31 250 If m < 0;
22 | #X text 31 290 else if m > 0;
23 | #X text 31 330 else if m = 0;
24 | #X text 1 214 Each new harmonic of order m is the result of a combination
25 | of the harmonics of the same degree l multiplied by factors that depends
26 | on the angle of rotation θ :, f 81;
27 | #X text 1 384 Note : In 2d \, each degree l has 2 harmonics with the
28 | order m = [-l \, l]. For example \, the degree 1 has the harmonic -1
29 | and the harmonic 1, f 81;
30 | #X obj 726 208 phasor~ 0.1;
31 | #X text 1 54 One of the well-known process in the circular harmonics
32 | domain is the rotation that allows to turn the sound field on the z
33 | axis (2d only)., f 81;
34 | #X obj 513 67 hoa.2d.encoder~ 3, f 31;
35 | #X obj 513 91 hoa.2d.scope~ @size 189 189 @fontname "Helvetica" @fontweight
36 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
37 | @order 3 @view 0 @gain 5 @interval 100 @bgcolor 0.76 0.76 0.76 1 @bdcolor
38 | 0.5 0.5 0.5 1 @phcolor 1 0 0 1 @nhcolor 0 0 1 1;
39 | #X text 745 317 look inside;
40 | #X obj 726 247 *~;
41 | #X obj 802 226 hoa.pi 2;
42 | #X obj 802 195 loadbang;
43 | #X obj 744 290 c.number~ @size 53 17 @fontname "Helvetica" @fontweight
44 | "normal" @fontslant "roman" @fontsize 11 @receive "(null)" @send "(null)"
45 | @interval 50 @decimal 6 @bgcolor 0.75 0.75 0.75 1 @bdcolor 0.5 0.5
46 | 0.5 1 @textcolor 0 0 0 1;
47 | #X text 746 269 Angle of rotation;
48 | #X text 711 148 Clean sound field;
49 | #X text 741 448 Rotated sound field;
50 | #X text 45 270 - h'[l \, m] = sin(l*θ) * h[l \, |m|] + cos(l*θ) *
51 | h[l \, m];
52 | #X text 45 310 - h'[l \, m] = cos(l*θ) * h[l \, m] - sin(l*θ) * h[l
53 | \, -m];
54 | #X text 45 350 - h'[l \, m] = h[l \, m];
55 | #X obj 513 316 hoa.2d.process~ 3 hoa.fx.2d.rotate~, f 36;
56 | #X connect 0 0 18 0;
57 | #X connect 2 0 4 0;
58 | #X connect 3 0 2 0;
59 | #X connect 16 0 21 0;
60 | #X connect 18 0 19 0;
61 | #X connect 18 0 31 0;
62 | #X connect 18 1 19 1;
63 | #X connect 18 1 31 1;
64 | #X connect 18 2 19 2;
65 | #X connect 18 2 31 2;
66 | #X connect 18 3 19 3;
67 | #X connect 18 3 31 3;
68 | #X connect 18 4 19 4;
69 | #X connect 18 4 31 4;
70 | #X connect 18 5 19 5;
71 | #X connect 18 5 31 5;
72 | #X connect 18 6 19 6;
73 | #X connect 18 6 31 6;
74 | #X connect 21 0 24 0;
75 | #X connect 21 0 31 7;
76 | #X connect 22 0 21 1;
77 | #X connect 23 0 22 0;
78 | #X connect 31 0 1 0;
79 | #X connect 31 1 1 1;
80 | #X connect 31 2 1 2;
81 | #X connect 31 3 1 3;
82 | #X connect 31 4 1 4;
83 | #X connect 31 5 1 5;
84 | #X connect 31 6 1 6;
85 | #X coords 0 593 1 592 100 60 0;
86 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## [HOA](http://www.mshparisnord.fr/hoalibrary/ "Hoa Library") for Pure Data
2 |
3 | 
4 |
5 | ### Compatibilty :
6 |
7 | The lastest release has been tested [Pure Data Vanilla](http://msp.ucsd.edu/software.html "PD-Vanilla") (0.46.6 - 32/64 bits) & [Pure Data Extended](https://puredata.info/ "PD-Extended") (0.43.4) on Linux, Mac Os, Windows .
8 |
9 | ### Installation :
10 |
11 | With Pure Data Vanilla, copy the Hoa folder in your package folder and add hoa in the PD's statup window if you use the default package folder\*, otherwise add Hoa/hoa.
12 |
13 | With Pure Data Extended, copy the Hoa folder in your package folder and add -lib externals/Hoa in the statup falgs if you use the default package folder\*, otherwise add -lib Hoa/Hoa.
14 |
15 | \* The default package folder are generally /usr/local/lib/pd-externals on Linux, /Library/Pd on Mac Os and C:\Program Files\Common Files\Pd on Windows.
16 |
17 | __Important__ : The Hoa library needs the [Cream library](https://github.com/CICM/CreamLibrary "Cream") to work properly.
18 |
19 | ### Documentation :
20 |
21 | Helps and tutorials are availables in the Hoa folder of the help browser.
22 |
23 | ### Compilation :
24 |
25 | ./autogen.sh (if needed)
26 | ./configure (useful options --with-pd=)
27 | make
28 | make install (optional)
29 |
30 | XCode, CodeBlock and Visual Studio projects are also available.
31 |
32 | ### Dependencies :
33 |
34 | [Hoa Library](https://github.com/CICM/HoaLibrary-Light "Hoa Library") & the [Cicm Wrapper](https://github.com/CICM/CicmWrapper "Cicm Wrapper").
35 |
36 | ### Authors :
37 |
38 | Pierre Guillot
39 | Eliott Paris
40 | Thomas Le Meur
41 |
42 | ### Licence :
43 |
44 | The HOA Library in under the GNU Public License. If you'd like to avoid the restrictions of the GPL and use Hoa Library for a closed-source product, you contact the CICM.
45 |
--------------------------------------------------------------------------------
/Sources/Makefile.am:
--------------------------------------------------------------------------------
1 | AUTOMAKE_OPTIONS = foreign
2 | noinst_LTLIBRARIES = libHoapd.la
3 |
4 | libHoapd_la_CXXFLAGS = @PD_CPPFLAGS@ -O3 -fPIC -fpermissive -std=c++11 -pedantic -funroll-loops
5 | libHoapd_la_LDFLAGS = -module -avoid-version -shared -shrext .@EXTENSION@ @PD_LDFLAGS@ -fPIC
6 | libHoapd_la_LIBADD =
7 |
8 | libHoapd_la_SOURCES = hoa.decoder_tilde.cpp \
9 | hoa.encoder_tilde.cpp \
10 | hoa.exchanger_tilde.cpp \
11 | hoa.io.cpp \
12 | hoa.map_tilde.cpp \
13 | hoa.meter_gui_tilde.cpp \
14 | hoa.optim_tilde.cpp \
15 | hoa.process_tilde.cpp \
16 | hoa.projector_tilde.cpp \
17 | hoa.recomposer_tilde.cpp \
18 | hoa.rotate_tilde.cpp \
19 | hoa.scope_gui_tilde.cpp \
20 | hoa.space_gui.cpp \
21 | hoa.tools.cpp \
22 | hoa.wider_tilde.cpp \
23 | hoa.map_gui.cpp
--------------------------------------------------------------------------------
/Sources/hoa.projector_tilde.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | // Copyright (c) 2012-2015 Pierre Guillot, Eliott Paris & Thomas Le Meur CICM, Universite Paris 8.
3 | // For information on usage and redistribution, and for a DISCLAIMER OF ALL
4 | // WARRANTIES, see the file, "LICENSE.txt," in this distribution.
5 | */
6 |
7 | #include "../hoa.library.hpp"
8 | #include "../ThirdParty/HoaLibrary/Sources/Hoa.hpp"
9 | using namespace hoa;
10 |
11 | typedef struct _hoa_projector
12 | {
13 | t_edspobj f_obj;
14 | Projector* f_projector;
15 | t_sample* f_ins;
16 | t_sample* f_outs;
17 | } t_hoa_projector;
18 |
19 | static t_eclass *hoa_projector_class;
20 |
21 | static void *hoa_projector_new(t_symbol *s, int argc, t_atom *argv)
22 | {
23 | ulong order = 1;
24 | ulong numberOfPlanewaves = 4;
25 | t_hoa_projector *x = NULL;
26 | x = (t_hoa_projector *)eobj_new(hoa_projector_class);
27 | if (x)
28 | {
29 | if(atom_gettype(argv) == A_LONG)
30 | order = ulong(pd_clip_minmax(atom_getlong(argv), 1, 63));
31 | if(atom_gettype(argv+1) == A_LONG)
32 | numberOfPlanewaves = ulong(pd_clip_min(atom_getlong(argv+1), order * 2 + 1));
33 |
34 | x->f_projector = new Projector(order, numberOfPlanewaves);
35 |
36 | eobj_dspsetup(x, long(x->f_projector->getNumberOfHarmonics()), long(x->f_projector->getNumberOfPlanewaves()));
37 |
38 | x->f_ins = Signal::alloc(x->f_projector->getNumberOfHarmonics() * HOA_MAXBLKSIZE);
39 | x->f_outs = Signal::alloc(x->f_projector->getNumberOfPlanewaves() * HOA_MAXBLKSIZE);
40 | }
41 |
42 | return (x);
43 | }
44 |
45 | static void hoa_projector_perform(t_hoa_projector *x, t_object *dsp64, t_sample **ins, long numins, t_sample **outs, long numouts, long sampleframes, long flags, void *userparam)
46 | {
47 | for(long i = 0; i < numins; i++)
48 | {
49 | Signal::copy(ulong(sampleframes), ins[i], 1, x->f_ins+i, ulong(numins));
50 | }
51 | for(long i = 0; i < sampleframes; i++)
52 | {
53 | x->f_projector->process(x->f_ins + numins * i, x->f_outs + numouts * i);
54 | }
55 | for(long i = 0; i < numouts; i++)
56 | {
57 | Signal::copy(ulong(sampleframes), x->f_outs+i, ulong(numouts), outs[i], 1);
58 | }
59 | }
60 |
61 | static void hoa_projector_dsp(t_hoa_projector *x, t_object *dsp, short *count, double samplerate, long maxvectorsize, long flags)
62 | {
63 | object_method(dsp, gensym("dsp_add"), x, (method)hoa_projector_perform, 0, NULL);
64 | }
65 |
66 | static void hoa_projector_free(t_hoa_projector *x)
67 | {
68 | eobj_dspfree(x);
69 | delete x->f_projector;
70 | Signal::free(x->f_ins);
71 | Signal::free(x->f_outs);
72 | }
73 |
74 |
75 | extern "C" void setup_hoa0x2e2d0x2eprojector_tilde(void)
76 | {
77 | t_eclass* c;
78 |
79 | c = eclass_new("hoa.2d.projector~", (method)hoa_projector_new, (method)hoa_projector_free, (short)sizeof(t_hoa_projector), 0L, A_GIMME, 0);
80 | class_addcreator((t_newmethod)hoa_projector_new, gensym("hoa.projector~"), A_GIMME, 0);
81 |
82 | eclass_dspinit(c);
83 |
84 | eclass_addmethod(c, (method)hoa_projector_dsp, "dsp", A_CANT, 0);
85 |
86 | eclass_register(CLASS_OBJ, c);
87 | hoa_projector_class = c;
88 | }
89 |
--------------------------------------------------------------------------------
/Sources/hoa.rotate_tilde.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | // Copyright (c) 2012-2015 Pierre Guillot, Eliott Paris & Thomas Le Meur CICM, Universite Paris 8.
3 | // For information on usage and redistribution, and for a DISCLAIMER OF ALL
4 | // WARRANTIES, see the file, "LICENSE.txt," in this distribution.
5 | */
6 |
7 | #include "../hoa.library.hpp"
8 | #include "../ThirdParty/HoaLibrary/Sources/Hoa.hpp"
9 | using namespace hoa;
10 |
11 | typedef struct _hoa_rotate
12 | {
13 | t_edspobj f_obj;
14 | Rotate*f_rotate;
15 | t_sample* f_ins;
16 | t_sample* f_outs;
17 |
18 | } t_hoa_rotate;
19 |
20 | static t_eclass *hoa_rotate_class;
21 |
22 | static void *hoa_rotate_new(t_symbol *s, int argc, t_atom *argv)
23 | {
24 | ulong order = 1;
25 | t_hoa_rotate *x = (t_hoa_rotate *)eobj_new(hoa_rotate_class);
26 |
27 | if (x)
28 | {
29 | if(atom_gettype(argv) == A_LONG)
30 | order = ulong(pd_clip_minmax(atom_getlong(argv), 1, 63));
31 |
32 | x->f_rotate = new Rotate(order);
33 |
34 | eobj_dspsetup(x, long(x->f_rotate->getNumberOfHarmonics() + 1), long(x->f_rotate->getNumberOfHarmonics()));
35 |
36 | x->f_ins = Signal::alloc(x->f_rotate->getNumberOfHarmonics() * HOA_MAXBLKSIZE);
37 | x->f_outs = Signal::alloc(x->f_rotate->getNumberOfHarmonics() * HOA_MAXBLKSIZE);
38 | }
39 |
40 | return (x);
41 | }
42 |
43 | static void hoa_rotate_float(t_hoa_rotate *x, float f)
44 | {
45 | x->f_rotate->setYaw(f);
46 | }
47 |
48 | static void hoa_rotate_perform(t_hoa_rotate *x, t_object *dsp64, t_sample **ins, long numins, t_sample **outs, long numouts, long sampleframes, long flags, void *userparam)
49 | {
50 | for(long i = 0; i < numouts; i++)
51 | {
52 | Signal::copy(ulong(sampleframes), ins[i], 1, x->f_ins+i, ulong(numins));
53 | }
54 | for(long i = 0; i < sampleframes; i++)
55 | {
56 | x->f_rotate->setYaw(ins[numouts][i]);
57 | x->f_rotate->process(x->f_ins + numins * i, x->f_outs + numouts * i);
58 | }
59 | for(long i = 0; i < numouts; i++)
60 | {
61 | Signal::copy(ulong(sampleframes), x->f_outs+i, ulong(numouts), outs[i], 1);
62 | }
63 | }
64 |
65 | static void hoa_rotate_perform_offset(t_hoa_rotate *x, t_object *dsp64, t_sample **ins, long numins, t_sample **outs, long numouts, long sampleframes, long flags, void *userparam)
66 | {
67 | for(long i = 0; i < numouts; i++)
68 | {
69 | Signal::copy(ulong(sampleframes), ins[i], 1, x->f_ins+i, ulong(numins));
70 | }
71 | for(long i = 0; i < sampleframes; i++)
72 | {
73 | x->f_rotate->process(x->f_ins + numins * i, x->f_outs + numouts * i);
74 | }
75 | for(long i = 0; i < numouts; i++)
76 | {
77 | Signal::copy(ulong(sampleframes), x->f_outs+i, ulong(numouts), outs[i], 1);
78 | }
79 | }
80 |
81 | static void hoa_rotate_dsp(t_hoa_rotate *x, t_object *dsp, short *count, double samplerate, long maxvectorsize, long flags)
82 | {
83 | if(count[x->f_rotate->getNumberOfHarmonics()])
84 | object_method(dsp, gensym("dsp_add"), x, (method)hoa_rotate_perform, 0, NULL);
85 | else
86 | object_method(dsp, gensym("dsp_add"), x, (method)hoa_rotate_perform_offset, 0, NULL);
87 | }
88 |
89 | static void hoa_rotate_free(t_hoa_rotate *x)
90 | {
91 | eobj_dspfree(x);
92 | delete x->f_rotate;
93 | Signal::free(x->f_ins);
94 | Signal::free(x->f_outs);
95 | }
96 |
97 | extern "C" void setup_hoa0x2e2d0x2erotate_tilde(void)
98 | {
99 | t_eclass* c;
100 |
101 | c = eclass_new("hoa.2d.rotate~",(method)hoa_rotate_new,(method)hoa_rotate_free, (short)sizeof(t_hoa_rotate), CLASS_NOINLET, A_GIMME, 0);
102 | class_addcreator((t_newmethod)hoa_rotate_new, gensym("hoa.rotate~"), A_GIMME, 0);
103 |
104 | eclass_dspinit(c);
105 |
106 | eclass_addmethod(c, (method)hoa_rotate_dsp, "dsp", A_CANT, 0);
107 | eclass_addmethod(c, (method)hoa_rotate_float, "float", A_FLOAT, 0);
108 |
109 | eclass_register(CLASS_OBJ, c);
110 | hoa_rotate_class = c;
111 | }
112 |
--------------------------------------------------------------------------------
/autogen.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | autoreconf --force --install -I config -I m4
3 |
--------------------------------------------------------------------------------
/config/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 |
--------------------------------------------------------------------------------
/configure.ac:
--------------------------------------------------------------------------------
1 | dnl Process this file with autoconf to produce a configure script.
2 | ## replace the email below with authors' emails
3 | AC_INIT([Hoa], 2.2-git, musique@univ-paris8.fr,[Hoa],[https://github.com/CICM/HoaLibrary-PD])
4 |
5 | AC_CONFIG_MACRO_DIR([m4])
6 | AC_CONFIG_AUX_DIR(config)
7 | AC_CONFIG_FILES([Sources/Makefile])
8 | AC_CONFIG_FILES([ThirdParty/CicmWrapper/Makefile ThirdParty/CicmWrapper/Sources/Makefile])
9 | AC_CONFIG_FILES([Package/Hoa/Makefile Package/Hoa/helps/Makefile Package/Hoa/media/Makefile Package/Hoa/misc/Makefile Package/Hoa/patchers/Makefile Package/Hoa/tutorials/Makefile])
10 |
11 | AX_FAT_BINARY()
12 |
13 | AC_SUBST(PD_CPPFLAGS)
14 | AC_SUBST(PD_LDFLAGS)
15 |
16 | AC_SUBST(EXTENSION)
17 |
18 | AM_INIT_AUTOMAKE([1.10 foreign])
19 |
20 | AC_ARG_WITH([pd], [ --with-pd= where to look for pd-headers and and -libs])
21 | AC_ARG_WITH([extension],[ --with-extension= enforce a certain extension for the dynamic library (e.g. dll)])
22 |
23 | ARCH=$(uname -m)
24 | KERN=$(uname -s)
25 |
26 | AC_PROG_CXX
27 | AC_PROG_LIBTOOL
28 |
29 | if test "x${libdir}" = "x\${exec_prefix}/lib"; then
30 | libdir='${exec_prefix}/lib/pd/extra'
31 | fi
32 |
33 | if test "x$with_pd" != "x"; then
34 | if test -d "${with_pd}"; then
35 | PDPATH=${with_pd}
36 | fi
37 | if test -d "${PDPATH}/src"; then
38 | AC_MSG_RESULT([adding ${PDPATH}/src to INCLUDES])
39 | PD_CPPFLAGS="-I${PDPATH}/src ${CPPFLAGS}"
40 |
41 | AC_MSG_RESULT([adding ${PDPATH}/src to LDFLAGS])
42 | PD_LDFLAGS="-L${PDPATH}/src ${LDFLAGS}"
43 | else
44 | if test -d "${PDPATH}"; then
45 | AC_MSG_RESULT([adding ${PDPATH} to INCLUDES])
46 | PD_CPPFLAGS="-I${PDPATH} ${CPPFLAGS}"
47 | fi
48 | fi
49 | if test -d "${PDPATH}/bin"; then
50 | AC_MSG_RESULT([adding ${PDPATH}/bin to LDFLAGS])
51 | PD_LDFLAGS="-L${PDPATH}/bin ${LDFLAGS}"
52 | else
53 | if test -d "${PDPATH}"; then
54 | AC_MSG_RESULT([adding ${PDPATH} to LDFLAGS])
55 | PD_LDFLAGS="-L${PDPATH} ${LDFLAGS}"
56 | fi
57 | fi
58 | else
59 | AC_MSG_RESULT([no pd path given, trying with pkg-config data])
60 | PD_CPPFLAGS=`pkg-config --cflags pd`
61 | PD_LDFLAGS=`pkg-config --libs pd`
62 | fi
63 |
64 | AC_MSG_CHECKING([extension])
65 | if test "x$with_extension" != "x"
66 | then
67 | EXTENSION=$with_extension
68 | else
69 | case "$KERN" in
70 | Darwin)
71 | EXTENSION=pd_darwin
72 | ;;
73 | Linux)
74 | if test "$ARCH" == x86_64
75 | then
76 | EXTENSION=l_ia64
77 | else
78 | EXTENSION=l_i386
79 | fi
80 | ;;
81 | *CYGWIN*)
82 | EXTENSION=dll
83 | ;;
84 | *MINGW*)
85 | EXTENSION=dll
86 | ;;
87 | *)
88 | EXTENSION=pd_linux
89 | ;;
90 | esac
91 | fi
92 | AC_MSG_RESULT([$EXTENSION])
93 |
94 | AC_OUTPUT(Makefile)
95 |
--------------------------------------------------------------------------------
/hoa.library.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | // Copyright (c) 2012-2015 Pierre Guillot, Eliott Paris & Thomas Le Meur CICM, Universite Paris 8.
3 | // For information on usage and redistribution, and for a DISCLAIMER OF ALL
4 | // WARRANTIES, see the file, "LICENSE.txt," in this distribution.
5 | */
6 |
7 | #include "hoa.library.hpp"
8 |
9 | char hoaversion[] = "Beta 2.2";
10 |
11 | static t_eclass *cream_class;
12 |
13 | static void *hoa_new(t_symbol *s)
14 | {
15 | t_eobj *x = (t_eobj *)eobj_new(cream_class);
16 | if(x)
17 | {
18 | logpost(x, 3, "HOA Library by Pierre Guillot, Eliott Paris & Thomas Le Meur\n© 2013 - 2015 CICM | Paris 8 University\nVersion %s (%s) for Pure Data %i.%i\n",hoaversion, __DATE__, PD_MAJOR_VERSION, PD_MINOR_VERSION);
19 | }
20 | return (x);
21 | }
22 |
23 |
24 | extern "C" void hoa_setup(void)
25 | {
26 | cream_class = eclass_new("hoa", (method)hoa_new, (method)eobj_free, (short)sizeof(t_eobj), CLASS_PD, A_NULL, 0);
27 | cream_class = eclass_new("Hoa", (method)hoa_new, (method)eobj_free, (short)sizeof(t_eobj), CLASS_PD, A_NULL, 0);
28 | t_eobj* obj = (t_eobj *)hoa_new(NULL);
29 | if(!obj)
30 | {
31 | verbose(3, "HOA Library by Pierre Guillot, Eliott Paris & Thomas Le Meur\n© 2013 - 2015 CICM | Paris 8 University\nVersion %s (%s) for Pure Data %i.%i\n",hoaversion, __DATE__, PD_MAJOR_VERSION, PD_MINOR_VERSION);
32 | eobj_free(obj);
33 | }
34 |
35 | // HOA COMMON //
36 | setup_hoa0x2econnect();
37 | setup_hoa0x2edac_tilde();
38 | setup_hoa0x2ein();
39 | setup_hoa0x2ein_tilde();
40 | setup_hoa0x2eout();
41 | setup_hoa0x2eout_tilde();
42 | setup_hoa0x2epi();
43 | setup_hoa0x2epi_tilde();
44 | setup_hoa0x2eprocess_tilde();
45 | setup_hoa0x2ethisprocess_tilde();
46 | setup_hoa0x2emap();
47 |
48 | // HOA 2D //
49 | setup_hoa0x2e2d0x2edecoder_tilde();
50 | setup_hoa0x2e2d0x2eencoder_tilde();
51 | setup_hoa0x2e2d0x2emap_tilde();
52 | setup_hoa0x2e2d0x2emeter_tilde();
53 | setup_hoa0x2e2d0x2eoptim_tilde();
54 | setup_hoa0x2e2d0x2eprojector_tilde();
55 | setup_hoa0x2e2d0x2erecomposer_tilde();
56 | setup_hoa0x2e2d0x2erotate_tilde();
57 | setup_hoa0x2e2d0x2escope_tilde();
58 | setup_hoa0x2e2d0x2espace();
59 | setup_hoa0x2e2d0x2ewider_tilde();
60 | setup_hoa0x2e2d0x2eexchanger_tilde();
61 |
62 | // HOA 3D //
63 | setup_hoa0x2e3d0x2edecoder_tilde();
64 | setup_hoa0x2e3d0x2eencoder_tilde();
65 | setup_hoa0x2e3d0x2eoptim_tilde();
66 | setup_hoa0x2e3d0x2ewider_tilde();
67 | setup_hoa0x2e3d0x2emap_tilde();
68 | setup_hoa0x2e3d0x2emeter_tilde();
69 | setup_hoa0x2e3d0x2escope_tilde();
70 | setup_hoa0x2e3d0x2eexchanger_tilde();
71 |
72 | epd_add_folder("Hoa", "patchers");
73 | epd_add_folder("Hoa", "clippings");
74 | epd_add_folder("Hoa", "dependencies");
75 | epd_add_folder("Hoa", "media");
76 | epd_add_folder("Hoa", "misc");
77 | }
78 |
79 | extern "C" void Hoa_setup(void)
80 | {
81 | hoa_setup();
82 | }
83 |
84 |
--------------------------------------------------------------------------------
/hoa.library.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.22823.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hoa.library", "hoa.library.vcxproj", "{B05BC6DD-018B-4BE9-BA64-D5BE00CECD66}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Release|Win32 = Release|Win32
11 | EndGlobalSection
12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
13 | {B05BC6DD-018B-4BE9-BA64-D5BE00CECD66}.Release|Win32.ActiveCfg = Release|Win32
14 | {B05BC6DD-018B-4BE9-BA64-D5BE00CECD66}.Release|Win32.Build.0 = Release|Win32
15 | EndGlobalSection
16 | GlobalSection(SolutionProperties) = preSolution
17 | HideSolutionNode = FALSE
18 | EndGlobalSection
19 | EndGlobal
20 |
--------------------------------------------------------------------------------
/m4/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 |
--------------------------------------------------------------------------------