├── .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 | ![CaptureHoaPD](http://www.mshparisnord.fr/hoalibrary/wp-content/uploads/2015/06/CaptureHoaPD.png) 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 | ![CaptureHoaPD](http://www.mshparisnord.fr/hoalibrary/wp-content/uploads/2015/06/CaptureHoaPD.png) 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 | --------------------------------------------------------------------------------